Arch Linux 系統遷移

備份 Arch Linux 系統

安裝 pigz

使用 pigz 多線程壓縮比使用 tar 單線程壓縮速度明顯提升多倍

sudo pacman -S pigz

打包 Arch Linux

--exclude 排除的路徑/文件,根據自己系統掛載情況選擇需要排除的路徑或文件。

注:當前是在 / 目錄下執行

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  /

給新盤分區或掛載

使用 fdisk 等磁盤工具分區

自行參考 fdisk 或自己喜歡的磁盤工具使用幫助。不會用看幫助。或者看別人手冊。

掛載新硬盤分區到 /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
...
// 如果有其他分區自行創建對應掛載目錄

恢復 ArchLinux 系統

將當前系統的備份恢復到新掛載點,Linux 一切皆文件的思路對於備份恢復非常方便。

sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz -C /mnt/arch

創建剛纔排除的文件夾

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

獲取 UUID

sudo lsblk 

修改 /etc/fstab 掛載文件

可以使用 genfatab 自動生成 /mnt/arch/etc/fstab 文件

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

建議使用 vim 等文本編輯器修改 /etc/fstab 掛載文件

注:arch-chrootArch 用的 chroot 其他 Linux 有專用 *-chroot 就用沒有的話直接 chroot 也可以(可能會提示權限問題或缺少設備信息之類,還可以嘗試使用相應 Linux*.iso 複製到 Ventoy 啓動盤(見 Ventoy 啓動盤

sudo arch-chroot /mnt/arch/

vim etc/fstab

修改 UUID 修改對應的掛載點

更新 Grub 引導

還是在 arch-chroot 權限下,此處已 UEFI 引導爲例,MBR 或其他方式請參考 Arch WiKi 上的介紹。

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

update-grub

更新 mkinitcpio

mkinitcpio -p linux/linux-lts/其他內核

mkinitcpio -p linux-lts
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'default'
  -> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts.img
==> Starting build: 5.4.84-1-lts
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-lts.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'fallback'
  -> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts-fallback.img -S autodetect
==> Starting build: 5.4.84-1-lts
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-lts-fallback.img
==> Image generation successful

退出 arch-chroot 提權模式

exit

卸載分區

sudo umount /mnt/arch/home
sudo umount /mnt/arch/boot/efi
...
// 如果有其他分區自行卸載對應掛載目錄,和掛載相反的是最後卸載 根(/) 分區

sudo umount /mnt/arch

遷移完成

重啓宿主機後,在 BIOS 界面可以看到新增的 ArchLinux 引導。表示遷移完成即可使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章