跳到主要内容

Linux 挂载新磁盘

· 阅读需 6 分钟

给服务器加了一块新硬盘,插上去之后系统里却看不到可用空间——这是很多人第一次扩容时都会遇到的场景。磁盘从"接上主板"到"能存文件",中间还隔着识别、分区、格式化、挂载四步。这篇笔记把整个流程走一遍,顺便解释每一步在做什么。

背景:为什么插上硬盘还不能直接用

Linux 里"一切皆文件",磁盘也不例外。新磁盘接入后,内核会把它识别成一个块设备,比如 /dev/sdb/dev/vdb,但此时它只是一块"裸盘":

  • 没有分区表,系统不知道空间怎么划分;
  • 没有文件系统,内核不知道数据按什么结构组织;
  • 没有挂载点,用户态程序无法通过路径访问它。

所以完整流程是:识别 → 分区 → 格式化 → 挂载,最后再配置开机自动挂载,缺一步都不行。

实操步骤

1) 磁盘连上主板(很重要)

物理机就是把 SATA 线和电源线接好;云服务器则是在控制台把云盘挂载到实例上。这一步看着像废话,但排查"系统看不到磁盘"时,硬件连接确实是最常见的原因。

2) 重启系统

reboot

老一些的系统或热插拔不生效时,重启一次让内核重新扫描硬件最省事。支持热插拔的环境不重启也能识别,但重启是最稳妥的兜底做法。

3) 查看磁盘有没有被检测到

fdisk -l

fdisk -l 会列出所有块设备及其分区。新磁盘的典型特征是:有容量、没有分区(下方没有 /dev/sdb1 之类的条目)。记下这个设备名,后面每一步都要用。也可以用 lsblk 对照确认,它以树形展示磁盘和分区的关系,更直观。

4) 进入磁盘,开始分区

fdisk /dev/{磁盘名称}

这里的 {磁盘名称} 替换成上一步看到的设备名,比如 sdbfdisk 是交互式工具,进去之后常用的几个指令:

  • n:新建分区
  • p:打印当前分区表
  • d:删除分区
  • w:把改动写入磁盘并退出
  • q:不保存退出

5) 把磁盘分区设置好,可以只分一个区

如果整块盘就是拿来存数据的,直接 n 新建一个主分区,起止扇区全部回车用默认值,把整盘划成一个区即可,然后 w 保存退出。分多个区在如今的场景下意义不大,反而增加管理成本。

一点提醒:传统 MBR 分区表最大只支持 2TB,超过 2TB 的磁盘要用 GPT 分区表,这时应改用 partedgdisk 来分区。

6) 格式化分区

mkfs.ext4 /dev/{分区名称}

注意这里操作的对象是分区(比如 /dev/sdb1)而不是整块磁盘。mkfs.ext4 会在分区上创建 ext4 文件系统,写入超级块、inode 表等元数据结构。ext4 是目前 Linux 发行版最通用的选择;如果发行版默认用 XFS(比如 CentOS 系),换成 mkfs.xfs 也一样。

格式化会清空分区上的所有数据,执行前务必确认设备名没敲错。

7) 挂载分区

mount /dev/{分区名称} /{某个文件夹}

挂载点就是一个普通目录,不存在的话先 mkdir 创建,比如 mkdir /data。挂载后,写入 /data 的文件实际就落在新磁盘上。可以用 df -h 验证,能看到分区、容量和挂载点的对应关系。

如果挂载点目录里原本有文件,挂载后会被"遮住"看不到,卸载(umount)后又会恢复——这不是丢数据,但容易造成困惑,建议用空目录做挂载点。

8) 设置开机自动挂载

mount 命令的效果只在本次开机有效,重启后挂载就没了。要持久化,需要编辑 /etc/fstab:

vim /etc/fstab

在文件末尾添加一行:

/dev/(磁盘分区) /(挂载目录) ext4(文件格式)defaults 0 0

这行配置共六个字段,依次是:

  1. 设备:要挂载的分区,如 /dev/sdb1;
  2. 挂载点:目录路径,如 /data;
  3. 文件系统类型:和格式化时保持一致,这里是 ext4;
  4. 挂载选项:defaults 表示读写、允许执行等一组默认选项;
  5. dump 备份标志:0 表示不用 dump 工具备份;
  6. fsck 检查顺序:0 表示开机不做文件系统检查,根分区一般是 1,数据盘可设 20
注意

/etc/fstab 写错可能导致系统启动失败进入紧急模式。保存后先执行 mount -a 验证——它会按 fstab 挂载所有未挂载的条目,没有报错再重启。

踩坑与注意

  • 用 UUID 代替设备名更稳。 /dev/sdb 这类名字取决于内核识别顺序,增减磁盘后可能变化,导致 fstab 挂错盘。用 blkid 查出分区的 UUID,fstab 第一列写成 UUID=xxxx 的形式,就不受设备名漂移影响。
  • 格式化前确认设备名。 mkfs 敲错目标是不可逆的,操作前用 lsblkfdisk -l 再核对一遍,确认容量和预期一致。
  • 区分磁盘和分区。 分区、格式化、挂载各自作用的对象不同:fdisk 操作整盘(/dev/sdb),mkfsmount 操作分区(/dev/sdb1),混着用是新手最常见的报错来源。

小结

挂载新磁盘的主线就是四步:fdisk -l 确认识别、fdisk 分区、mkfs.ext4 格式化、mount 挂载,最后写 /etc/fstab 让配置在重启后依然生效。理解了"裸盘—分区—文件系统—挂载点"这条链路,再遇到扩容、换盘之类的需求,照着链路逐层排查就够了。

评论 / COMMENTS