我最近买了一台新笔记本电脑,我想尽可能少地迁移到它。我不想重新安装,因为我已经对我当前的设置进行了各种调整,例如从我的 NAS 自动安装远程驱动器、配置网络等,我不想重做。
我目前的想法是,我可以将硬盘驱动器的内容转储到一个文件中,然后cat
将该文件转储到新驱动器上。总体思路是:
在旧计算机上,将驱动器放入外部 USB 磁盘上的文件并(以 root 身份):
# cat /dev/sda > /mnt/externalUsb/sda.img
然后我启动到新计算机上的实时系统,连接外部驱动器并(以 root 身份):
# cat /mnt/externalUsb/sda.img | sudo tee /dev/sda
关闭实时会话,重新启动机器,我希望自己处于一个工作系统中,它是我旧机器的完美克隆。
或者,也许更现实的是,类似:
在新机器上创建我想要的分区,确保它们比我旧机器上的同等分区大。
在旧计算机上,将分区转换为外部 USB 磁盘上的文件(以 root 身份):
for i in 5 6; do cat /dev/sda"$i" > /mnt/externalUsb/sda"$i".img; done
在新机器上,确保数字相同或相应地修改命令后:
for i in 5 6; do cat /mnt/externalUsb/sda"$i".img; > /dev/sda"$i"; done
一些相关说明:
- 由于我将从ThinkPad T460P 转移到ThinkPad P14s Gen 2 ,因此新旧机器的硬件相对相似。
- 新机1TB硬盘,旧机只有512G。
- 我正在使用 Arch,双启动与 Windows 10。我并不特别担心保持 Windows 安装。
我当前机器的磁盘设置:
$ sudo parted -l
Model: ATA SAMSUNG MZ7LN512 (scsi)
Disk /dev/sda: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 EFI system partition boot, hidden, esp
2 274MB 290MB 16.8MB Microsoft reserved partition msftres
3 290MB 86.4GB 86.1GB ntfs Basic data partition msftdata
5 86.4GB 136GB 50.0GB ext4
6 136GB 437GB 301GB ext4
9 437GB 485GB 47.3GB ntfs msftdata
8 485GB 495GB 10.5GB ext4
7 495GB 511GB 16.1GB linux-swap(v1) swap
4 511GB 512GB 1049MB ntfs Basic data partition hidden, diag
我期望内核在第一次启动时检测到新的/不同的硬件并自动为我整理出来。我在这里遗漏了一些明显的东西吗?我可能遇到的任何具体问题?新驱动器更大,所以这应该不是问题,对吧?我有一个 ecryptfs 加密的目录(实际上是其中两个),我是否正确地假设这不会成为问题?我是否需要做一些特别的事情来处理 EFI 系统分区?
我接受了 MC68020 的有用答案,但我最终采取了不同的方法:我启动了一个实时系统,创建了根目录和/home
分区,然后按照 Arch Wiki 中的描述rsync
复制了我所有的文件。
我设法启动了“新”系统,但它仍然需要一些调整,尤其是图形驱动程序。如果您不熟悉 Linux 并且喜欢修修补补,那么这不是一种可以采用的方法。当然,如果你不喜欢它,你不太可能会使用 Arch。
以下仅出于编辑原因的舒适性。由于它的价值不超过评论,请随时删除它。
ext4 :从 linux-5.10 开始,ext4 带有一些新的、更轻量级的日志方法,也称为fast-commit。
基准报告表明本地文件系统提高了 20-200%,NFS 工作负载提高了 30-75%。
如果运行一些 >=5.10 的内核,毫无疑问你只是想要那个。
但是由于快速提交是在文件系统创建时激活的,那么如果您的文件系统是在该功能可用之前创建的,您确实需要使用
fast_commit
显式启用的选项重新创建它们。(见 man mke2fs 和 man ext4)由于 linux-5.10 是在 2021 年前夕推出的,那么如果您的 ext4 fs 之前已经创建(以 root 身份启动
dumpe2fs *yourdevice* | grep created
会告诉您),那么支持此功能的可能性很小。不过,检查此功能是否实际激活似乎更直接。
cat /proc/fs/ext4/*yourdevice*/options
英伟达:我的错!那么实际上从 NVIDIA GeForce 940MX 2GB 转移到 NVIDIA Quadro T500 4GB 呢?使用 Nvidia 专有驱动程序?
如果是这样,那么只需确保您当前的驱动程序版本 >= 到 450.102.04(因为从该版本中添加了对 T500 的支持)
我无论如何都会在克隆后运行 nvidia-settings 实用程序以利用新功能。
顺便说一句,4GB?嗯……可能会觉得这有点矫枉过正?可能想重新分配给其他用途。
Wifi:(我认为特别是 Intel Wi-Fi 6 AX210)
您应该知道,一些发行版报告了在较新的内核版本下 iwlwifi 出现问题。特别参见Red-Hat bugzilla。
据我了解,一个补丁应该已经提交了 5.15 次(并且几乎可以肯定是向后移植到 LTS),但是谨慎的命令你首先要进行交叉检查。
除此之外,您还会遇到 wifi 适配器的麻烦。他们总是需要一些固件 blob 才能运行。
然后,无论您的内核是否获得并可能加载适当的驱动程序,它都可能无法找到固件,因为根据您的发行版/制造商和版权,可能会要求您安装某些特定的软件包,甚至从制造商的回购。
安装新笔记本电脑,测试它是否工作,然后直接从新操作系统安装另一个驱动器或引导到 livecd 并以这种方式安装它会容易得多。
rsync
然后你会用or的方式移动你感兴趣的东西,比如你的 homedirtar
。我当然会反对驱动器之间的任何盲目的 dd/cating 数据,您忽略了一些警告,这可能会让您非常难以理解。
第二个 GPT 副本只是其中之一!