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

我有以下情况:

我目前的Ubuntu(12.04)安装是从外部硬盘驱动器(250 GB)运行的,因为我懒得买一个新的内置硬盘。 现在我有一个新的内部(120GB),我想把一切都移到内部。 安装Ubuntu新是出于讨论,因为它是个性化的。

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

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

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

正如您所怀疑的那样,使用LVM非常优雅。

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

物理安装新的硬盘,格式化并创建它,使用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使新的根磁盘可启动

完成。

首先,如果您使用整个250GB磁盘进行当前安装,则需要将其缩小以适应120GB磁盘。 您只能在卸载时缩小ext4文件系统,因此您需要启动Ubuntu live系统(CD或USB)或专门的维护实时系统,如GParted live 。 您可以使用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 

或者,您也许可以使用Clonezilla 。 这是一个function强大的磁盘操作和克隆工具,我认为它涵盖了你的情况,但我没有经验。