利用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