Linux基础篇、第四章_02磁盘及分区管理fdisk 和 gdisk
题目:Linux 磁盘及分区管理
版本号: 1.0,0
作者: @老王要学习
日期: 2025.04.25
适用环境: Centos7
文档说明
本教程适用于 Centos7 环境,详细介绍 Linux 磁盘及分区管理操作。包含虚拟机添加磁盘的关机与开机添加方法、MBR 和 GPT 两种分区方式特点、fdisk 和 gdisk 分区命令使用、分区格式化及临时和永久挂载分区操作
环境准备
硬件要求
- 服务器: 2核CPU、2GB内存,20GB硬盘空间
- 网络: 确保服务器具有固定的IP地址,并且防火墙允许FTP端口(默认22端口)的通信
软件要求
- 操作系统:Centos7
- FTP软件:SecureCRT
- 软件包:无
一、虚拟机添加磁盘
1、关机添加
关闭虚拟机——打开VM——菜单——虚拟机——设置——硬盘——添加——一直下一步——完成——确定——开机
init 0
2、开机添加
添加同关机添加一样步骤,添加完系统无法识别到,使用命令来扫描新磁盘
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 字节
二、磁盘分区方式
1、MBR(主引导记录)
MBR传统的磁盘分区方式,最多支持4个主分区,或3个主分区和1个扩展分区,扩展分区下可以分多个逻辑分区
特点:
分区数量限制:最多支持4个主分区,或3个主分区和1个扩展分区,扩展分区下可以分多个逻辑分区
容量限制:每个分区最大支持2TB容量
兼容性好:在各种操作系统与硬件平台上有较好的兼容性
2、GPT(GUID分区表)
GPT是一种新型的磁盘分区表结构,全称为’全局唯一标识磁盘分区表’
特点:
自纠错能力:能在一定程度上检测和修复分区表的错误,提高磁盘分区可靠性
无主分区数量限制:主分区数量不在只能创建4个,可以根据实际需求创建多个,灵活的分区管理
大容量支持:支持大于18EB的总容量,几乎无上限,最大支持128个分区,每个分区支持到256TB
三、分区命令
1、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.
正在同步磁盘。
2、fdisk
常用命令如下:
命令 | 作用 |
---|---|
p | 显示当前磁盘的分区情况 |
n | 创建新分区,选择p创建主分区,选择e创建逻辑分区 |
d | 删除一个指定的分区,输入分区编号 |
w | 保存分区表并退出 |
q | 不保存直接退出 |
t | 修改分区类型,输入分区编号与设置文件类型代码 |
l | 显示fdisk支出所以文件系统类型代码的名称 |
3、创建扩展分区与逻辑分区
创建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.
正在同步磁盘。
4、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 Name1 2048 6293503 3.0 GiB 8300 Linux filesystem2 6293504 14682111 4.0 GiB 8300 Linux filesystemCommand (? for help): wFinal 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.
四、分区格式化
1、格式化EXT4文件系统
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, 294912Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
适用于一般的 Linux 桌面系统和小型服务器,对于日常办公、开发环境以及一些对小文件读写频繁的应用较为合适
2、格式化 XFS 文件系统:
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
常用于大型服务器、数据库系统、高性能计算环境以及需要处理大量数据的场景,如数据中心、媒体存储等
五、挂载分区
将格式化后的分区挂载系统目录树中,使其能够被系统访问与使用
1、临时挂载
重启虚拟机后挂载失效
mount /dev/sdb1 /mnt
注:意挂载修改不会有任何提示
2、永久挂载
写入/etc/fstab文件中,每次开机自动挂载
echo "/dev/sdb1 /mnt/data ext4 defaults 0 0" >> /etc/fstab