我有一个带有两个 SSD 的设置 (UEFI),其中包含一个 Windows 分区、一个 Linux 分区、启动和交换分区以及一个数据分区。我想将所有这些移动到一个新的 SSD。我该怎么做?到目前为止,我已经使用 将 Windows 和数据分区复制到新驱动器(位于其中一个 SSD 上)clonezilla
,但现在我还想将 Linux 驱动器分区传输到这个新驱动器。如果我使用clonezilla
,它会删除我已经复制的分区。
我认为这dd
可能是可行的方法,但我无法确定 dd 是否也会覆盖那里的内容。
我曾尝试在线寻找解决方案,但是术语太多,我只能得到针对不同问题的答案。
如果需要的话,我可以重新启动,我还不依赖于新驱动器上已经克隆的分区,旧分区仍然存在。
答案1
我假设您正尝试将计算机中的两个磁盘合并为一个更大的磁盘,并且我还假设其中一个磁盘是启动磁盘。
我会这样做:
- 克隆全部的启动磁盘复制到目标磁盘,删除当前存储在该磁盘上的所有数据
- 尝试从新磁盘启动以验证复制。同时验证克隆软件是否可以看到新磁盘的实际大小,不认为整个磁盘的大小与旧磁盘相同,因此磁盘上有足够的未分配空间。
- 在目标分区上手动创建与第二个磁盘具有相同名称和属性的分区,并使它们稍微大一些
- 将分区逐个克隆到新磁盘(因为它们现在存在,所以可以将它们命名为目标)
- 启动并检查磁盘。您可能需要更正 Linux 的启动项。
答案2
经过反复尝试,我终于完成了。我的 Linux 系统是 Arch Linux,但我认为你可以让它与任何发行版一起工作 - 但是,ymmv。另外,我不确定这是否适用于 Windows / macOS,但我相当确定它不适用于两个 Windows 分区。
在执行任何操作之前,请确保备份旧 Windows 和旧 Linux 驱动器。此外,如果有人发现我所做的事情存在严重问题,请告诉我。
- 将 Windows 磁盘克隆到新驱动器(例如我使用救援队为此),然后移除旧驱动器(只是为了确保您不会意外擦除旧驱动器)。只需启动一次克隆的 Windows 分区即可确保克隆正常工作。
- 创建一个 Linux Live 系统来启动并引导它
- 创建您想要/需要的 Linux 系统分区。它们可能与您的旧系统不同,但显然新驱动器上的根分区(如果适用,也是 /home)至少需要与旧分区一样大。您可以基本上按照arch linux 安装指南从顶部直到(包括)3.1,生成 fstab 文件。这很重要实际“安装”(即 pacstrap)新的 linux - 我试过不用它,但
mkinitcpio
那时不行。这可能没有必要,但我还在pacstrap 包中添加了 和dhcpcd
。vim
git
- 现在系统已存在,请备份(/重命名)fstab 文件
mv /mnt/etc/fstab /mnt/etc/fstab_new
- 挂载旧的 Linux 分区(
mount --mkdir /old /dev/sd123
其中 123 是旧系统的分区)并复制所有数据除了旧的 /boot/ 文件夹。确保所有元数据都完好无损。我使用了 rsync。鉴于上述挂载,可以这样做:rsync -axAHX --info=progress2 --exclude 'boot' /old/ /mnt/
。确保 src 和 dst 文件夹以正斜杠结尾,否则您不会将 src 的内容复制到目标文件夹中。 - 您现在可以删除旧的 Linux 驱动器(再次,只是为了确保您不会意外删除它),然后重新启动进入实时 Linux。
- 系统已复制,但现在您需要处理引导加载程序和挂载。如果您重新启动,请再次挂载新的 Linux 系统(/mnt 和 /mnt/boot,如之前的 arch linux 安装指南所建议的那样)。将 root 更改为新系统
arch-chroot /mnt
。确保旧系统正常工作。我检查了我知道已安装的软件包pacman -Qe
。 - 创建初始 ramdisk:
mkinitcpio -p linux
- 将 grub(/whatever bootloader)安装到您创建的(可能的)efi 分区。
grub-install --targe=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
(或者将 id 替换为您想要的名称)。 - 重新创建 grub 配置(我不确定这是否有必要,但也不会有什么坏处)。
grub-mkconfig -o /boot/grub/grub.cfg
- 移动旧的 fstab 文件(因为现在 UUID 将被更改)
mv /etc/fstab /etc/fstab_old
并使用之前创建的 fstabmv /etc/fstab_new /etc/fstab
。如果您在旧系统中安装了任何其他驱动器,则可以将它们从旧 fstab 复制到新 fstab。之后,我认为您可以删除旧的 fstab 文件。
就这样,系统现在就可以工作了。启动 Windows 和 Linux 进行测试。