马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
服务器和开发机上最常遇到的一件事:根分区满了,得再挂一块盘出去。Ubuntu 下"挂一块硬盘"其实是两步:先把物理盘做成可用的分区(分区表 + 文件系统),再把它绑到一个目录上。绑定动作叫 mount,写进 /etc/fstab 才能开机自动挂。
这篇按实际操作的顺序走一遍:认盘、分区、格式化、建挂载点、手动挂一次、写 fstab 永久生效、最后把常见的几种翻车情况收拾掉。命令都在 Ubuntu 20.04/22.04 上验证过,其他发行版同理。
一、动手前先分清两件事
第一次挂盘的人容易混淆这两种场景,处置方式完全不同:
- 新盘(裸盘、没分区表)→ 需要新建分区表、建分区、格式化,数据不会丢,因为本来就没数据。
- 旧盘(已经有数据)→ 能不动分区就不动分区,直接 mount 到某个目录读数据更划算;真要重新分区,先备份。
只要盘里有东西,动手前一定先备份。分区命令误操作删掉分区表,数据基本找不回来。
二、认盘:先看清自己要动哪块
插好盘后先用两条命令看系统认识不认识它:
lsblk
sudo fdisk -l
lsblk 输出最直观,树形展示"磁盘 → 分区 → 挂载点":
sdb 931.5G
└─sdb1 931.4G /data
注意几个容易看错的点:
- 老盘一般是
/dev/sda,新加的第二块是 /dev/sdb,第三块 /dev/sdc;分区是 sdb1、sdb2(IDE 的老命名是 hda,现在的机器基本见不到了)。
- 虚拟机里可能是
/dev/vdb 或 /dev/nvme0n1;NVMe 的分区号写法是 nvme0n1p1。
- 容量对不上(比如插了 1T 只看到 200G)通常是分区表只标了前面一段,或者盘没插好。
三、分区与格式化:图形和命令行两条路
路线 A:GParted 图形工具
桌面版 Ubuntu 装 GParted 比较省事,建分区、格式化都在界面点:
sudo apt update
sudo apt install gparted
打开后选中目标盘(例如 /dev/sdb),按这个顺序点:
- Device → Create Partition Table:新盘要先建分区表。当代系统选
GPT,老主板+Windows 双系统选 msdos(MBR)。
- 点分区图上的空闲块,选 New:文件系统选
ext4(Linux 通用做法);要和 Windows 互拷文件选 ntfs 或 exfat。
- 确认无误后点 Apply,等它执行完。
路线 B:fdisk + mkfs(服务器常用,无图形界面)
纯命令行环境(SSH 进机房的机器)就用这套:
sudo fdisk /dev/sdb
进到交互提示符后:
- 输入
p 打印当前分区表,确认没选错盘;
- 输入
n 新建分区,一路回车用默认值即可(默认从头填满整块盘最省事);
- 输入
w 写入分区表并退出。
建完分区要格式化才能用,ext4 是最通用的选择:
sudo mkfs.ext4 /dev/sdb1
如果输出里有 ext4 filesystem to be labelled 之类提示就说明成功了。要格式化成 NTFS 给 Windows 用,先装工具包 sudo apt install ntfs-3g;exFAT 用 sudo apt install exfat-fuse。
四、建挂载点并手动挂一次
挂载点就是一个普通目录,先用 mkdir 建好,然后 mount 上去:
sudo mkdir /data
sudo mount /dev/sdb1 /data
挂完立刻验证:
df -h
ls /data
df -h 里能看到 /dev/sdb1 和对应挂载点就说明这一步通了。这一层只是"临时生效",重启就没了——要永久生效必须写 /etc/fstab。
五、写 /etc/fstab 实现开机自动挂载
先拿到分区的 UUID(比用 /dev/sdb1 稳,重启后设备名顺序可能变):
sudo blkid /dev/sdb1
输出里的 UUID="xxxx-xxxx" 记下来,然后编辑 fstab:
sudo nano /etc/fstab
加一行:
UUID=xxxx-xxxx /data ext4 defaults 0 2
这行的 6 个字段分别是什么意思,一次说清:
| 字段 | 含义 | 示例 |
| 第 1 个 | 要挂载的设备(UUID 或设备路径) | UUID=xxxx-xxxx |
| 第 2 个 | 挂载点目录 | /data |
| 第 3 个 | 文件系统类型 | ext4 / ntfs3 / exfat |
| 第 4 个 | 挂载参数 | defaults、noexec、nofail |
| 第 5 个 | 是否交给 dump 备份,填 0 基本不会有人管 | 0 |
| 第 6 个 | fsck 检查顺序,根分区 1,其他 2,不检查填 0 | 2 |
几个常用参数值得记一下:nofail 表示这个盘没挂上也不耽误系统起来(服务器强烈建议加);defaults 就是常规默认值;数据盘别加 noexec 除非你清楚自己在干什么。
写完后用这条命令让系统按 fstab 全部挂载一遍,验证配置没问题:
sudo mount -a
没报错就是对的。可以再 reboot 或者 sudo mount -a 后 df -h 复核,确认重启后还在。
六、常见的几种翻车现场
- 挂载后各种权限报错:桌面版常见"已挂载但显示锁图标",本质是目录属主不对。把挂载点目录交给当前用户:
sudo chown -R $USER USER /data。服务器场景更常见的做法是在 fstab 里加 uid=、gid= 参数。
- 重启后进不了系统:百分之八九十是 fstab 配置写错(UUID 抄错、文件系统类型不对、分区其实没格式化)。救法是用 Ubuntu 安装盘进 "Try" 模式挂载原系统分区,注释掉 fstab 里那行再重启。
- umount 提示 target is busy:有进程正用着这个目录。先
lsof +D /data 找到进程 kill 掉,或 sudo umount -l /data 延迟卸载兜底。
- 新盘怎么都看不见:先确认物理连接(云厂商还要在控制台挂载云盘),再
lsblk;虚拟机可能需要在虚拟化层热插后 echo -1 > /sys/block/sdb/device/rescan 触发重扫。
七、小结
Ubuntu 挂一块新盘的完整链路就是:认盘(lsblk/fdisk -l)→ 分区(GParted 或 fdisk)→ 格式化(mkfs.ext4)→ 建目录并 mount 验证 → 写 /etc/fstab 永久挂载 → 用 mount -a 和重启两次验证。真正的坑不在步骤多,而在把 /dev/sda 和 /dev/sdb 看混、以及 fstab 里多打一个空格。
另外提醒一句:如果这块盘是给多人或业务共用的,挂载后记得把 /data 目录权限和 fstab 里的挂载参数一起定好,不要只解决"能挂上"这一步就完事。
qidao123.com企服评测-应用市场 编辑提示
本文为运维实操整理,命令均可在 Ubuntu 20.04/22.04 直接执行。操作涉及磁盘分区,务必先备份数据;生产环境建议先在测试机验证。更多 Linux 运维实践内容欢迎到 qidao123.com 企服评测-应用市场 交流。
|