Linux下磁盘分区命令主要由两个:
- fdisk :最大支持不超过2T分区;
- parted :支持GPT,适用于大容量分区;
分区指令的选择:
- 在RHEL系统上,用命令分区最大磁盘分区不能2T(fdisk不支持GPT);
- 超过2T时需要使用parted命令进行分区;
- 超过2T只能将磁盘格式转换为:GPT格式。
fdisk -l
#查看所有磁盘信息fdisk -lDevice 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获取帮助mHelp:DOS (MBR)a toggle a bootable flagb edit nested BSD disklabelc toggle the dos compatibility flagGenericd delete a partitionF list free unpartitioned spacel list known partition typesn add a new partitionp print the partition tablet change a partition typev verify the partition tablei print information about a partitionMiscm print this menuu change display/entry unitsx extra functionality (experts only)ScriptI load disk layout from sfdisk script fileO dump disk layout to sfdisk script fileSave & Exitw write table to disk and exitq quit without saving changesCreate a new labelg create a new empty GPT partition tableG create a new empty SGI (IRIX) partition tableo create a new empty DOS partition tables create a new empty Sun partition table#按照提示进行操作即可#新增一个分区nPartition typep primary (0 primary, 0 extended, 4 free)e extended (container for logical partitions)#p是主分区,逻辑分区,e是扩展分区pSelect (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/sdaGNU 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) alignmenthelp [COMMAND] print general help, or help on COMMANDmklabel,mktable LABEL-TYPE create a new disklabel (partition table)mkpart PART-TYPE [FS-TYPE] START END make a partitionname NUMBER NAME name partition NUMBER as NAMEprint [devices|free|list,all|NUMBER] display the partition table, available devices, free space,all found partitions, or a particular partitionquit exit programrescue START END rescue a lost partition near START and ENDresizepart NUMBER END resize partition NUMBERrm NUMBER delete partition NUMBERselect DEVICE choose the device to editdisk_set FLAG STATE change the FLAG on selected devicedisk_toggle [FLAG] toggle the state of FLAG on selected deviceset NUMBER FLAG STATE change the FLAG on partition NUMBERtoggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBERunit UNIT set the default unit to UNITversion display the version number and copyright information of GNUParted#创建分区,并设置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命令刷新分区表