Linux 磁盘管理
一、磁盘类型与命名规则
不同类型的磁盘在 Linux 中有特定的设备文件命名方式,通过fdisk -l
或parted -l
可查看设备类型
磁盘类型 | 命名规则 | 示例 |
---|---|---|
SATA/SCSI/SAS | 以sd 为前缀,按顺序编号(a、b、c…),分区加数字(1、2、3…) |
第一块硬盘:sda ,其第一分区:sda1 |
NVMe | 以nvmeXnYpZ 为格式 - X:通道号(0 开始) - Y:硬盘号(1 开始) - Z:分区号(1 开始) |
通道 0 的第 1 块硬盘第 1 分区:nvme0n1p1 |
virtio-block | 以vd 为前缀,按顺序编号,分区加数字 |
第一块硬盘:vda ,其第一分区:vda1 |
二、分区工具与信息查看
- fdisk -l:查看磁盘及分区详细信息(支持 MBR 分区),输出字段含义:
Device
:分区设备文件名(如/dev/sda1
)Boot
:是否为引导分区(*
表示是)Start/End
:分区在磁盘中的起始 / 结束柱面位置sectors
:分区总扇区数Size
:分区大小Id
:分区 ID(83=Linux 分区,82=swap 分区)Type
:分区类型
- parted -l:查看所有磁盘的分区布局(支持 MBR 和 GPT),可通过
parted /dev/sda print
查看单块硬盘的分区表
三、分区方案(MBR vs GPT)
磁盘分区需先选择分区方案,核心区别如下:
特性 | MBR(Master Boot Record) | GPT(GUID Partition Table) |
---|---|---|
最大支持磁盘 / 分区大小 | 2TB | 8ZB(远超 2TB) |
最大分区数量 | 最多 15 个 | 最多 128 个 |
分区表存储 | 磁盘第一个扇区(512 字节):446 字节引导记录 + 64 字节分区表(4 个主分区,每个 16 字节)+2 字节结束标志 | 磁盘首尾各存一份分区表(自带备份,损坏可恢复) |
适用场景 | 小容量磁盘(≤2TB)、传统 BIOS 引导 | 大容量磁盘(>2TB)、UEFI 引导 |
四、分区创建(parted 工具)
需先为磁盘写入 “磁盘标签”(即选择分区方案),再创建分区
1. 写入磁盘标签(选择分区方案)
- MBR 标签:
parted /dev/sdb mklabel msdos
- GPT 标签:
parted /dev/vdb mklabel gpt
2. 创建 MBR 分区(示例)
parted /dev/sdb # 操作/dev/sdb磁盘
mklabel msdos # 确认MBR方案(若未写入标签)
unit MB # 设置单位为MB(1MB=1000KB,1MiB=1024KiB)
mkpart # 新建分区
primary # 分区类型(主分区)
xfs # 标记文件系统类型(仅标记,未格式化)
1MB # 起始位置(从1MB开始,避开引导区)
501MB # 结束位置(分区大小500MB)
quit # 退出,自动保存
udevadm settle # 等待系统识别新分区(生成/dev/sdb1设备文件)
简化命令:parted /dev/sdc mkpart primary xfs 1MB 501MB
(直接创建)
3. 创建 GPT 分区
步骤与 MBR 类似,仅需先写入 GPT 标签:parted /dev/sdd mklabel gpt
,后续分区操作一致
4. fdisk 工具(交互式分区,适合 MBR)
fdisk /dev/sdb # 进入交互式操作
n # 新建分区
p # 主分区(或e扩展分区)
1 # 分区号
(默认起始扇区) # 按回车
+500M # 分区大小(或指定结束扇区)
w # 保存退出
partprobe /dev/sdb # 刷新分区表(让系统识别)
常用操作:d
(删除分区)、p
(查看分区表)、t
(修改分区 ID)、q
(不保存退出)
五、格式化分区
分区创建后需格式化(写入文件系统),常用命令:
mkfs.xfs /dev/sdc1
:格式化为 xfs 文件系统(适合大文件,默认日志型)mkfs.ext4 /dev/sdc2
:格式化为 ext4 文件系统(兼容好,支持小文件)
六、挂载分区(临时 / 永久)
分区需挂载到目录才能使用,挂载点需提前创建(如mkdir /data
)
1. 临时挂载
mount /dev/sdc1 /data # 将/dev/sdc1挂载到/data
2. 永久挂载(写入 /etc/fstab)
/etc/fstab
文件记录开机自动挂载信息,格式如下(5 个字段,空格分隔):
UUID=xxxxxxx /data xfs defaults 0 0
字段含义:
- 设备标识:建议用 UUID(唯一,避免设备名变动),通过
blkid /dev/sdc1
查询 - 挂载点:目录路径(如
/data
;swap 分区此处写swap
) - 文件系统类型:如
xfs
、ext4
、swap
- 挂载参数:
defaults
(默认,含 rw、suid、dev 等)、ro
(只读)、noexec
(禁止执行程序)等 - dump 备份:0 = 不备份,1 = 需要备份(dump 工具)
- fsck 检查:0 = 不检查,1 = 优先检查(根分区),2 = 次要检查(xfs 无需检查,设 0)
配置步骤:
blkid /dev/sdc1 # 获取UUID(如UUID="abc123")
mkdir /cy # 创建挂载点
vim /etc/fstab # 写入上述格式内容
mount -a # 生效配置(检查是否有误,错误会导致开机失败)
七、交换分区管理(虚拟内存)
用于缓解物理内存不足,需单独分区并格式化为 swap 类型
1. 查看交换分区状态
free -m # 查看总内存、使用量、交换分区大小
2. 创建交换分区(非交互式)
# 1. 创建分区(类型设为linux-swap)
parted /dev/sdc mkpart primary linux-swap 1MB 501MB
# 2. 格式化swap分区
mkswap /dev/sdc1
# 3. 写入/etc/fstab(永久生效)
echo "UUID=$(blkid -s UUID -o value /dev/sdc1) swap swap defaults 0 0" >> /etc/fstab
# 4. 启用交换分区
swapoff -a # 关闭所有交换分区
swapon -a # 开启所有交换分区(读取/etc/fstab)
总结
磁盘管理核心流程:识别磁盘类型→选择分区方案(MBR/GPT)→创建分区→格式化→挂载(临时 / 永久),交换分区作为特殊分区需单独配置。操作时需注意/etc/fstab
的正确性,避免开机故障