📌 简介
这篇文章记录了我在 Ubuntu 服务器上的一次硬盘初始化与分区扩容过程,包括使用 LVM 扩容根分区、初始化新磁盘、创建独立 VG/LV、格式化并挂载到指定目录,以及配置 fstab 以防止因磁盘故障导致系统无法启动。内容完整可复现,适用于生产环境中常见的磁盘管理场景。
📚 一、背景说明
服务器原有系统盘 /dev/sda 已使用 LVM,但根分区只分配了 100G,其余约 198G 未被使用。同时新增了一块 1TB 的磁盘 /dev/sdb,计划单独用作上传附件的存储,并挂载到 /opt/upFiles。
本文记录了完整的磁盘操作过程,便于未来复用或给遇到类似需求的朋友做参考。
🧱 二、查看磁盘现状
root@ubuntu:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.3M 1 loop /snap/core20/1822
loop1 7:1 0 111.9M 1 loop /snap/lxd/24322
loop2 7:2 0 49.8M 1 loop /snap/snapd/18357
loop3 7:3 0 50.9M 1 loop /snap/snapd/25577
loop4 7:4 0 91.4M 1 loop /snap/lxd/36918
loop5 7:5 0 63.8M 1 loop /snap/core20/2682
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 298G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 100G 0 lvm /
sdb 8:16 0 1T 0 disk
sr0 11:0 1 1.8G 0 rom可以看到:
/dev/sda3→ LVM PV,属于ubuntu-vg/dev/ubuntu-vg/ubuntu-lv→ 根分区,目前仅 100Gubuntu-vg中有 198G 空闲空间/dev/sdb→ 新增 1TB 空磁盘
检查VG:
root@ubuntu:~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <298.00 GiB
PE Size 4.00 MiB
Total PE 76287
Alloc PE / Size 25600 / 100.00 GiB
Free PE / Size 50687 / <198.00 GiB
VG UUID lNdHOw-JsW2-KQh4-Wydt-FBc0-vDSV-68V6D2输出类似:
Free PE / Size 50687 / <198.00 GiB说明根 VG 还有 198G 可用。
🛠 三、扩容根分区(/)
根文件系统使用的是 ext4,因此可以在线扩容,无需卸载或重启。
扩展 LV 到剩余全部空间
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
扩展 ext4 文件系统
resize2fs /dev/ubuntu-vg/ubuntu-lv检查结果:
root@ubuntu:~# df -Th Filesystem Type Size Used Avail Use% Mounted on tmpfs tmpfs 1.6G 1.3M 1.6G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv ext4 293G 8.0G 272G 3% / tmpfs tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda2 ext4 2.0G 251M 1.6G 14% /boot tmpfs tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000根分区应扩至完整的 298GB。
💽 四、初始化新增磁盘 /dev/sdb
创建 PV
pvcreate /dev/sdb
创建独立 VG(例如 data-vg)
vgcreate data-vg /dev/sdb
创建 LV(使用全部空间)
lvcreate -l 100%FREE -n upFiles-lv data-vg
格式化为 ext4
mkfs.ext4 /dev/data-vg/upFiles-lv
📂 五、挂载到 /opt/upFiles
创建挂载目录:
mkdir -p /opt/upFiles挂载:
mount /dev/data-vg/upFiles-lv /opt/upFiles检查:
root@ubuntu:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 1.6G 1.3M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 293G 8.0G 272G 3% /
tmpfs tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 ext4 2.0G 251M 1.6G 14% /boot
tmpfs tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
/dev/mapper/data--vg-upFiles--lv ext4 1007G 28K 956G 1% /opt/upFiles🔒 六、配置 fstab(确保磁盘故障不影响开机)
查看 UUID:
blkid /dev/data-vg/upFiles-lv假设得到:
UUID="3f4be1a6-c104-4a47-a6ce-0d2cfdbce3db"编辑 /etc/fstab:
vim /etc/fstab添加这一行:
UUID=3f4be1a6-c104-4a47-a6ce-0d2cfdbce3db /opt/upFiles ext4 defaults,nofail,x-systemd.device-timeout=0 0 2测试:
mount -a无报错即成功。
参数说明:
| 选项 | 作用 |
|---|---|
| nofail | 磁盘不存在不会导致开机失败 |
| x-systemd.device-timeout=0 | 不等待设备,提高开机速度 |
| defaults | ext4 默认挂载参数 |