Centos7 parted分区工具

一般用于分大于2TB以上的硬盘
列出所有设备的分区表信息
# parted -l

列出/dev/sdb/分区表信息
# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos //分区表类型
Disk Flags:

Number Start End Size Type File system 标志
1 1049kB 1075MB 1074MB primary xfs
2 1075MB 3222MB 2147MB primary
3 3222MB 6443MB 3221MB extended
5 3223MB 4297MB 1074MB logical
6 4298MB 5372MB 1074MB logical
分区编号 起始 结束 分区大小 分区类型 文件系统类型

-------------------------------------------------
一、分区
将之前实验的分区删掉
# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2656627c

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 83 Linux
/dev/sdb3 6293504 12584959 3145728 5 Extended
/dev/sdb5 6295552 8392703 1048576 83 Linux
/dev/sdb6 8394752 10491903 1048576 83 Linux

命令(输入 m 获取帮助):d
分区号 (1-3,5,6,默认 6):1
分区 1 已删除

命令(输入 m 获取帮助):d
分区号 (2,3,5,6,默认 6):2
分区 2 已删除

命令(输入 m 获取帮助):d
分区号 (3,5,6,默认 6):3
分区 3 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2656627c

设备 Boot Start End Blocks Id System

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

# ll /dev/sd
sda sda1 sda2 sdb

通知内核重读分区表
# partx -d /dev/sdb //删除分区使用-d 添加分区使用-a

开始新的实验
# parted /dev/sdb print //打印分区表
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system 标志

# parted /dev/sdb //分区
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
help [COMMAND] //显示命令的帮助信息
mklabel,mktable LABEL-TYPE //创建一个新的分区表类型
mkpart PART-TYPE [FS-TYPE] START END //创建一个新分区
print [devices|free|list,all|NUMBER] //打印分区表信息
quit //退出
rescue START END //找回分区
rm NUMBER //删除分区

(parted) mklabel gpt //创建gpt类型分区表
警告: The existing disk label on /dev/sdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
是/Yes/否/No? y
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name 标志

mkpart 分区类型 开始位置(大小) 结束位置(大小)
(parted) mkpart primary 1 1G
(parted) mkpart primary 1G 2G
(parted) mkpart primary 2G 3G

(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name 标志
1 17.4kB 1000MB 1000MB primary
2 1000MB 2000MB 999MB primary
3 2000MB 3000MB 1000MB primary

(parted) rm 3 //删除分区

(parted) q
信息: You may need to update /etc/fstab.

二、通知内核重读分区表
查看分区文件是否存在
# ls /dev/sd
sda sda1 sda2 sdb sdb1 sdb2

如果不存在,通知内核重读分区表
# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-2

检验分区是否被内核识别
1)查看分区表
# parted -l

2)看dev目录下设备
# ls /dev/sd
sda sda1 sda2 sdb sdb1 sdb2

三、创建文件系统
# mkfs.xfs /dev/sdb1 //命令后接分区

四、挂载使用
1.创建挂载点
# mkdir /mnt/sdb1

2.将分区挂载到本地目录
# mount /dev/sdb1 /mnt/sdb1

# df -hsdb1
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17G 3.5G 14G 21% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 144K 489M 1% /dev/shm
tmpfs 489M 7.0M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 155M 860M 16% /boot
/dev/sr0 4.1G 4.1G 0 100% /mnt/test
tmpfs 98M 16K 98M 1% /run/user/0
/dev/sdb1 1014M 33M 982M 4% /mnt/sdb1

====================================================
mklabel gpt|msdos //会清空所有数据
p 打印分区表
mkpart 类型 起始位置 结束位置 创建分区
rm 分区编号 删除分区


# parted -s /dev/sdb mklabel {gpt|msdos} //制作新的分区表 -s 不提示
# parted /dev/sdb p //打印分区表
# parted /dev/sdb mkpart primary 1 2G //创建分区
# parted /dev/sdb mkpart primary 2G 4G
# parted /dev/sdb mkpart primary '4G -1' //创建分区使用全部剩余空间
# parted /dev/sdb rm 3 //删除分区
# parted /dev/sdb recure 1 2G //找回分区

实验:删除分区,通过recure找回分区和存放在分区内的数据 不是绝对能找回数据
1.在/dev/sdb1分区内创建一个文件hello.txt 并写入内容 hello world
[root@localhost ~]# cd /mnt/sdb1
[root@localhost sdb1]# ls
[root@localhost sdb1]# echo "hello world" > hello.txt
[root@localhost sdb1]# cat hello.txt
hello world
[root@localhost sdb1]# cd ..

2.卸载/dev/sdb1分区并查找是否已经卸载
[root@localhost mnt]# umount /dev/sdb1
[root@localhost mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17G 3.5G 14G 21% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 84K 489M 1% /dev/shm
tmpfs 489M 7.0M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sr0 4.1G 4.1G 0 100% /mnt/test
/dev/sda1 1014M 155M 860M 16% /boot
tmpfs 98M 16K 98M 1% /run/user/42
tmpfs 98M 0 98M 0% /run/user/0

3.删除/dev/sdb1分区 并检查是否删除
[root@localhost mnt]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of
commands.
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name 标志
1 17.4kB 1000MB 1000MB xfs primary
2 1000MB 2000MB 999MB primary

(parted) rm 1
(parted) q
信息: You may need to update /etc/fstab.

[root@localhost mnt]# ll /dev/sd
sda sda1 sda2 sdb sdb2

4. 找回分区 前提需要知道分区表
[root@localhost mnt]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of
commands.
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name 标志
2 1000MB 2000MB 999MB primary

(parte(parted) rescue 0 1G
信息: A xfs primary partition was found at 17.4kB ->
1000MB. Do you want to add it to the partition
table?
是/Yes/否/No/放弃/Cancel? Y
(parted) q
信息: You may need to update /etc/fstab.

5.将找回的分区挂载 查找数据是否找回
[root@localhost mnt]# mount /dev/sdb1 /mnt/sdb1
[root@localhost mnt]# cd /mnt/sdb1
[root@localhost sdb1]# ls
hello.txt
[root@localhost sdb1]# cat hello.txt
hello world

新添加的硬盘直接使用parted是不能分区的
解决:parted /dev/sdc mklabel gpt //设置分区表类型


上一篇:KAL1 LINUX 官方文档之USB--- 加密持久化


下一篇:Linux在线扩容根分区