磁盘分区--fdisk/gdisk

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

你可能感兴趣的:(磁盘管理)