将整个Linux安装移动到另一个驱动器
我有Ubuntu 14.04,有很多软件包和工作相关的东西,我很满意。 它安装在我的主SSD驱动器上,这是一个120GB的(当我安装ubuntu时我选择了“/”,所以我相信应该在这个驱动器上的一切)。 它显示为/ dev / sda
现在我已经在我的计算机上添加了另一个SSD,这是一个240Gb。 我目前手边没有任何其他存储介质(例如外置硬盘)。
由于新的240GB硬盘具有明显更大的容量和更快(比我的120GB更新一代),我想将我的Linux移动到这个新硬盘。 这个新的驱动器显示为/ dev / sdb,目前它没有格式化或任何东西(我现在已经完全解包并插入我的电脑中:P)
如何安全地将我的linux安装移动到新驱动器?
我可以更换SATA电缆,以便新驱动器在必要时显示为/ dev / sda。
如果有帮助,这是“fdisk -l”的输出:
Disk /dev/sda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00076d7a Device Boot Start End Blocks Id System /dev/sda1 * 2048 226064383 113031168 83 Linux /dev/sda2 226066430 234440703 4187137 5 Extended Partition 2 does not start on physical sector boundary. /dev/sda5 226066432 234440703 4187136 82 Linux swap / Solaris Disk /dev/sdb: 240.1 GB, 240057409536 bytes 255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table
您可以使用CLONEZILLA来实现此目的。
Clonezilla是一个免费的分区和磁盘映像/克隆工具,可用于以高度压缩的方式备份所有数据(整个磁盘或分区),然后将其克隆回硬盘以使其完全相同。 这比大多数时候安装操作系统要快。
-
下载Clonezilla stable ISO或直接下载clonezilla-live-2.4.6-25-amd64.iso
-
使用Tuxboot 7.0制作可启动(实时)USB。
-
从创建的Clonezilla媒体启动。
-
现在你有很多选择:
- 创建仅“/”(saveparts)的图像并将其克隆到其他SDD的任何分区。
- 创建完整磁盘(savedisk)的映像并将其克隆到新SSD。
在您的情况下,您也可以使用“设备 – 设备”选项,但我不熟悉它。
你可以在这里找到关于Clonezilla的详细指南: http : //clonezilla.org
它可以通过几种方式完成。 但最简单的方法是将所有文件从旧驱动器复制到新驱动器。
-
在新驱动器上创建ext4分区和交换分区。
-
从LiveUSB启动。
-
将旧的Ubuntu分区挂载到某个目录,将新的挂载到其他目录。
-
使用
cp -a
命令将所有文件从旧文件复制到新文件。 -
将grub安装到新驱动器 。
-
使用新的UUID更新
/etc/fstab
。
如果事情不明确,我可以补充一些解释。
如果你有时间并想要安全:
$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync
命令说明:
-
if
是目的地的输入 -
bs
设置块大小。 它是读取和写入的块的大小。更高的块大小通常意味着更高的性能,但如果输入磁盘有错误,也会导致更多的数据损坏,请参见此处: dd上的archwiki - 在r / w-errors中继续出现错误。
- 如果发生错误,
sync
同步偏移量。
这将基本上创建一个磁盘sda的映像并将其写入sdb(相同的分区布局等)。当然,这将写入整个120GB,因为它与文件无关。 因此非常安全,但不是最快,如果你只使用磁盘的一小部分。 但是,如果输入磁盘已满,则可能更快。
但:
- 之后,您可能希望调整分区大小,否则您无法利用额外空间。
- 无论如何,可能需要编辑/ etc / fstab文件。
如果使用Hardware-ID识别磁盘,则会出现这种情况。
与其他答案不同,这允许您克隆Linux安装并将其添加到Grub菜单中,当前安装完好无损。 此外,它会自动为您修改/etc/fstab
并更新grub
启动菜单。
提供了一个菜单,可帮助您选择要克隆的正确分区。 分区中的克隆是您当前引导的分区。
如果您选择重新克隆分区,则rsync
用于获得最佳速度。 如果升级失败,等待错误修复并希望再次运行升级,这将非常有用。 同样,您可能在升级期间选择了错误的选项,并希望再次执行此操作。
完整的脚本可以在这里找到: Bash脚本将Ubuntu克隆到新分区以测试18.04 LTS升级 ,这就是屏幕的样子:
我切换到新硬盘时的方式是:
- 在新驱动器上创建我想要的分区布局
- 从Live CD / USB启动或安装,救援等。
- 挂载要复制到的旧硬盘分区,比如
/mnt/a
- 安装新的硬盘分区以接收文件,比如说
/mnt/b
-
cp -a
或使用tar将文件从/mnt/a
复制到/mnt/b
- 在新磁盘¹上安装引导加载程序(lilo或grub)
- 更新
/etc/fstab
(您可能希望使用blkid
来识别新的UUID) - 如果一切正常,重启并测试
Note¹:
使用以下命令检查所有硬盘和分区:
sudo fdisk -l
现在记下安装Ubuntu的分区,它看起来像: /dev/sda1
将分区挂载到需要安装GRUB 2(硬盘分区)的位置,文件系统显示在Nautilus中。 现在我们必须安装正确的硬盘分区来更改实际的硬盘MBR。 为此,我们需要:
sudo mount /dev/sda1 /mnt mount
现在将分区安装到备用位置
sudo mount /dev/sda1 /mnt/boot
从您启动的实时映像上的/dev
文件夹创建一个不可破解的链接到您挂载到/mnt
的分区上的/dev
文件夹
sudo mount --bind /dev /mnt/dev/
现在我们必须将root从live CD root(/)更改为已安装分区的root
sudo chroot /mnt
现在,您处于新的根shell中,其中已安装的分区是新的根。 你可以validation这个输入ls
。 由于我们现在处于已安装的分区中,我们可以提前安装GRUB 2:
sudo grub-install /dev/sda
安装现在应该完成,没有错误
退出CHROOT shell,输入exit
或按Ctrl + D ,返回Live CD / USB Shell
卸载我们之前安装的分区以进行干净重启:
sudo umount /mnt/dev sudo umount /mnt/boot sudo umount /mnt
删除Live CD或USB Stick以从硬盘启动后重新启动:
sudo reboot
资源