我的笔记本电脑中有一个 500 GB SSD,其中一个分区保存 Windows 7,第二个分区保存 Ubuntu 18.10,安装在 BTRFS 文件系统上,块大小为 4KB,双启动。
我有一个 1 TB SSD 安装在我的台式电脑中,我想将我笔记本电脑当前的 Ubuntu 18.10(BTRFS 文件系统)分区的完整副本复制到这个 1 TB SSD 上用于我的桌面。我不想在我的 1TB SSD 上安装 Windows,而是希望整个 1TB SSD 单启动 Ubuntu 18.10。当我在复制后登录新 SSD 上的操作系统时:我想访问我所有已安装的软件(通过 sudo、pip 和 .deb 文件安装)、我的所有设置和软件配置以及我的所有书签。
但是,我想重新安装 Ubuntu 18.10,并为我的桌面的 1 TB SSD、64 GB 内存和 i7-6700k 处理器提供最佳块大小。
是否可以将具有 BTRFS 文件系统和 4KB 块大小的自定义 Ubuntu 18.10 操作系统复制/克隆到新安装的具有 BTRFS 文件系统和(例如)4096KB 块大小的 18.10 操作系统(如果 4096KB 最适合我的 PC)?
我希望两个操作系统上的一切都相同。我是否需要从头开始手动安装每个软件项目/或者我可以执行 Clonezilla 或将我的笔记本电脑目录直接安装到我的 1TB SSD 之类的操作吗?
尝试这种转移存在许多潜在的技术问题。要制作精确的副本,您可能会使用 Clonezilla 或 dd,但是如果同时插入两个磁盘,您可能会遇到 UUID 冲突,这可能会破坏数据。AFAIK这个UUID克隆冲突只是BTRFS的一个问题,并且与操作系统有关,认为这两个磁盘是一个RAID阵列,或者不知道哪个磁盘将数据写回两个,导致日志不同步并且在关机时不干净。
这项任务将更适合 Arch 系统。分区布局可能有所不同 - MFT 与 GPT,如果是 MFT 引导加载程序数据必须通过 chroot 新磁盘并运行 apt 或 dpkg-reconfigur grub2 或您使用的任何引导加载程序来写入磁盘的开头。
然后是 /etc/fstab 中每个 btrfs 子卷都有不同的子卷 ID 的问题,所以如果你要通过手动设置新磁盘上的布局并尝试 rsync 所有数据来解决 4k 问题,子卷卷 ID 会有所不同,需要您确切知道在文件系统中更改它们的位置。
我建议您断开旧磁盘,然后安装新的 ubuntu。然后找到命令以生成通过 apt 安装的所有软件包的列表,以及通过 pip 安装的所有软件包,并运行命令重新安装所有这些。
完成之后,我建议重新同步您的 /home 目录,并假设它涵盖了 99.9% 的重要数据,让另一个磁盘保持当前状态,以便稍后将您错过的任何内容从其中拉出。
据我所知,磁盘的 KB 扇区大小不应该真正影响性能,但不要引用我的话。
这是我在找到您自己的问题的答案时会开始考虑的信息。
对于上述 UUID 问题,您可以使用:
btrfstune -U <UUID> /dev/sdx1
更改任何驱动器上任何 btrfs 分区的 UUID。对于子卷 ID,它取决于您如何设置 btrfs 文件系统。如果您遵循 Ubuntu 的标准布局,即 root 使用 @ 子卷和 home 使用 @home 子卷,那么 UUID 是相同的。例如我的 /etc/fstab:
使用 rsync 可以正常工作,因为我将系统备份到 ext4 分区,在另一个驱动器上完全创建一个新的 btrfs 文件系统,然后使用 btrfstune 将我的 UUID 更改为之前的状态,然后使用 rsync 将所有内容复制到 btrfs 驱动器。请注意,仅当您想要相同的 UUID 时才需要使用 btrfstune(不必弄乱
/etc/fstab
)。如果这对您无关紧要,只需将其更改/etc/fstab
为您当前的 UUID。无论您是使用 MBR 引导还是 UEFI 引导,都会产生很大的不同。我使用 UEFI。