将 Linux 安装的精确状态恢复到具有不同大小驱动器和其他硬件的另一台笔记本电脑上

将 Linux 安装的精确状态恢复到具有不同大小驱动器和其他硬件的另一台笔记本电脑上

我有一台运行 Linux 的计算机,已经使用过并安装完毕,安装了软件包、浏览器配置文件等。驱动器为 60gb,有一个交换分区和一个 ext4 根分区。

我需要将此配置文件移动到具有更大驱动器的另一台计算机上。

我该怎么做?我倾向于将其关闭,启动实时 Linux 系统,将整个 60gb 驱动器 dd 到一个文件,将另一个驱动器启动到实时系统,然后将文件 dd 到其更大的驱动器。

这能行吗?我知道在 Windows 上不行,但我相信这是微软人为施加的限制。这是正确的吗,还是 Linux 也有类似的限制?

如果没有,我该怎么做? clonezilla 能工作吗,还是硬件差异会阻止它工作?

答案1

这样,60GB 驱动器就会复制到 320GB 驱动器上,分区大小相同(因此可用空间相同)。然后,您可以添加一个分区来使用剩余空间(也许将 /home 移动到新分区,因为这往往是最大的分区)。

或者,将 320GB 安装为 USB 驱动器,根据需要对其进行分区,然后将所有内容从一个驱动器 rsync 到另一个驱动器。

这在 Windows 上绝对做不到,但在 Linux 上却可以。你唯一需要做的就是重新安装 grub,并确保 grub.cfg 在将其安装为主驱动器时有意义。然后确保 /etc/fstab 引用正确的分区(manjero 使用 uuid 吗?)

所以你的问题的答案是“是的”只需将 Linux 从一个驱动器复制到另一个驱动器,如果您熟悉上述内容,那么让它工作就相当容易了。

答案2

我在工作时总是这么做。我通常做的就是执行 rsync。启动到类似 sysreq cd 的程序:

http://www.sysresccd.org/SystemRescueCd_Homepage

或者 Ubuntu 或任何其他实时磁盘。打开终端并输入以下内容:

mkdir /mnt/old
mkdir /mnt/new

mount /dev/sdax /mnt/old
mount /dev/sdbx /mnt/new

你还需要挂载其他特殊分区,比如 /home 的 sdb2 等。然后只需执行常规 rsync

 rsync -Pav  --exclude=/mnt/old/dev --exclude=/mnt/old/proc --exclude=/mnt/old/sys  /mnt/old /mnt/new/

一旦完成,我们将需要 chroot 并执行 grub 操作。

mount -o bind /dev /mnt/new/dev
mount -t proc none /mnt/new/proc
mount -t sysfs none /mnt/new/sys
chroot /mnt/sysimage /bin/bash
grep -v rootfs /proc/mounts > /etc/mtab
rm -f /boot/grub/device.map 
grub-install --no-floppy /dev/sda

所以这应该可行……否则会毁掉一切。尽情享受吧!

PS:我不相信这适用于 Windows

答案3

这取决于两个分区表:它们是相同(MS-DOS/GPT)类型,还是不同类型?

如果您乐意从旧系统继承 MS-DOS 分区表,那么 dd 磁盘就可以了;只需确保新系统 BIOS 知道您正在使用旧磁盘的兼容模式。

如果您从 GPT 迁移到 GPT 系统,情况也是一样(我怀疑这不是您的情况,但我为其他可能的读者写这篇文章)。

如果您决定从 MS-DOS 迁移到 GPT 分区表,则无法对磁盘执行 dd 命令。原因是 GPT 分区表将信息存储在(保护性)MBR 之后(以及磁盘末尾,但这不会带来什么问题)。因此,为了在保护性 MBR 之后适应新的 GPT 结构,您应该移动或重新调整第一个分区的大小,这既耗时又会危及数据的完整性。在这种情况下,对磁盘执行 rsync 操作是迄今为止最好的解决方案。

至于硬件兼容性,应该没有什么问题。总的来说,udev 可以处理所有事情,除非您可能有一些需要特别注意的组件。例如,您可能会从一个 wifi 驱动程序是开源的系统转到另一个需要专有软件的系统。例如,您可能必须为您的驱动程序安装固件。或者,您可能必须为全新的 NVidia 卡安装 NVidia 专有驱动程序。

也可能需要重新配置 X 服务器,以使其适应新硬件。如果您引入了具有 2D/3D 加速功能的新卡,则情况确实如此,因为这将需要除通常的 vesa 驱动程序之外的其他东西。

 sudo Xorg :0 -configure

将会处理好这件事。

有时,以太网连接也可能需要不常见的驱动程序。虽然这种情况并不常见,但尤其令人烦恼,因为它可能会让您无法连接。为了解决这个问题,我建议您在将旧系统移到新电脑上之前,先了解一下新电脑在 Linux 上运行实时发行版的效果。只需记下实时发行版用于以太网和 wifi 连接的驱动程序,然后将其下载到旧系统上,您就可以顺利运行。

至于通过这种方式将 Windows 迁移到新系统的可能性,我从未尝试过(我从未使用过 Windows)。但是,Windows 是专有软件,而您正在考虑的这种迁移本质上相当于增加在同一许可证下运行的系统数量。对于 FOSS 来说,这不是问题,但我相信专有软件的所有者(例如 Windows 和 Apple;但也是所有付费应用程序的所有者)已采取措施防止这种情况发生。如果您打算转让许可证,情况可能会有所不同,在这种情况下,我相信其中一些软件会给予相当大的自由度(但我再次不能根据自己的经验谈论 Windows)。

相关内容