如何将已安装和映射的逻辑卷从一个卷 group/physical 卷移动到另一个卷

How to move mounted and mapped logical volume from one volume group/physical volume to another

我知道有很多类似的问题,但是 none 的解决方案对我有用,因为它对我来说有点复杂。如果我忽略了其中一个,我很抱歉。

所以我有一个 Ubuntu 服务器有 2 个物理卷,一个是 4TB HDD,另一个是 250GB SSD。

PV /dev/sda3   VG ssd             lvm2 [<217.43 GiB / <197.43 GiB free]
PV /dev/sdb1   VG hdd             lvm2 [<3.64 TiB / 3.63 TiB free]
Total: 2 [3.85 TiB] / in use: 2 [3.85 TiB] / in no VG: 0 [0   ]

它们分别映射到 2 个卷组 HDD 和 SSD。

Reading volume groups from cache.
Found volume group "ssd" using metadata type lvm2
Found volume group "hdd" using metadata type lvm2

卷组挂载到不同的路径:

ACTIVE            '/dev/ssd/usr' [5.00 GiB] inherit
ACTIVE            '/dev/ssd/var' [5.00 GiB] inherit
ACTIVE            '/dev/ssd/home' [5.00 GiB] inherit
ACTIVE            '/dev/ssd/opt' [5.00 GiB] inherit
ACTIVE            '/dev/hdd/data' [4.00 GiB] inherit

他们也是mounted/mapped这样

Filesystem            Size  Used Avail Use% Mounted on
udev                   32G     0   32G   0% /dev
tmpfs                 6.3G  7.6M  6.3G   1% /run
/dev/sda1             3.9G  745M  3.2G  19% /
/dev/ssd/usr          4.8G  1.7G  2.9G  37% /usr
tmpfs                  32G     0   32G   0% /dev/shm
tmpfs                 5.0M   20K  5.0M   1% /run/lock
tmpfs                  32G     0   32G   0% /sys/fs/cgroup
/dev/mapper/ssd-opt   4.8G  840M  3.8G  19% /opt
/dev/mapper/ssd-home  4.8G   10M  4.6G   1% /home
/dev/mapper/ssd-var   4.8G  944M  3.7G  21% /var
tmpfs                 6.3G     0  6.3G   0% /run/user/0
/dev/mapper/hdd-data  3.9G  8.0M  3.6G   1% /data

我想把所有的东西都移动到硬盘上,并为逻辑卷划分所有可用空间。我最初没有设置 LVM,所以我不知道该怎么做。

我试过使用 vgextend 但出现了这个错误

Can't open /dev/sdb1 exclusively.  Mounted filesystem?

我尝试使用 pvmove,但它给出了这个错误

Failed to find device for physical volume "hdd".

我也试过用vgmerge也出现了这个错误

Logical volumes in "ssd" must be inactive

如果我试图停用逻辑卷,就会发生这种情况:

Logical volume ssd/usr contains a filesystem in use.
Can't deactivate volume group "ssd" with 4 open logical volume(s)

所以我尝试卸载文件系统,但它不允许我

umount: /usr: target is busy.

而且我不认为我可以在不破坏服务器的情况下停止所有正在使用目录的东西...似乎我需要关闭服务器才能做到这一点,但我不能 运行 如果服务器关闭,任何命令...

如您所见,我被卡住了,摸不着头脑。非常感谢任何帮助。

所以我最终找到了完成它的方法...如果有人遇到这种罕见的情况,我是这样做的:

因此,如问题中所述,我无法卸载逻辑卷或在逻辑卷已安装并正在使用时对其执行任何操作。所以对我来说唯一的选择是启动到 Recovery Mode,在那里一切都会停止,只有关键的东西是 运行。这意味着我现在可以卸载逻辑卷了。

所以在 Recovery Mode 中,我在另一个物理卷上的另一个卷组上使用 lvcreate 创建了一个新的逻辑卷(我知道它很复杂)。

然后我使用 cp -rp 将现有卷中的所有内容(是的,还没有卸载它)复制到新卷中(是的,还有其他方法可以做到这一点,您也可以直接移动他们)。

现在,我可以卸载两个卷并使用 lvremove 删除旧卷。

最后,我们在/etc/fstab(用文本编辑器打开)中更改挂载点就完成了。

重新启动回到正常操作模式,它应该可以正常工作

希望这会有所帮助...但这是一种罕见的情况,所以可能不是很有帮助