Linux下磁盘分区命令主要由两个:
- fdisk :最大支持不超过2T分区;
- parted :支持GPT,适用于大容量分区;
分区指令的选择:
- 在RHEL系统上,用命令分区最大磁盘分区不能2T(fdisk不支持GPT);
- 超过2T时需要使用parted命令进行分区;
- 超过2T只能将磁盘格式转换为:GPT格式。
fdisk -l
#查看所有磁盘信息
fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 83 Linux
/dev/sda2 1026048 134217727 133191680 63.5G 8e Linux LVM
#一般来说,sda是指单个的磁盘,sda1是该磁盘下的一个逻辑分区
#对某个磁盘开始格式化
fdisk /dev/sda
#输入m获取帮助
m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
#按照提示进行操作即可
#新增一个分区
n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
#p是主分区,逻辑分区,e是扩展分区
p
Select (default p): p
#分区编号,默认是1,可以回车就行
Partition number (1-4, default 1):
#第一个扇区,默认回车即可
First sector (2048-1023999, default 2048):
#最后一个扇区,加上单位,默认是整个磁盘分为一个区,默认回车即可
Last sector, +sectors or +size{K,M,G,T,P} (2048-1023999, default 1023999):
#看到提示信息表示分好区了
Created a new partition 1 of type 'Linux' and of size 499 MiB.
#完成操作,写入,这一步一定要谨慎
w
#在w之前可以打印看看(这个p和选主分区那个p不一样,那个是在n的条件下的p)
p
#删除逻辑分区
d
一般来说如果遇到超过2TB的磁盘,首先使用fdisk将磁盘分区删除。再使用parted命令进行设置。
parted /dev/sda
#对某个磁盘进行分区
parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
#输入help获取帮助
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space,
all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resizepart NUMBER END resize partition NUMBER
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU
Parted
#创建分区,并设置gpt格式
(parted)mklabel gpt
#选择忽视
Warning: Partition(s) on /dev/sda are being used.
Ignore/Cancel?ignore
#忽略警告,选择yes
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No?yes
#输入p打印
(parted) p
Model: ATA CentOS-8-0 SSD (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
#完成分区操作
(parted) mkpart
分区名称? []? partb
文件系统类型? [ext2]? ext4
起始点? 1 # 1表示从最开始分区,也可以用百分比表示,比如Start? 0% , End? 50%;
结束点? -1 # -1表示到磁盘末尾;也可以分成多个磁盘,写要分配的大小;
#删除分区
(parted) rm 1 #rm后面使用分区的号码,就是用print打印出来的Number
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/vdb: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
mkfs.ext4 /dev/sda1 #按照ext4格式化磁盘
mount /dev/vdb1 /data/
#挂载mount -t type device dir 挂载device到dir,一般-t type不用加。前面的是设备,后面的是挂载的目录。
#查看磁盘信息
fdisk -l
#查看磁盘占用情况
df -h
#卸载磁盘
umount /data/
#查看所有磁盘的文件类型
df -T
#挂载磁盘
mount -t type device dir
#更新分区表
partprobe /dev/sdb
使用fdisk或parted工具只是将分区信息写入到磁盘,如果需要使用mkfs格式化并使用分区,则需要重新启动系统。partprobe 是一个可以修改kernel中分区表的工具,可以使kernel重新读取分区表而不用重启系统。
partprobe /dev/sda
综上:
使用fdisk命令将原来磁盘的分区删除(如果没有分过区就忽略)
使用parted进行gpt分区
使用mkfs.ext4 /dev/sda命令设置格式
使用partprobe /dev/sda命令刷新分区表