Linux 磁盘管理

发布于:2025-08-05 ⋅ 阅读:(10) ⋅ 点赞:(0)

Linux 磁盘管理

一、磁盘类型与命名规则

不同类型的磁盘在 Linux 中有特定的设备文件命名方式,通过fdisk -lparted -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

字段含义:

  1. 设备标识:建议用 UUID(唯一,避免设备名变动),通过blkid /dev/sdc1查询
  2. 挂载点:目录路径(如/data;swap 分区此处写swap
  3. 文件系统类型:如xfsext4swap
  4. 挂载参数defaults(默认,含 rw、suid、dev 等)、ro(只读)、noexec(禁止执行程序)等
  5. dump 备份:0 = 不备份,1 = 需要备份(dump 工具)
  6. 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的正确性,避免开机故障


网站公告

今日签到

点亮在社区的每一天
去签到