archlinux 老电脑到新电脑 无痛迁移


首先要准备 两 个 u 盘 ,装上 live cd 

linux 下是 使用 dd 命令 

用U盘替换 /dev/sdx,如 /dev/sdb。(不要加上数字,也就是说,不要键入 /dev/sdb1 之类的东西)

dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

 windows 下 下载 个 refus 就好啦 ,按照提示  就作出来了

然后 在 老电脑 和新电脑 上面 都 跑起来  live cd ,要在 同一个网里面(无线有线都行) ,要能互相 传数据 

然后 进去 以后  用 mount 挂载 硬盘  

我这里是 分了3 个区 ,就挂3 个 

老电脑新电脑都这么挂 (新电脑先给硬盘分区 在挂载,老电脑 已经分好了, 直接 挂载就行)

$ df -h
文件系统        容量  已用  可用 已用% 挂载点
dev             3.8G     0  3.8G    0% /dev
run             3.8G  1.3M  3.8G    1% /run
/dev/nvme0n1p2  147G   28G  112G   20% /
/dev/nvme0n1p3  320G   20G  285G    7% /home
/dev/nvme0n1p1  799M  156K  799M    1% /efi

mount /dev/nvme0n1p2 /mnt

  

mount /dev/nvme0n1p3  /mnt/home

 

mount /dev/nvme0n1p1 /mnt/efi

然后在新电脑 执行 rsync 命令 

 rsync -aviHAXKh --partial --delete (老电脑的ssh地址比如10.168.1.199):/mnt/  /mnt

等1个多小时(根据你的网速还有系统文件大小决定)

然后 在新电脑 上面 执行 

生成 fstab 文件

fstab 用来定义磁盘分区

genfstab -U /mnt > /mnt/etc/fstab

把环境切换到新系统的/mnt 下

arch-chroot /mnt

安装微码 如果你 老电脑是 amd 新电脑是 intel 的cpu 和老电脑不一样就 安装 ,一样就不安装 了

pacman -S intel-ucode #Intel

pacman -S amd-ucode #AMD

安装引导程序

pacman -S grub efibootmgr #grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。

grub-install --target=x86_64-efi --efi-directory=/efi --removable

最后生成 GRUB 所需的配置文件

grub-mkconfig -o /boot/grub/grub.cfg


完成安装

exit                # 退回安装环境#
umount -R  /mnt     # 卸载新分区
reboot              # 重启


重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统