利用parted拓展大硬盘


parted 是一个功能强大的分区工具,支持 GPT 和 MBR 分区表,并且能够处理大于 2TB 的磁盘。它可以以交互模式或非交互模式运行。

常见语法

parted [选项] <设备> [命令] [参数]

<设备>:指你要操作的磁盘设备,例如 /dev/sda。
[命令]:可选的命令,用于执行分区操作。
[参数]:根据命令的不同,可能需要提供额外的参数。
 -h 或 --help 
显示 parted 的帮助信息。
parted --help

-l 或 --list
列出系统中所有磁盘及其分区信息。这是查看整个系统中磁盘状态的快捷方式。
parted -l

-a 或 --align
设置分区对齐方式。分区的对齐方式可以是 none、cylinder、minimal、或 optimal,建议使用 optimal 以提高磁盘性能。
parted -a optimal /dev/sda

-s 或 --script
以非交互模式运行 parted,用于在脚本中自动执行分区操作,防止交互提示。
parted -s /dev/sda mklabel gpt

-m 或 --machine
以机器可读格式输出分区信息,适合用于脚本和自动化场景。
parted -m /dev/sda print

-v 或 --version
显示 parted 版本信息。
parted --version
1. print
显示指定磁盘的分区信息。
parted /dev/sda print

2. mklabel
创建新的分区表(分区类型)。gpt 或 msdos 是常用的分区表格式。
parted /dev/sda mklabel gpt

3. mkpart
创建新分区。你可以指定分区类型、文件系统类型、起始位置和结束位置。
parted /dev/sda mkpart primary ext4 1MiB 20GiB
	primary:表示主分区。
	ext4:指定分区的文件系统类型。
	1MiB 和 20GiB:分区的起始和结束位置。
	
4. rm
删除指定分区。
	parted /dev/sda rm 1

5. resizepart
调整现有分区的大小。你需要指定分区号和新的结束位置。
parted /dev/sda resizepart 1 50GiB

6. align-check
检查分区是否对齐到最佳扇区(适合 SSD)。可以检查特定分区或所有分区。
parted /dev/sda align-check optimal 1

7. set
设置分区标志,如 boot、lvm、swap 等。例如,将第 1 个分区设置为可引导。
parted /dev/sda set 1 boot on

8. name
为 GPT 分区设置名称。
parted /dev/sda name 1 my_partition

实战创建一个新硬盘

##### 查看硬盘
[root@docker01 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  525MB   524MB   primary  xfs          boot
 2      525MB   10.7GB  10.2GB  primary               lvm


Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB     		 ### 需要创建分区的盘符
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End  Size  Type  File system  Flags


##### 新建一个10个g的分区
[root@docker01 ~]#  parted /dev/sdb mkpart primary xfs 0% 10GB
Information: You may need to update /etc/fstab.

mkpart:创建分区
primary:创建主分区。
ext4:分区文件系统类型。
0%:从磁盘的起始位置创建分区。
20GB:分区大小为 20GB。

##### 查看分区
[root@docker01 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  525MB   524MB   primary  xfs          boot
 2      525MB   10.7GB  10.2GB  primary               lvm


Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  xfs
 
### 初始化
格式化分区: 虽然你指定了分区的文件系统类型为 xfs,但在 Linux 中你仍然需要手动格式化该分区。可以使用 mkfs.xfs 命令来格式化分区。
mkfs.xfs -f /dev/sdb1

#### 挂载
mount /dev/sdb1 /docker_file


### 查询
[root@docker01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 979M     0  979M   0% /dev
tmpfs                    991M     0  991M   0% /dev/shm
tmpfs                    991M  9.6M  981M   1% /run
tmpfs                    991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root  8.5G  4.8G  3.8G  56% /
/dev/sda1                497M  131M  367M  27% /boot
tmpfs                    199M     0  199M   0% /run/user/0
/dev/sdb1                9.4G   33M  9.3G   1% /docker_file

创新新分区

### 紧跟创建一个新的分区
parted /dev/sdb mkpart primary xfs 10GB 15GB

### 初始化
mkfs.xfs -f /dev/sdb2

### 挂载
[root@docker01 ~]# mkdir /docker_file2
[root@docker01 ~]# mount /dev/sdb2 /docker_file2


### 查询
[root@docker01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 979M     0  979M   0% /dev
tmpfs                    991M     0  991M   0% /dev/shm
tmpfs                    991M  9.6M  981M   1% /run
tmpfs                    991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root  8.5G  4.8G  3.8G  56% /
/dev/sda1                497M  131M  367M  27% /boot
tmpfs                    199M     0  199M   0% /run/user/0
/dev/sdb1                9.4G   33M  9.3G   1% /docker_file
/dev/sdb2                4.7G   33M  4.7G   1% /docker_file2



[root@docker01 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  525MB   524MB   primary  xfs          boot
 2      525MB   10.7GB  10.2GB  primary               lvm


Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  xfs
 2      10.0GB  15.0GB  5000MB  primary  xfs