广告

运维必读:Linux磁盘分区与挂载的完整实操教程,从分区规划到挂载执行

1. 分区规划与目标

目标与容量估算

在进行 Linux 磁盘分区前,明确系统的使用场景是关键,例如生产环境的数据库、日志、以及系统根分区的冗余策略。容量估算需要覆盖峰值需求、备份窗口和未来扩展空间。

通过分析历史数据与未来预估,确定根分区、引导分区以及数据分区的比例。通常在计划阶段就将交换区尺寸纳入考虑,以避免运行时再调整带来的风险。

分区策略与布局

一个良好的分区布局有助于性能与可维护性。将 /boot、/、/home、以及可移动数据分区分开,并为日志、数据库等高写入负载分配独立分区。

关于交换区,静态交换分区大小通常等于物理内存的1-2倍,但对服务器和内存充足的系统可降低;对于使用 zram 的场景,可考虑不使用独立交换分区。

2. 磁盘识别与分区工具选择

常见工具对比

在 Linux 环境中,常用分区工具包括 fdisk、parted、gdisk,以及新式的 sgdisk、parted --script 等。fdisk 适合 MBR/小分区场景,parted 和 gdisk 更友好于 GPT 表。

对于自动化运维,脚本化操作更稳定,建议使用 parted --scriptgdisk 的无交互模式。

实际设备识别命令

识别新磁盘通常先用 lsblk、fdisk -l 查看设备树,确认目标设备名。

随后使用 blkid 可以获得分区的 UUID 与文件系统信息,为后续挂载做准备。

3. 新磁盘的分区实施

分区表选择与清理

在开始之前,确保目标磁盘未被系统使用或已备份。先创建分区表再创建分区,以避免分区错位。

推荐使用 GPT 分区表,以获得更好的大容量支持和对未来分区的扩展性。

创建分区

使用分区工具进入无交互模式,创建两个分区用于数据和/或日志,示例如下:

运维必读:Linux磁盘分区与挂载的完整实操教程,从分区规划到挂载执行

sudo parted /dev/sdb --script \mklabel gpt \mkpart primary 0% 50% \mkpart primary 50% 100%

上述命令中,分区大小以百分比方式分配,你也可以使用明确的字节/角标,例如 100G 与 200G 的分区。

分区对齐与检查

分区对齐对性能有影响,对齐到 1MiB 可以减少边界问题,执行完成后,用 lsblk -fblkid 验证分区的类型与挂载点潜在信息。

4. 文件系统创建与挂载

创建文件系统

为新分区创建文件系统前,确保分区已就绪。Ext4 是常见的默认选择,兼容性好且成熟

创建后,给分区打标签以便易于识别,如将 /dev/sdb1 标记为数据分区。

sudo mkfs.ext4 /dev/sdb1
sudo e2label /dev/sdb1 data-disk

挂载点与持久化配置

创建挂载点并临时挂载分区,创建统一的挂载路径提升运维可观测性

示例:将数据分区挂载到 /mnt/data,并准备将其写入 /etc/fstab 以实现开机自挂载。

sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
df -h /mnt/data

使用 UUID 做持久挂载

为避免设备名变化导致的挂载失败,推荐使用 UUID,可通过 blkid 获取。

UUID=$(blkid -s UUID -o value /dev/sdb1)
echo "UUID=$UUID /mnt/data ext4 defaults,noatime 0 2" | sudo tee -a /etc/fstab

5. 挂载执行与验证

临时挂载与生效

在完成 fstab 修改后,使用 mount -a 重新挂载所有在 fstab 的分区,确保语法正确。

如果有错误,即时查看 dmesg 和 /var/log/syslog,以定位挂载失败的原因。

sudo mount -a
dmesg | tail -n 20

验证挂载状态

通过 df -h、lsblk -f 验证新分区是否正确挂载,以及挂载点的容量信息。

另外,查看 /etc/fstab 的条目是否正确,避免下次启动时挂载失败。

6. 维护与扩展性注意事项

扩容与调整

未来需要扩容时,可以使用 parted 和 resize2fs 或者使用 LVM 来实现更灵活的扩容方案。

在执行扩容前,请先 备份重要数据并演练,确保分区表、文件系统和挂载点保持一致性。

故障排查与日常维护

对分区/文件系统异常时,检查 fsck、磁盘健康状态,并结合 SMART 信息做评估。

sudo smartctl -a /dev/sdb
sudo umount /mnt/data
sudo e2fsck -f /dev/sdb1
sudo resize2fs /dev/sdb1 200G

广告

操作系统标签