Arch Linux 系統遷移

哈哈哈hh發表於2021-12-16

映象下載、域名解析、時間同步請點選  阿里巴巴開源映象站

備份 Arch Linux 系統

安裝  pigz

使用  pigz 多執行緒壓縮比使用  tar 單執行緒壓縮速度明顯提升多倍

sudo pacman -S pigz

安裝  zstd

使用  zstd 多執行緒壓縮比使用  tar 單執行緒壓縮速度明顯提升多倍。 Arch Linux 郵件列表: zstd 壓縮解壓與其他壓縮解壓工具速度對比

sudo pacman -S zstd

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  /

zstd 打包 Arch Linux

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

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

sudo tar -z -c -T0 -18 -v -p -f - arch-backup.zstd --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.zstd --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
...
// 如果有其他分割槽自行建立對應掛載目錄

pigz恢復 ArchLinux 系統

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

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

zstd恢復 ArchLinux 系統

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

sudo tar -z -c -T0 -18 -v -p -f - arch-backup.zstd -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-chroot 是  Arch 用的  chroot 其他  Linux 有專用  *-chroot 就用沒有的話直接  chroot 也可以(可能會提示許可權問題或缺少裝置資訊之類,還可以嘗試使用相應  Linux*.iso 複製到  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

編輯  /etc/mkinitcpio.conf 加速  linux.img 速度

vim /etc/mkinitcpio.conf
// 修改配置檔案的最後兩行
// 需要安裝 zstd 支援
// pacman -Syu zstd
// 還需要開啟 zstd 支援
// 否則請使用其他 壓縮演算法
COMPRESSION="zstd"
COMPRESSION_OPTIONS=(-c -T0 -18 -)

更新  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 zstd-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 zstd-compressed initcpio image: /boot/initramfs-linux-lts-fallback.img
==> Image generation successful

不需要加速  linux.img 速度

直接更新  mkinitcpio

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

退出  arch-chroot 提權模式

exit

解除安裝分割槽

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

遷移完成

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

本文轉自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2848047/,如需轉載,請註明出處,否則將追究法律責任。

相關文章