我最近买了一台新笔记本电脑,我想尽可能少地麻烦地迁移到它。我不想进行全新安装,因为我已经对当前设置进行了各种调整,例如从 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
分区,然后使用rsync
as复制了所有文件Arch Wiki 中描述。
我设法启动了“新”系统,但它仍然需要一些调整,特别是图形驱动程序。如果您不熟悉 Linux 并且喜欢修补,那么这不是一个可以采用的方法。当然,如果您不喜欢它,您就不太可能使用 Arch。
答案1
以下内容仅出于编辑方便的原因而保留。由于它不比评论更有价值,请随意删除它。
外部4:从 linux-5.10 开始,ext4 附带了一些新的、更轻量级的日志方法,也称为快速提交。
基准测试报告本地文件系统提高了 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?嗯……可能会觉得这有点过分了?可能想重新分配用于其他目的。
无线上网:(我认为尤其是 Intel Wi-Fi 6 AX210)
您应该知道,某些发行版已报告在较新的内核版本下出现 iwlwifi 问题。特别参见红帽 bugzilla。
据我了解,补丁应该在 5.15 次内提交(并且几乎肯定会向后移植到 LTS),但谨慎的要求你首先进行交叉检查。
除此之外,你还会遇到 WiFi 适配器的麻烦。他们总是需要一些固件 blob 才能运行。
然后,无论您的内核获取并可能加载适当的驱动程序,它都可能无法找到固件,因为根据您的发行版/制造商和版权,可能会要求您安装某些特定的软件包,甚至从制造商那里下载它回购协议。
答案2
安装新笔记本电脑、测试它是否工作,然后直接从新操作系统安装另一个驱动器或启动到 livecd 并以这种方式安装它会更容易。然后,您可以使用rsync
或 的方式移动感兴趣的内容,例如您的 homedir tar
。
我当然会反对驱动器之间的任何盲目的 dd/cating 数据,有几个你忽略的警告可能会让你很难受。
第二个 GPT 副本只是其中之一!