skip to content
鰭狀漏斗

移動 Arch Linux 到其他硬碟

/ 閱讀時間 3 分鐘

硬碟空間不夠了,所以我跑去買了新硬碟。買完之後就要把原先在舊硬碟的 Arch Linux 系統搬到新硬碟。舊硬碟有兩個磁區(分割區),一個是開機磁區,另一個是存放 Arch Linux 系統與資料的資料磁區。資料磁區就直接移過去就好,沒什麼好說的。開機磁區也是可以直接複製過去,不過我選擇重建開機磁區。

重建開機磁區

要重建開機磁區,可以參考安裝指南,要做的是這兩個步驟:建立 initramfs 跟安裝 boot loader。

前置作業

首先用 Arch Linux 的安裝 USB 開機,然後把需要的磁區掛載到 /mnt

Terminal window
mount /dev/root_partition /mnt
mount --mkdir /dev/efi_system_partition /mnt/boot

接著變換根目錄:

Terminal window
arch-chroot /mnt

建立 initramfs

只要執行 mkinitcpio 就好:

Terminal window
mkinitcpio -P

安裝 boot loader

在移過去的資料磁區還留著已經安裝的 boot loader package,我們需要把 boot loader 重新安裝到開機磁區。流程會隨著你先前安裝的 boot loader 不同而不同,以我用的 systemd-boot 來說,就是執行:

Terminal window
bootctl install

修改設定

換了 root 磁區需要修改相對應的設定。

boot loader

跟上面一樣,流程會隨著你先前安裝的 boot loader 不同而不同,以我用的 systemd-boot 來說,需要修改 loader 設定:

/boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw

root= 後面的改成現在的 root 磁區。

fstab

退出剛剛的 chroot,確認需要的磁區是否都掛載好了,然後執行:

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

以生成新的 fstab 檔案。

結語

如果上面的步驟都做好而且沒有出錯的話,應該就完成硬碟轉移了。中間有漏掉什麼的話隨時可以用 Arch Linux 的安裝 USB 開機補做。如果有發生什麼錯誤的話,因為在全部完成之前無法回到桌面環境,沒有其他台電腦的話,只能依靠手機查資料,在安裝環境的終端機下作業。雖然這整個過程很困難但是總算完成了轉移。