如何将我的 LVM 250 GB 根分区移动到新的 120GB 硬盘?

如何将我的 LVM 250 GB 根分区移动到新的 120GB 硬盘?

我有以下情况:

我目前的 Ubuntu (12.04) 安装是从外部硬盘 (250 GB) 运行的,因为我懒得买新的内置硬盘。现在我有了一个新的内置硬盘 (120GB),我想把所有东西都移到内置硬盘上。安装新的 Ubuntu 不在讨论范围内,因为它太个性化了。

幸运的是(我希望如此)根分区是使用 LVM 分区的,所以我希望我可以将分区移动到较小的内部硬盘上。

这可能吗?我在哪里可以找到帮助?

编辑:这个问题已经很老了,可能已经过时了。我添加了当时使用的 Ubuntu 版本。

答案1

正如您所猜测的,使用 LVM 可以非常优雅地完成此操作。

缩小现有安装以适合较小的磁盘。

物理安装新硬盘,格式化pvcreate它,并将vgextend其添加到与根分区相同的 vg

用于pvmove透明地将所有数据从旧分区移出

用于vgreduce从 vg 中移除外部硬盘。拔下旧磁盘 /dev/sdOLD。

在下面的例子中:

  • /dev/sdOLD代表要替换的旧分区
  • /dev/sdNEW代表新的分区将取代它。
  • vgX 代表卷组

例如:当然,您必须 100% 确定您使用的设备是正确的。此外,拥有完整且最新的备份(已从系统中删除)也是必不可少的。

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

使用update-grubgrub-install使新的根磁盘可启动

完毕。

答案2

首先,如果您将整个 250GB 磁盘用于当前安装,则需要将其缩小以适合 120GB 磁盘。您只能在卸载 ext4 文件系统时对其进行缩小,因此您需要从 Ubuntu 实时系统(CD 或 USB)或专门的维护实时系统启动,例如GParted 直播。 您可以使用resize2fs或 GParted 来调整现有文件系统的大小。

一旦您缩小了现有安装的文件系统以适应新磁盘,您就可以在挂载文件系统的情况下完成其余的移动(如果您愿意)。如果现有文件系统适合新磁盘,您可以进行传输而无需卸载任何内容或重新启动。

在下面的描述中,我将展示如何从物理卷移动/dev/sdb1到物理卷/dev/sda1,其中有一个名为的现有卷组oldvg。请务必调整磁盘字母和分区号以匹配您的系统。

要进行实时传输:

  1. 使用您选择的分区工具对新磁盘进行分区(cfdiskfdiskparted、...)。例如,请参见如何添加额外的硬盘?
  2. 在新磁盘上创建物理卷:pvcreate /dev/sda1
  3. 将此物理卷添加到包含要移动的逻辑卷的现有卷组中:vgextend oldvg /dev/sda1
  4. 将逻辑卷从一个物理卷移动到另一个物理卷:pvmove /dev/sdb1 /dev/sda1
  5. 将现有卷组一分为二:vgsplit oldvg newvg /dev/sda1

另一种方法是使用 将现有逻辑卷设为镜像卷lvconvert --mirror,在新磁盘上设置镜像,然后使用 分割镜像lvconvert --splitmirrors。这样,您将得到两份数据副本,分割后每份副本都有自己的生命力。

完成复制后,您需要使新磁盘可启动。为此挂载文件系统。假设它安装在 上/mnt,请以 root 身份运行以下命令:

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

或者,你也可以使用克隆兹拉。这是一个强大的磁盘操作和克隆工具,我认为它可以解决你的情况,但我没有使用过它。

相关内容