Arch LInux 系統遷移

概述

換電腦之後需要在新的硬盤上安裝系統,由於文件過多解決各種依賴太麻煩,所以打算直接將舊的系統遷移到新的硬盤。

文件系統

舊系統分區:

----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

這樣就大功告成了。

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