菰城鸥鹭
2026-10-13
点 赞
0
热 度
3
评 论
0

服务器挂载新硬盘,如何预防修改/etc/fstab出错导致启动失败

  1. 首页
  2. 服务器挂载新硬盘,如何预防修改/etc/fstab出错导致启动失败

引入

在操作前无论进行过多少遍操作,一定要进行快照备份,至少可以回滚,有兜底。

在服务器新增硬盘,格式化,重启自动挂载时往往会修改/etc/fstab。

正文从目录中的“正文开始”展开(手动狗头)

前置步骤

使用 lsblk -f 或 fdisk -l 查看磁盘和分区信息。

我以/dev/sdb为例 为了完整演示,我现将服务器内空闲的10GB ext4分区取消挂载(当前是挂载在 /mnt/disk-1 上的)

卸载现有分区并删除分区(若你是全新硬盘挂载无须执行下面的操作)

1. 卸载分区

umount /mnt/disk-1 (请使用自己的挂载路径)
检查是否卸载成功(点击展开查看)
df -h

确认 /mnt/disk-1 不在列表中,若提示 target is busy

lsof /mnt/disk-1

查看哪些进程占用,结束进程,不会的可以将输出给AI在确认结束的进程不对所需业务产生影响的前提下操作!

2. 若之前配置过 /etc/fstab 一定要记得移除先前添加的如 UUID=xxxxxxxxxxxxxx /mnt/disk-1 ext4 defaults 0 0 (否则完成后续操作重启系统会报错)

nano /etc/fstab
nano操作说明(点击展开查看)

直接键盘移动光标(不要鼠标点击),直接编辑就行,默认就是编辑模式。
编辑完成 Ctrl+O 然后回车,储存文件⬇️(不回车是不会储存的哦)

完成后Ctrl + X,若有未保存修改会询问是否保存,按 Y 保存退出、N 不保存退出。‌‌

重载 systemd 配置

systemctl daemon-reload

测试 fstab:

mount -a

若无任何输出代表正常,不会再尝试自动挂载 sdb1。

3. 删除分区 /dev/sdb1

两种工具任选其一:

方式 A:fdisk(传统,简单)

fdisk /dev/sdb (请使用自己的挂载路径)

交互命令:

  1. 输入 p 查看分区表确认是 sdb1

  2. 输入 d 删除分区(只有一个分区直接删除,多分区会让你选编号)

  3. 输入 p 再次核对分区表,确认 sdb1 消失

  4. 输入 w 写入分区表并退出

写入后内核会自动重新读取分区表;如果提示内核未更新,执行:

partprobe /dev/sdb

方式 B:parted(GPT/MBR 都支持,可能需要自行安装 apt update && apt install parted -y )

parted /dev/sdb
(parted) print
(parted) rm 1 (注意rm和数字间要有空格)
(parted) print
(parted) quit

rm 1 = 删除分区号 1,也就是 /dev/sdb1

4. 验证分区已消失

lsblk
blkid

此时列表里不再出现 /dev/sdb1。

5. 可选:删除挂载目录

不再使用 /mnt/disk-1 就删掉:

rmdir /mnt/disk-1

现在我已经有了一块未分区的磁盘了,正文开始,哈哈哈~

正文开始

1. 确认目标磁盘

使用 lsblk -f 或 fdisk -l 查看磁盘和分区信息。请使用你实际的磁盘。

那么我使用的是 /dev/sdb 。再次提醒使用你自己的设备名

我统一使用 fdisk 演示

fdisk 使用教程

⚠️ 重要前置:fdisk 用于操作磁盘分区表,操作失误会清空磁盘数据;操作磁盘前必须先卸载该磁盘上所有分区 umount,不要在挂载状态修改分区。 适用:MBR (msdos) 分区表;GPT 推荐用 gdisk。你现在 /dev/sdb 就是 msdos 类型,正好适用 fdisk。

  1. 进入 fdisk 交互界面

fdisk /dev/sdb

把 /dev/sdb 换成目标磁盘,不要写成 /dev/sdb1(分区!),必须是整块磁盘

常用交互指令(在Command (m for help):后面输入)

命令

作用

m

查看全部帮助菜单

p

print,打印当前磁盘分区表(操作前后必执行核对)

n

new,新建分区

d

delete,删除分区

t

change partition type,修改分区类型 ID

w

write,写入分区表并退出,保存修改

q

quit,直接退出,不保存任何修改

重点:只有输入 w 才会真正写入磁盘分区表;中途输错想放弃,直接 q 退出。


2. 实操 1:删除分区(你当前场景)

fdisk /dev/sdb
  1. p → 打印分区,确认分区是 /dev/sdb1,核对磁盘容量,千万别选错盘

  2. d → 删除分区

    • 如果多个分区:会提示输入分区编号;只有 1 个分区,直接自动选中删除

  3. p → 再次打印,确认分区消失

  4. w → 写入分区表,保存退出

写入后如果提示内核分区表没有更新,执行:

partprobe /dev/sdb

partprobe:通知 Linux 内核重新读取磁盘分区表,不用重启就能识别新分区表

校验:lsblk / blkid


3. 实操 2:新建主分区(MBR 最多 4 个主分区)

fdisk /dev/sdb
  1. p 查看现有分区

  2. n 新建分区

    • p:主分区 primary;e:扩展分区 extended

    • 分区编号:回车默认

    • 起始扇区:直接回车使用默认(推荐,自动对齐)

    • 结束扇区:

      • 直接回车:占用全部剩余空间

      • 或写 +5G 代表分区大小 5GB

  3. p 预览分区

  4. w 保存写入

  5. partprobe /dev/sdb

新建后,创建文件系统(ext4 示例)

mkfs.ext4 /dev/sdb1

4. 实操 3:修改分区类型

MBR 分区需要修改类型 ID,比如 swap、linux。

fdisk /dev/sdb
t    # 进入修改分区类型
# 输入分区号
# 输入类型代码:83 = Linux ext4,82 = Linux swap
p    # 核对
w

配套检查命令(fdisk 操作完必用)

lsblk                # 查看磁盘、分区树状结构
blkid                # 查看分区UUID、文件系统类型
fdisk -l /dev/sdb    # 不进入交互,直接打印磁盘分区信息

⚠️ 风险提醒

  1. 操作前 umount 所有分区,挂载状态修改分区极易损坏文件系统、丢数据

  2. 操作前备份重要数据!w写入后分区表变更,原有数据大概率无法读取

  3. 区分:/dev/sdb = 整块磁盘;/dev/sdb1 = 第一个分区,fdisk 后面跟整块磁盘设备名

  4. 如果修改完分区,不执行partprobe,内核依然识别旧分区表,需要重启生效

2. 创建分区

执行以下命令,然后在 fdisk 中输入 n 创建分区,按提示使用默认值:

fdisk /dev/sdb (再次提醒使用你自己的设备名)

注意若提示 Partition #1 contains a ext4 signature.那么是你之前的旧的 ext4 文件系统标记未清除,建议 Y 清除旧 ext4 签名。

确认没问题后输入 w 写入分区表。

lsblk -f 一下确认是不是刚刚创建的有显示了,接下来就是挂载了?不对,还要进行格式化分区~

3. 格式化分区

我给定ext4 文件系统,如👇

mkfs.ext4 /dev/sdb1

lsblk -f 确认一下,good o( ̄▽ ̄)d!

还差自动挂载 O(∩_∩)O

4. 挂载磁盘

创建挂载目录并查询分区 UUID,如👇

mkdir -p /mnt/disk-1
blkid /dev/sdb1

记住这里的 UUID

编辑 /etc/fstab 将新的配置好即可,如👇(值替换为自己的)

保存后先执行 mount -a 验证配置;如果没有报错,再使用 df -h 确认挂载结果。

root@# mount -a
mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.

mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.

不是报错,只是 systemd 缓存提醒,执行 systemctl daemon-reload 即可,若你有1Panel,或者宝塔之类的面板执行后应该就能在面板上

若验证有报错请勿重启服务器,请检查配置并修正。


你好鸭!

菰城鸥鹭

istp 鉴赏家

站长

不具版权性
不具时效性

文章内容不具时效性。若文章内容有错误之处,请您批评指正。

切换评论

目录

欢迎来到菰城鸥鹭的站点,为您导航全站动态

135 文章数
36 分类数
3 评论数
42标签数
最近评论
菰城鸥鹭

菰城鸥鹭


测试