Arch LInux 系統遷移
阿新 • • 發佈:2019-01-23
概述
換電腦之後需要在新的硬碟上安裝系統,由於檔案過多解決各種依賴太麻煩,所以打算直接將舊的系統遷移到新的硬碟。
檔案系統
舊系統分割槽:
----sda
|----sda1 /boot
|----sda2 /
|----sda3 swap
新系統分割槽:
----sda
|----
......
|----sda4 /home
----sdb
|----sdb1 /boot
|----sdb2 swap
|----sdb3 /
怎麼分割槽沒有關係,複製系統的時候只要對應複製好就行。
系統複製
這是關鍵一步,我是用的是cp -rap
命令。 -r
遞迴複製,-a
保留連結資訊,-p
保留許可權資訊,然後除了根目錄下的 /proc /sys /dev /tmp
全部複製。注意如果要某一目錄掛載在其他盤(如我的/home
目錄),需要現在根目錄下新建這個空目錄,掛載相應盤到該目錄之後再複製。
修改引導資訊
我的是EFI引導,如果你的電腦使用MBR,貌似重新安裝Grub即可。如果是EFI其實更簡單,編輯/boot/loader/entries/<entry.conf>
。
首先使用sodu blkid
檢視硬碟uuid、partuuid編號,找到你的根分割槽的編號,比如我的是/dev/sdb3
/dev/sdb3: UUID="a077881d-00b8-4028-9e00-98425937e18e" TYPE="ext4" PARTUUID="117b7cc3-c071-4ef7-a02c-a9ff6e194038"
,使用PARTUUID後的字串替換.conf中的字串。
/boot/loader/entries/arch.conf
-----------------------------------------------------
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=117b7cc3-c071-4ef7-a02c-a9ff6e194038 rw
然後修改fstab資訊。與上面方法一樣,分別找到每個分割槽的uuid,然後用它來覆蓋fstab。
重新生成核心映象
這時新系統還是無法引導啟動的。在宿主系統中(被遷移的系統或是安裝u盤的live cd均可),按照新系統的掛載規則掛載上所有分割槽(swap除外),並且:
# mkdir /proc /dev /sys /tmp
# chmod 777 -R /tmp
# mount -o bind /proc /mnt/proc
# mount -o bind /dev /mnt/dev
# mount -o bind /sys /mnt/sys
然後chroot /mnt
進入新系統,
# mkinitcpio -p linux
# exit
這樣就大功告成了。