一、背景
公司买了一台机架式服务器(512G + 8T),出厂没有预装系统,后面装了个 Ubuntu Server 24.04,装的过程中没有手动设置分区,装完之后看各分区的容量发现跟实际的硬盘对不上,没有哪个分区有 512G 或者 8T,应该是大容量硬盘没有挂载,所以需要把硬盘挂载到目标分区,实现扩容。
在 Ubuntu Server 24.04 环境下使用 LVM 技术扩容磁盘的操作流程。首先查看分区情况,识别未使用的物理卷空间。接着创建新的逻辑卷用于挂载 /home 目录,并完成格式化和挂载配置。随后将新硬盘加入卷组,扩展根目录逻辑卷容量,并刷新文件系统。最后通过 lvs 和 df 命令验证扩容结果。整个过程涉及 pvcreate、vgextend、lvextend 及 resize2fs 等常用命令。

公司买了一台机架式服务器(512G + 8T),出厂没有预装系统,后面装了个 Ubuntu Server 24.04,装的过程中没有手动设置分区,装完之后看各分区的容量发现跟实际的硬盘对不上,没有哪个分区有 512G 或者 8T,应该是大容量硬盘没有挂载,所以需要把硬盘挂载到目标分区,实现扩容。
可以看到一共有 8 个分区,最大分区容量是根目录的 98G,但是 512G 的 /dev/sdb 没有使用到,8T 的 /dev/sda 划分了 sda1,sda2 和 sda3 三个分区,但只有 sda1 和 sda2 分别挂载到了 /boot 分区和 /boot/efi 分区,剩下 7.3T 的 sda3 没有使用。
因为当时安装系统时,在磁盘分区那里选择的默认方式(Set up this disk as an LVM group),系统使用了 LVM 分区方式,所以 / 对应的是 /dev/mapper/ubuntu--vg-ubuntu-lv 逻辑卷,在分配容量时并不会使用所有硬盘容量,当分区空间不足时就需要利用 LVM 进行扩容。
系统的分区列表里没有 /home,所以在扩容之前需要先创建 /home。(在此之前还有一步对根目录 LV 进行缩容,实操时由于根目录的占用问题导致缩容一直失败,不同方法尝试了很多次,即使进入单用户模式操作也不行,最终放弃这一步,直接扩容。)
分配 /dev/sda3 全部剩余空间给 /home
# 查看卷组剩余空间(确认大小)
vgdisplay ubuntu-vg | grep "FREE PE"
# 创建 /home 的 LV(名称 home-lv,大小用全部剩余空间)
lvcreate -l 100%FREE -n home-lv ubuntu-vg
# 格式化 /home 的 LV
mkfs.ext4 /dev/mapper/ubuntu--vg-home--lv
# 临时挂载新 LV
mkdir /mnt/tmp_home
mount /dev/mapper/ubuntu--vg-home--lv /mnt/tmp_home
# 复制现有/home 数据到新 LV(保留权限)
rsync -av /home/ /mnt/tmp_home/
# 备份原 /home,修改挂载
mv /home /home.bak
mkdir /home
umount /mnt/tmp_home
mount /dev/mapper/ubuntu--vg-home--lv /home
# 验证数据,确认复制完整(应看到原有用户目录)
ls /home
# 查看新 LV 的 UUID
blkid /dev/mapper/ubuntu--vg-home--lv
# 写入 fstab,替换 UUID
echo "UUID=your UUID /home ext4 defaults 0 2" >> /etc/fstab
# 验证挂载(无报错则正常)
mount -a
将 /dev/sdb 加入 LVM,扩展根目录
# 分区工具
fdisk /dev/sdb
依次输入并回车:
# 将 /dev/sdb1 创建为 LVM 物理卷
pvcreate /dev/sdb1
# 将 PV 加入 ubuntu-vg 卷组
vgextend ubuntu-vg /dev/sdb1
# 扩展根目录 LV 到卷组全部剩余空间,包含 /dev/sdb1 的 447G
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
# 刷新文件系统,使容量生效
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
# 查看 LV 分配
lvs
# 查看挂载和空间
df -h / /home
可以看到扩容之后的根目录有 538G,主目录有 7.2T。扩容完成。上述操作都是在单用户模式下进行的。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online