archlinux 老电脑到新电脑 无痛迁移
笔记本主板把 secure boot 安全启动禁用
首先要准备 两 个 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 ,要在 同一个网里面(无线有线都行) ,要能互相 传数据
如果你老电脑是在vmware 里面安装的 arch ,进入live cd 就 点击 虚拟机的电源 -打开电源时进入固件, 然后选择 从上往下第3个选项 , 就能进入 live cd 环境了
然后 进去 以后
用 passwd 命令 都给 设置上root 密码 ,还有 使用 ip a 命令 临时 修改 一下ip ,互相ping 一下能通
用 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 --exclude="/home/ifnk/.cache(这个是你想排除的文件夹,可以写多个excludes )" -aviHAXKh --partial --delete (老电脑的ssh地址比如10.168.1.199):/mnt/ /mnt
等1个多小时(根据你的网速还有系统文件大小决定)
注: 为了传输速度 我用网线 把两台笔记本直连 ,速度能有 40m/s
这样需要你网线插两个笔记本口上,然后 分别 设置 ip a add 192.168.1.11/24 和 ip a add 192.168.1.22/24 (ip 随便定 两个ip 在一个网段就行) 然后 就应该能ping 通了,
然后 其中一个需要 设置密码 passwd (默认是root) ,这样就能使用 rsync 直接传输 达到最快的速度
然后 在新电脑 上面 执行
生成 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 # 重启
重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统
迁移到vmware 需要注意的
如果你 按照上面的步骤 把 老电脑的 系统 迁移到你的 vmware 虚拟机里面 ,会发现进不去系统
这个时候 需要在开机时 进入 第二个选项(advanced options for archlinux ) 默认是第一个 (arch linux ) , 然后 在选择 fallbacks 项启动 ,这样就能进入系统了 ,然后 进入系统后需要 重新 mkinitcpio -P 生成 initramfs , 以后 就可以正常启动啦
附带: 启动后第三个选项 uefi firmware settings 后进入vmware bios 选择 cd-rom (大概是第三个) 就能以 live-cd 启动 ,我之前是傻傻的重新 装了一遍 live-cd ……
装完记得 安装 open-vm-tools 然后 启动 并 启用 vmtoolsd.service
和 vmware-vmblock-fuse.service