引入
在操作前无论进行过多少遍操作,一定要进行快照备份,至少可以回滚,有兜底。
在服务器新增硬盘,格式化,重启自动挂载时往往会修改/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 (请使用自己的挂载路径)
交互命令:
输入
p查看分区表确认是 sdb1输入
d删除分区(只有一个分区直接删除,多分区会让你选编号)输入
p再次核对分区表,确认 sdb1 消失输入
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) quitrm 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。
进入 fdisk 交互界面
fdisk /dev/sdb
把
/dev/sdb换成目标磁盘,不要写成 /dev/sdb1(分区!),必须是整块磁盘
常用交互指令(在Command (m for help):后面输入)
重点:只有输入
w才会真正写入磁盘分区表;中途输错想放弃,直接q退出。
2. 实操 1:删除分区(你当前场景)
fdisk /dev/sdb
p→ 打印分区,确认分区是 /dev/sdb1,核对磁盘容量,千万别选错盘d→ 删除分区如果多个分区:会提示输入分区编号;只有 1 个分区,直接自动选中删除
p→ 再次打印,确认分区消失w→ 写入分区表,保存退出
写入后如果提示内核分区表没有更新,执行:
partprobe /dev/sdbpartprobe:通知 Linux 内核重新读取磁盘分区表,不用重启就能识别新分区表
校验:lsblk / blkid
3. 实操 2:新建主分区(MBR 最多 4 个主分区)
fdisk /dev/sdb
p查看现有分区n新建分区p:主分区 primary;e:扩展分区 extended分区编号:回车默认
起始扇区:直接回车使用默认(推荐,自动对齐)
结束扇区:
直接回车:占用全部剩余空间
或写
+5G代表分区大小 5GB
p预览分区w保存写入partprobe /dev/sdb
新建后,创建文件系统(ext4 示例)
mkfs.ext4 /dev/sdb14. 实操 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 # 不进入交互,直接打印磁盘分区信息
⚠️ 风险提醒
操作前 umount 所有分区,挂载状态修改分区极易损坏文件系统、丢数据
操作前备份重要数据!
w写入后分区表变更,原有数据大概率无法读取区分:
/dev/sdb= 整块磁盘;/dev/sdb1= 第一个分区,fdisk 后面跟整块磁盘设备名如果修改完分区,不执行
partprobe,内核依然识别旧分区表,需要重启生效
2. 创建分区
执行以下命令,然后在 fdisk 中输入 n 创建分区,按提示使用默认值:
fdisk /dev/sdb (再次提醒使用你自己的设备名)注意若提示 Partition #1 contains a ext4 signature.那么是你之前的旧的 ext4 文件系统标记未清除,建议 Y 清除旧 ext4 签名。

确认没问题后输入 w 写入分区表。
lsblk -f 一下确认是不是刚刚创建的有显示了,接下来就是挂载了?不对,还要进行格式化分区~
3. 格式化分区
我给定ext4 文件系统,如👇
mkfs.ext4 /dev/sdb1lsblk -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,或者宝塔之类的面板执行后应该就能在面板上
若验证有报错请勿重启服务器,请检查配置并修正。


默认评论
Halo系统提供的评论