Linux 磁盘分区设计常见误区

15次阅读

UEFI/GPT 与 BIOS/MBR 必须匹配,否则导致无法启动;Swap 大小需按内存合理设置;SSD 分区须 1MiB 对齐且根分区建议 60–80GB;操作前必须备份分区表。

Linux 磁盘分区设计常见误区

UEFI/GPT 与 BIOS/MBR 混搭导致无法启动

最常被忽略却后果最直接的误区:系统引导模式和分区表类型不匹配。比如在 UEFI 模式下用 fdisk 创建 MBR 分区表,或在 Legacy BIOS 下强行用 gdisk 写入 GPT,结果就是开机卡在 Invalid Partition Table 或黑屏无响应。

  • 进 BIOS/UEFI 设置界面确认当前引导模式(通常叫“Boot Mode”或“UEFI/Legacy Support”)
  • UEFI 环境下必须用 gdiskparted 创建 GPT;BIOS 环境优先选 fdisk + MBR
  • 快速验证磁盘类型:sudo fdisk -l /dev/sda(显示“Disklabel type: dos”是 MBR;“gpt”则是 GPT)或 sudo gdisk -l /dev/sda

Swap 分区大小设置不合理

Swap 不是越大越好。过大会浪费空间、拖慢 SSD 寿命;过小则内存不足时直接 OOM 或休眠失败。

  • 物理内存 ≤8GB:Swap 设为 1–1.5 倍(如 4GB 内存 → 4–6GB Swap)
  • 物理内存 >8GB:Swap 设为 1–2GB 即可;若需休眠(systemctl hibernate),Swap 必须 ≥ 物理内存总量
  • 纯 SSD 环境且内存充足(≥16GB)可考虑禁用 Swap,但需确保内核参数 vm.swappiness=1 防止意外换出

SSD 分区未对齐或根分区过小

未对齐会触发额外读写放大,降低性能与寿命;根分区太小则 系统升级 失败、日志写满、apt 报错 No space left on device

  • SSD 分区务必 1MiB 对齐:用 parted 时默认开启“对齐到 MiB”;用 fdisk 时手动设起始扇区为 2048(对应 1MiB)
  • 根分区(/)建议 60–80GB:低于 50GB 容易在安装多个桌面环境、容器镜像、编译缓存后迅速告急
  • /boot 若独立分区,UEFI 下需建 EFI System 类型的 FAT32 分区(≥512MB);Legacy BIOS 下 ext4 即可(200–500MB 足够)

操作前没备份分区表、中途强制中断

分区操作本质是直接改写磁盘头部元数据,一旦出错,lsblk 都可能看不到分区——不是文件丢了,是“分区本身不存在了”。

  • 操作前必做:sudo sfdisk -d /dev/sda > sda-partition-backup.txt(MBR)或 sudo sgdisk -b sda-backup.gpt /dev/sda(GPT)
  • 严禁在 gparted 拖动调整大小时关机、断电;也别在 resize2fs 运行中 Ctrl+C
  • 所有挂载点必须先 umount,否则 fdisk 会报 Device busy;可用 lsof +D /mnt/xxx 查残留进程
实际中最容易被跳过的,是验证引导模式 + 分区表类型是否匹配这一步——它不报错、不警告,只在重启那一刻静默失败。

text=ZqhQzanResources