我有以下情况:
我当前的Ubuntu(12.04)安装是从外部HDD(250 GB)运行的,因为我懒于购买新的内部HDD。现在,我有了一个新的内部内存(120GB),我想将所有内容移动到内部。不再讨论安装Ubuntu新程序,因为它已经过时了。
幸运的是(我希望如此),根分区已使用LVM进行了分区,因此希望将分区移至较小的内部HDD。
这可能吗?在哪里可以找到帮助?
编辑:这个问题已经很老了,可能已经过时了。我添加了当时使用的Ubuntu版本。
我有以下情况:
我当前的Ubuntu(12.04)安装是从外部HDD(250 GB)运行的,因为我懒于购买新的内部HDD。现在,我有了一个新的内部内存(120GB),我想将所有内容移动到内部。不再讨论安装Ubuntu新程序,因为它已经过时了。
幸运的是(我希望如此),根分区已使用LVM进行了分区,因此希望将分区移至较小的内部HDD。
这可能吗?在哪里可以找到帮助?
编辑:这个问题已经很老了,可能已经过时了。我添加了当时使用的Ubuntu版本。
Answers:
您可能怀疑,使用LVM这样做非常优雅。
缩小现有安装以适合较小的磁盘。
物理上安装新硬盘,格式和pvcreate
它,使用vgextend
它添加到相同的VG的根分区
使用pvmove
透明远离旧分区将所有数据
用于vgreduce
从vg中删除外部hd。拔出旧磁盘/ dev / sdOLD。
在下面的示例中:
/dev/sdOLD
代表要替换的旧分区/dev/sdNEW
代表新分区取代它。vgX
代表卷组示例:当然,您必须100%确保使用的设备正确。同样,从系统中删除完整且最新的备份也是必不可少的。
pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD
使用update-grub
和grub-install
使新的根磁盘可启动
做完了
首先,如果您将整个250GB磁盘用于当前安装,则需要将其缩小以适合120GB磁盘。您只能在卸载ext4文件系统时对其进行收缩,因此您需要从Ubuntu live系统(CD或USB)或专用维护live系统(例如GParted live)启动。您可以使用resize2fs
或GParted来调整现有文件系统的大小。
缩小现有安装的文件系统以适合新磁盘后,如果需要,可以在安装了文件系统的情况下进行其余操作。如果现有文件系统适合新磁盘,则可以进行传输而无需卸载任何文件或重新引导。
在下面的描述中,我将展示如何使用称为的现有卷组从物理卷移动/dev/sdb1
到物理卷。确保调整磁盘字母和分区号以匹配您的系统。/dev/sda1
oldvg
要进行实时传输:
cfdisk
,fdisk
,parted
,...)。请参阅例如如何添加其他硬盘驱动器?pvcreate /dev/sda1
vgextend oldvg /dev/sda1
pvmove /dev/sdb1 /dev/sda1
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。这是一个功能强大的磁盘操作和克隆工具,我认为它可以解决您的情况,但是我没有经验。
pvadd, pvmove, pvremove
,这个问题的答案如何被我接受……