我拥有 Ubuntu 14.04,它包含很多软件包和与工作相关的内容,我对它非常满意。它安装在我的主要 SSD 驱动器上,该驱动器有 120GB(安装 Ubuntu 时我选择了“/”,所以我相信所有内容都应该在这个驱动器上)。它显示为/dev/sda
。
现在我又为我的电脑添加了一个 240GB 的 SSD。我手头上目前没有其他存储介质(例如外部硬盘)。
由于新的 240GB 硬盘显然容量更大、速度更快(比我的 120GB 硬盘更新一代),我想将我的 Linux 移到这个新硬盘上。这个新硬盘显示为,/dev/sdb
目前它没有格式化或任何其他东西(我现在已经拆开包装并插入我的电脑 :P)
我怎样才能安全地将我的 Linux 安装移动到新驱动器?
我可以更换 SATA 电缆,以便新驱动器能够按/dev/sda
需要显示。
这是有帮助的 if 的输出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
答案1
您可以为此目的使用 Clonezilla。
Clonezilla 是一款免费的分区和磁盘映像/克隆工具,可用于以高度压缩的方式备份所有数据(整个磁盘或分区),然后将其克隆回硬盘,使其恢复到完全相同的状态。这在大多数情况下比安装操作系统更快。
使用内置的启动盘创建器应用程序或制作可启动(实时)USBTuxboot 7.0。
从创建的 Clonezilla 媒体启动。
现在你有很多选择:
- 创建仅“/”(saveparts)的图像并将其克隆到其他 SDD 的任意分区。
- 创建完整磁盘 (savedisk) 的映像并将其克隆到新的 SSD。
在您的情况下,您也可以使用“device-device”选项,但我对此并不熟悉。
您可以在这里找到有关 Clonezilla 的详细指南:https://clonezilla.org
答案2
可以通过几种方式完成。但最简单的方法是将旧驱动器中的所有文件复制到新驱动器。
在新驱动器上创建一个 ext4 分区和一个交换分区。
从 LiveUSB 启动。
将旧的 Ubuntu 分区挂载到某个目录,将新的分区挂载到其他目录。
使用命令将所有文件从旧文件复制到新文件
cp -a
。/etc/fstab
使用新的 UUID 进行更新。
如果有什么不清楚的话,我可以添加一些解释。
答案3
如果你有时间并且想安全出行:
$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
命令解释:
if
是输入,是of
目的地bs
设置块大小。它是 dd 将读取和写入的块的大小。块大小越高通常意味着性能越高,但如果输入磁盘有错误,数据损坏也越多,请参见此处:dd 上的 archwikinoerror
继续处于 r/w 错误中。sync
如果发生错误则同步偏移量。status
显示实时进度计数器
此外,在 Ubuntu 和大多数其他 Linux 系统(自 2015 年 GNU/coreutils 8.24 起)上,您还可以使用status=progress
它来打印该过程的进度。
这基本上会创建磁盘 sda 的映像并将其写入 sdb(相同的分区布局等)。当然,这会写入整个 120GB,因为它与文件无关。因此非常安全,但如果您只使用磁盘的一小部分,速度不是最快的。但是,如果输入磁盘相当满,速度可能会更快。
但:
- 之后您可能需要调整分区大小,否则您无法利用额外的空间。
- 无论如何,可能需要编辑 /etc/fstab 文件。
如果使用硬件 ID 来识别磁盘,情况就是如此。
答案4
与其他答案不同,这允许您克隆 Linux 安装并将其添加到 Grub 菜单,同时保持当前安装完好无损。此外,它还会自动/etc/fstab
为您修改和更新grub
启动菜单。
系统会提供菜单来帮助您选择要克隆到的正确分区。克隆自分区是您当前的启动分区。
rsync
用于在您选择重新克隆分区时获得最佳速度。如果升级失败,您等待错误修复并希望再次运行升级,这将非常有用。同样,您可能在升级过程中选择了错误的选项并希望再次执行此操作。
完整脚本可以在这里找到:Bash 脚本将 Ubuntu 克隆到新分区以测试 18.04 LTS 升级屏幕显示如下: