零基础也能学会的Linux磁盘分区挂载扩容教程
准备工作:看清磁盘再动手
在开始操作前,先确认系统里有哪些磁盘和分区。
用 lsblk 或 fdisk -l 查看(需要 root 权限)。
sudo lsblk
输出里会列出所有磁盘(比如 /dev/sda、/dev/sdb)以及已有分区。
如果你想给新硬盘(比如 /dev/sdb)做分区,先确认它没有被挂载,且上面没有重要数据。
注意:如果磁盘上已有数据,操作前一定备份!
分区和格式化会清空数据。
---
分区:用 fdisk 划出空间
假设新磁盘是 /dev/sdb,我们用它创建一块新分区。
sudo fdisk /dev/sdb
在 fdisk 交互界面中:
- 输入
n创建新分区。 - 选择分区类型(主分区 p,扩展分区 e),一般选
p。 - 指定分区号(默认 1)。
- 设置起始扇区和结束扇区(直接回车使用默认值,表示用完整个磁盘)。
- 输入
w保存并退出。
完成后用 lsblk 刷新,会看到新分区 /dev/sdb1。
---
格式化与挂载:让系统认得新空间
新分区需要格式化为文件系统才能用,常见的是 ext4。
sudo mkfs.ext4 /dev/sdb1
格式化完成后,创建一个挂载点(一个空目录):
sudo mkdir /data
然后把分区挂载上去:
sudo mount /dev/sdb1 /data
现在用 df -h 就能看到新分区已挂载到 /data 了,容量和可用空间都显示出来。
---
自动挂载:修改 /etc/fstab 重启不失效
直接 mount 只是临时挂载,重启后会丢失。
要让每次开机自动挂载,需要编辑 /etc/fstab。
先获取分区的 UUID(唯一标识):
sudo blkid /dev/sdb1
输出类似 UUID="xxxx...",复制这串字符。
然后编辑 /etc/fstab:
sudo nano /etc/fstab
在文件末尾添加一行:
UUID=xxxx... /data ext4 defaults 0 2
- 第一列:UUID
- 第二列:挂载点
/data - 第三列:文件系统类型 ext4
- 第四列:挂载选项
defaults - 第五列:是否备份(0 不备份)
- 第六列:fsck 检查顺序(根分区填 1,其他填 2,不检查填 0)
保存后,用 sudo mount -a 测试,无报错就说明配置正确。
重启后分区也会自动挂载。
---
扩容已有分区(可选):在线扩展空间
如果你有一个分区(比如 /dev/sda1)空间不够,又不想重装系统,可以在线扩容。
前提是底层磁盘实际有未分配空间(例如在虚拟机中扩大了磁盘大小)。
先确认分区表类型:
sudo fdisk -l /dev/sda
如果分区表是 MBR,可以用 fdisk 删除分区再重建(注意不改变起始扇区)。
如果在 LVM 中,流程更简单。
这里以 GPT 分区表且已扩出空间为例(比如 /dev/sda 从 20G 扩到 40G,多出 20G 未分配):
sudo growpart /dev/sda 1 # 扩展分区 /dev/sda1
sudo resize2fs /dev/sda1 # 扩展文件系统到整个分区
完成后 df -h 会看到容量已增加。
注意操作前最好备份重要数据。
---
避坑与高频问题
Q:挂载后目录里原有文件看不到了?
挂载点下的原有文件会被隐藏,因为挂载相当于把一个新文件系统覆盖到目录上。
解决方案:挂载前确保挂载点目录为空,或者把原文件移到别处后再挂载。
Q:修改 fstab 后系统无法启动?
大多数是因为 fstab 写错了 UUID 或路径。
可以在启动时进入紧急模式(按 e 编辑内核参数,加 systemd.unit=emergency.target),然后挂载根分区只读,修复 fstab。
Q:分区表类型怎么选?
磁盘大于 2TB 必须用 GPT,小于 2TB 可以用 MBR。
Linux 下推荐 GPT,兼容性更好。
Q:扩容后数据会丢失吗?
正常使用 growpart + resize2fs 不会丢失数据,但任何磁盘操作都有风险,养成备份习惯。
---
最后总结:本文覆盖了 Linux 磁盘分区、格式化、挂载和扩容的常见场景,每个步骤都给出了可直接执行的命令。
如果你正在处理 Linux 磁盘分区挂载扩容,建议按本文顺序操作,遇到异常时先看避坑部分。
只要仔细核对磁盘设备名和 UUID,基本不会出问题。