Archlinux 系统迁移

发布时间 2023-10-09 15:14:14作者: ffeiH

1. 网络环境下

https://bbs.archlinuxcn.org/viewtopic.php?id=4611 没有试过

2. 硬盘间

路径切换到/ 下,使用pigz 打包archlinux

sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.tgz --exclude=/mnt --exclude=/sys --exclude=/run/media  --exclude=/media  /

给新盘分区与挂载

sudo cfdisk /dev/sda

挂载硬盘分区到/mnt/arch 下(也可以是其他目录)

sudo mkdir -pv /mnt/arch
sudo mkdir -pv /mnt/arch/boot/efi
sudo mkdir -pv /mnt/arch/home
#具体看分区情况

挂载硬盘分区

sudo mount /dev/sdb3 /mnt/arch
sudo mount /dev/sdb4 /mnt/arch/home
sudo mount /dev/sdb1 /mnt/arch/boot/efi
#有其他分区自行创建目录然后挂载即可

使用pigz 恢复archlinux 系统

sudo tar --use-compress-program=pigz -xvpf arch-backup.tgz -C /mnt/arch
#原文中 -x(解压) 变成了 -c(创建归档) ,会导致命令运行错误

创建刚才派出的文件夹(重要,一定要照做,否则eg:不创建 /proc 无法 arch-chroot成功)

sudo mkdir -pv /mnt/arch/proc 
sudo mkdir -pv /mnt/arch/sys 
sudo mkdir -pv /mnt/arch/run 
sudo mkdir -pv /mnt/arch/dev

使用genfstab生成fstab文件(没有此命令的话需要安装包arch-install-scripts )

sudo genfstab -U /mnt/arch >> /mnt/arch/etc/fstab
cat /mnt/arch/etc/fstab

使用arch-chroot /mnt/arch 切换到迁移的系统中

更新grub引导

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader=ArchLinux --recheck

编辑 /etc/mkinitcpio.conf 加速 linux.img 速度

vim /etc/mkinitcpio.conf

## 修改配置文件的最后两行
## 需要安装 zstd 支持
## pacman -Syu zstd
## 还需要开启 zstd 支持
## 否则请使用其他 压缩算法

COMPRESSION="zstd"
COMPRESSION_OPTIONS=(-c -T0 -18 -)

使用mkinitcpio更新linux.img镜像

mkinitcpio -p linux-lts
## 或者
mkinitcpio -P

退出arch-chroot并卸载分区

exit

sudo umount -R /mnt/arch

完成 Congratulations!