让操作系统使用同一 VG 上 2 个逻辑卷的所有空间

让操作系统使用同一 VG 上 2 个逻辑卷的所有空间

当我安装 Ubuntu 20.04 LTE headless 时,我使用了 NVME,并且对于操作系统,我创建了一个只有 20G 的 LV,其余空间被分配给另一个挂载为 /home 的 LV...(因为我是 Linux 新手)。现在我的根目录空间不足(LV 挂载在 / 上),我正在寻找一种方法来删除第二个 LV 并将空间添加到根目录或任何其他可以避免擦除和重新安装操作系统的解决方案...

尝试过 lvresize 但即使以 root 身份登录,我也无法卸载 /home。

root@server:~# umount /home
umount: /home: target is busy.
root@server:~# lvresize -r -L -100G /dev/mapper/ubuntu--vg-storage--lv
  /dev/sdc: open failed: No medium found
  /dev/sdc: open failed: No medium found
Do you want to unmount "/home" ? [Y|n] y
umount: /home: target is busy.
fsadm: Cannot proceed with mounted filesystem "/home".
  /sbin/fsadm failed: 1
  Filesystem resize failed.

以下是lsblkDF-H

├─nvme0n1p1                259:1    0   512M  0 part /boot/efi
├─nvme0n1p2                259:2    0     1G  0 part /boot
└─nvme0n1p3                259:3    0 475.4G  0 part
  ├─ubuntu--vg-ubuntu--lv  253:0    0    20G  0 lvm  /
  └─ubuntu--vg-storage--lv 253:1    0 455.4G  0 lvm  /home
udev                                3.8G     0  3.8G   0% /dev
tmpfs                               784M  3.5M  780M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv    20G   18G  769M  96% /
tmpfs                               3.9G     0  3.9G   0% /dev/shm
tmpfs                               5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/nvme0n1p2                      976M  204M  706M  23% /boot
/dev/mapper/ubuntu--vg-storage--lv  448G  8.4G  417G   2% /home
/dev/nvme0n1p1                      511M  7.9M  504M   2% /boot/efi

谢谢你的建议。

答案1

由于文件系统位于两个逻辑卷上,因此您需要使用 LIVE CD。对于 Ubuntu 20.04 桌面版或服务器版,您需要使用 RUFUS 和 UBUNTU 桌面版创建可安装的 USB 操作系统(因为它有 TRY UBUNTU 的选项;ubuntu-20.04.2.0-desktop-amd64.iso)。然后我在某处找到了一个关于下一步该怎么做的答案(抱歉,我找不到链接):

在更改任何内容之前,请确保您有当前备份。这一切对我来说都有效,但可能对你不起作用。如果它因某种原因崩溃,你不想丢失任何无法恢复的东西。继续……据我所知,在文件系统挂载时无法缩小它,所以我们需要从 Live CD 进行实际调整大小。以下所有说明都假设您已从 20.04 桌面安装 CD 启动。

Live CD 启动到桌面后,打开终端。LVM 工具不内置在 Live CD 中,因此我们必须先安装它们: sudo apt-get install lvm2

查找包含根逻辑卷的卷组的名称(以下称为“ubuntu--vg”): sudo lvs

(如果没有显示,请尝试运行sudo lvmdiskscansudo pvscan然后重试。)如果运行,ls /dev/mapper/您可能会看到逻辑卷没有显示。如果没有显示,您需要运行以下命令以使内核知道逻辑卷: sudo vgchange --available y ubuntu--vg

由于我们尚未挂载根文件系统,因此调整大小应该是安全的。继续执行逻辑卷的实际大小调整。请注意,此命令 (--size -50G) 将卷缩小 50GB — 阅读 lvreduce(8) 手册页以了解如何指定不同的大小。 sudo lvreduce --resizefs --size -50G /dev/ubuntu--vg/storage--lv

此命令将首先缩小文件系统,然后缩小包含它的逻辑卷,这是唯一安全的方法。

现在,如果您想使用未分配的(可用空间)进行扩展,您可以使用:

lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu--lv扩展逻辑卷和 resize2fs /dev/ubuntu-vg/ubuntu--lv扩展文件系统。

您现在可以重新启动系统并启动到现已调整大小的根文件系统。

相关内容