版本号: 1.0,0
作者: @老王要学习
日期: 2025.04.25
适用环境: Centos7
本教程适用于 Centos7 环境,详细介绍 Linux 磁盘及分区管理操作。包含虚拟机添加磁盘的关机与开机添加方法、MBR 和 GPT 两种分区方式特点、fdisk 和 gdisk 分区命令使用、分区格式化及临时和永久挂载分区操作
关闭虚拟机——打开VM——菜单——虚拟机——设置——硬盘——添加——一直下一步——完成——确定——开机
init 0
添加同关机添加一样步骤,添加完系统无法识别到,使用命令来扫描新磁盘
echo "- - -" >> /sys/class/scsi_host/host0/scan
echo "- - -" >> /sys/class/scsi_host/host1/scan
echo "- - -" >> /sys/class/scsi_host/host2/scan
#查看磁盘信息
fdisk -l
结果如下sdb为新添加的磁盘(可能因环境不同名字有差异)
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
MBR传统的磁盘分区方式,最多支持4个主分区,或3个主分区和1个扩展分区,扩展分区下可以分多个逻辑分区
分区数量限制:最多支持4个主分区,或3个主分区和1个扩展分区,扩展分区下可以分多个逻辑分区
容量限制:每个分区最大支持2TB容量
兼容性好:在各种操作系统与硬件平台上有较好的兼容性
GPT是一种新型的磁盘分区表结构,全称为’全局唯一标识磁盘分区表’
自纠错能力:能在一定程度上检测和修复分区表的错误,提高磁盘分区可靠性
无主分区数量限制:主分区数量不在只能创建4个,可以根据实际需求创建多个,灵活的分区管理
大容量支持:支持大于18EB的总容量,几乎无上限,最大支持128个分区,每个分区支持到256TB
fdisk
分区fdisk /dev/sdb
#创建新分区输入n,创建主分区p,分区号1,起始值为0,赋予+3G的空间,查看分区情况p,保存并退出w
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+3G
分区 1 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x199d97e6
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
fdisk
常用命令如下:命令 | 作用 |
---|---|
p | 显示当前磁盘的分区情况 |
n | 创建新分区,选择p创建主分区,选择e创建逻辑分区 |
d | 删除一个指定的分区,输入分区编号 |
w | 保存分区表并退出 |
q | 不保存直接退出 |
t | 修改分区类型,输入分区编号与设置文件类型代码 |
l | 显示fdisk支出所以文件系统类型代码的名称 |
创建3个主分区分别3G,剩下的全部分给创建扩展分区,再创建2个3G与1个5G逻辑分区
#创建完3个主分区直接可以创建扩展分区e
令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Using default response e
已选择分区 4
起始 扇区 (18876416-41943039,默认为 18876416):
将使用默认值 18876416
Last 扇区, +扇区 or +size{K,M,G} (18876416-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 11 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x199d97e6
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
/dev/sdb2 6293504 12584959 3145728 83 Linux
/dev/sdb3 12584960 18876415 3145728 83 Linux
/dev/sdb4 18876416 41943039 11533312 5 Extended
#创建3个逻辑分区结果如下:
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
/dev/sdb2 6293504 12584959 3145728 83 Linux
/dev/sdb3 12584960 18876415 3145728 83 Linux
/dev/sdb4 18876416 41943039 11533312 5 Extended
/dev/sdb5 18878464 25169919 3145728 83 Linux
/dev/sdb6 25171968 31463423 3145728 83 Linux
/dev/sdb7 31465472 41943039 5238784 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
gdisk
分区介绍gdisk
是专门用于 GPT 分区表的分区工具,其使用方法与 fdisk
类似
再添加一块硬盘进行测试/dev/sdc
#没有gdisk进行安装
yum -y install gdisk
#进行磁盘分区
gdisk /dev/sdc
#创建效果如下:(自定义设置大小感受创建过程)
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-41943006, default = 6293504) or {+-}size{KMGTP}:
Last sector (6293504-41943006, default = 41943006) or {+-}size{KMGTP}: +4G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): p
Disk /dev/sdc: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 61C69977-56B5-45AA-A931-C3C6DD9C56C2
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 27262909 sectors (13.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6293503 3.0 GiB 8300 Linux filesystem
2 6293504 14682111 4.0 GiB 8300 Linux filesystem
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
mkfs.ext4 /dev/sdb1
#完成效果如下:
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
196608 inodes, 786432 blocks
39321 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
适用于一般的 Linux 桌面系统和小型服务器,对于日常办公、开发环境以及一些对小文件读写频繁的应用较为合适
mkfs.xfs -f /dev/sdb2
#成功结果如下:
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
常用于大型服务器、数据库系统、高性能计算环境以及需要处理大量数据的场景,如数据中心、媒体存储等
将格式化后的分区挂载系统目录树中,使其能够被系统访问与使用
重启虚拟机后挂载失效
mount /dev/sdb1 /mnt
注:意挂载修改不会有任何提示
写入/etc/fstab文件中,每次开机自动挂载
echo "/dev/sdb1 /mnt/data ext4 defaults 0 0" >> /etc/fstab