fdisk分区
1、列出磁盘分区情况
fdisk -l 列出所有
fdisk -l /dev/sdb 列出某一块磁盘
[root@docker ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
2、对/dev/sdb磁盘分区
fdisk /dev/sdb
子命令常用参数选择:
d delete a partition 删除创建的某个分区
g create a new empty GPT partition table 新建一个空的gpt分区
m print this menu 打印帮助菜单
n add a new partition 新加一个分区,默认mbr分区
o create a new empty DOS partition table
p print the partition table 打印分区表
q quit without saving changes 不保存直接退出
w write table to disk and exit 保存分区并退出
[root@docker ~]# fdisk -u /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x4b5ce709 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 删除创建的某个分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu 打印帮助菜单
n add a new partition 新加一个分区
o create a new empty DOS partition table
p print the partition table 打印分区表
q quit without saving changes 不保存直接退出
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit 保存分区并退出
x extra functionality (experts only)
命令(输入 m 获取帮助):p **打印分区情况**
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4b5ce709
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n **新建分区**
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p **选择主分区还是扩展分区 p:主分区 e:扩展分区**
分区号 (1-4,默认 1): **分区号默认从1开始,直接回车就行**
起始 扇区 (2048-20971519,默认为 2048): **起始位置,直接回车即可**
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G **指定分区的大小,直接回车表示整个磁盘分成一个区,多用于线上环境,测试可以自己指定大小:+1G 表示1G大小 +1M表示1M大小,如果单位输入错误需要ctrl+backspace才能删除**
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):p **打印出自己刚刚分区的表**
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4b5ce709
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
命令(输入 m 获取帮助):w **保存分区情况并退出**
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
3、查看/dev/sdb分区情况
lsblk
fdisk -l /dev/sdb
cat /proc/partitions
[root@docker ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 27G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 2G 0 part
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@docker ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
[root@docker ~]# cat /proc/partitions
major minor #blocks name
8 0 31457280 sda
8 1 1048576 sda1
8 2 30407680 sda2
8 16 10485760 sdb
8 17 2097152 sdb1
8 32 20971520 sdc
11 0 4481024 sr0
253 0 28303360 dm-0
253 1 2097152 dm-1
4、对/dev/sdb分多个区
[root@docker ~]# fdisk -u /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p 打印目前/dev/sdb的分区情况
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
命令(输入 m 获取帮助):n 新建一个分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p 主分区
分区号 (2-4,默认 2): 刚才已经有一个分区,现在默认从第二个分区开始
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+3G 选择3G大小
分区 2 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):p 打印分区情况
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
命令(输入 m 获取帮助):n 继续新加分区
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): e 选择扩展分区
分区号 (3,4,默认 3):
起始 扇区 (10487808-20971519,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519):+5G **磁盘总大小是10G出去引导分区和刚才的2个主分区,还是4G多空间,报超出范围的错**
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519):+4G
分区 3 已设置为 Extended 类型,大小设为 4 GiB
命令(输入 m 获取帮助):p 打印查看
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
/dev/sdb3 10487808 18876415 4194304 5 Extended
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l l为逻辑分区,从逻辑分区中继续分区的话分出的空间是设置的扩展分区的大小,并且逻辑分区编号从5开始
添加逻辑分区 5
起始 扇区 (10489856-18876415,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-18876415,默认为 18876415):+1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
/dev/sdb3 10487808 18876415 4194304 5 Extended
/dev/sdb5 10489856 12587007 1048576 83 Linux
命令(输入 m 获取帮助):d 如果分区错误,直接使用d删除
分区号 (1-3,5,默认 5):5 选择要删除的编号
分区 5 已删除
命令(输入 m 获取帮助):p 打印查看
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
/dev/sdb3 10487808 18876415 4194304 5 Extended
命令(输入 m 获取帮助):d 继续删除
分区号 (1-3,默认 3):3
分区 3 已删除
命令(输入 m 获取帮助):p 打印查看分区表
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3fe57b16
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
命令(输入 m 获取帮助):w 保存退出
5、同步分区表
查看内核是否已经识别到新的分区
cat /proc/partitions
centos6通知内核重新读取硬盘分区表
新增分区使用:
partx -a /dev/sdb
删除分区用:
partx -d -nr N /dev/sdb N 表示数字编号,你删除的分区编号
Centos7使用partprobe
partprobe [/dev/sdb] [ ]可写可不写
gdisk和fdisk命令很相似,最主要的区别就是fdisk支持对2T以下的磁盘进行分区,超过2T的磁盘需要使用gdisk命令去分区,两者的子命令是相似的
6、为分区创建文件系统
6.1创建一个ext4文件系统
mkfs -t ext4 /dev/sdb1
6.2创建一个xfs文件系统
mkfs -t xfs /dev/sdb1
7、配置/etc/fstab文件并挂载分区
在/etc/fstab中写入新分区信息,启动开机自动挂载分区
建议在/etc/fstab中使用全局唯一标识符uuid来引用新分区,由于修改磁盘等操作可能对设备名有变动,如果在/etc/fstab中直接使用设备名,当设备名变动时可能影响存储数据。
7.1备份/etc/fstab文件
cp /etc/fstab /etc/fstab.bak
7.2在/etc/fstab里写入新分区信息。
如果使用root用户,可以运行以下命令直接修改/etc/fstab文件。
echo `blkid /dev/sdb1 | awk '{print $2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab
其中:
/dev/sdb1:已创建好文件系统的数据盘分区,您需要根据实际情况修改对应的分区名称。
/mnt:挂载(mount)的目录节点,您需要根据实际情况修改。
ext4:分区的文件系统类型,您需要根据创建的文件系统类型修改。
7.3查看/etc/fstab中的新分区信息
[root@docker ~]# cat /etc/fstab
UUID=5238dd86-baaf-48f3-9ecc-5cf47b04044e /mnt ext4 defaults 0 0
7.4挂载/etc/fstab配置的文件系统
mount -a
7.5检查挂载结果
df -h