ubuntu系統(tǒng)遷移與備份

Ubuntu系統(tǒng)遷移

環(huán)境

Machine OS
Origin Machine1 ubuntu1
Target Machine2 ubuntu2

遷移方向:Origin --> Target

引導(dǎo)方式:UEFI + GPT

前話

  1. 因?yàn)閡buntu一切皆文件, 故遷移系統(tǒng)就是將ubuntu2的系統(tǒng)文件(/目錄下所有文件)完全替換成ubuntu1。
  2. 系統(tǒng)遷移和備份是同一個(gè)原理——都是拷貝復(fù)制OS文件, 但兩者的環(huán)境略有不同。
    • 系統(tǒng)備份:它是在本電腦上恢復(fù)OS文件,硬盤分區(qū)和引導(dǎo)位置都未改變;
    • 系統(tǒng)遷移:既然是遷移,那么就是不同電腦之間的操作,硬件環(huán)境一定發(fā)生了變化,只講OS文件替換進(jìn)去是不行的,還要配置環(huán)境。

UEFI + GPT 系統(tǒng)引導(dǎo)程序那些事兒

  1. ubuntu系統(tǒng)就是/目錄下的所有文件,它存放于硬盤GPT分區(qū)的某個(gè)位置上。電腦開(kāi)機(jī)的時(shí)候,不會(huì)智能到自動(dòng)找到該OS文件并執(zhí)行的地步,需要引導(dǎo)程序告訴計(jì)算機(jī)在什么位置尋找OS,故引導(dǎo)程序?qū)嶋H就是一道橋梁的作用。

  2. 對(duì)于一個(gè)在UEFI模式下安裝的ubuntu系統(tǒng),在安裝時(shí),某硬盤(本文是sda)一定有如下兩個(gè)分區(qū):

    • /dev/sda1--->OS System:此分區(qū)存放Ubuntu的系統(tǒng)文件,其中包含:

      • /etc/fstab, /etc/fstab.d(可能沒(méi)有):?jiǎn)?dòng)文件
      • /boot/grub/grub.cfg:分區(qū)文件

      注:在fstab啟動(dòng)文件中,可以看到里面根據(jù)分區(qū)的UUID綁定了/dev/sda1給/,將/dev/sda2綁定到/boot/efi中,這里也是啟動(dòng)的關(guān)鍵。如果UUID不正確,就無(wú)法找到引導(dǎo)程序和OS文件,系統(tǒng)恢復(fù)后無(wú)法正常開(kāi)機(jī)。

    • /dev/sda2 ---> EFI System:此分區(qū)是在EFI下安裝Ubuntu必要的,里面應(yīng)該存放了引導(dǎo)程序。

  3. 系統(tǒng)備份與遷移

    • 系統(tǒng)備份:因?yàn)閭浞莼謴?fù)前后,電腦的分區(qū)不會(huì)改變,而且備份恢復(fù)改變的只是OS所在分區(qū),不會(huì)影響到/dev/sda2的EFI System。所以就算換了OS文件,系統(tǒng)還是能正常引導(dǎo)修復(fù)。因此,系統(tǒng)備份沒(méi)有系統(tǒng)遷移復(fù)雜,只需要復(fù)制拷貝OS文件即可。

    • 系統(tǒng)遷移:因?yàn)槭菍⑾到y(tǒng)從一臺(tái)電腦移動(dòng)到另外一臺(tái)電腦,硬盤分區(qū)會(huì)變,EFI文件也會(huì)改變。所以對(duì)于系統(tǒng)遷移,建議:

      在machine2上先重裝系統(tǒng),新系統(tǒng)中EFI System、fstab啟動(dòng)文件以及grub.cfg分區(qū)文件都是匹配的。即,新系統(tǒng)下一切正常,只需要?jiǎng)h除ubuntu2然后移入ubuntu1即可,其他不變。

系統(tǒng)遷移正文

事先準(zhǔn)備一個(gè)ubuntu啟動(dòng)盤

系統(tǒng)備份In Machine1

  1. Machine1 ---> U盤啟動(dòng) ---> Try Ubuntu進(jìn)入livecd模式: 開(kāi)終端,進(jìn)入管理員權(quán)限。

  2. 掛載ubuntu1所在分區(qū)和移動(dòng)硬盤

    • mkdir data:在/目錄下,創(chuàng)建data。
    • mount /dev/sda1 /mnt:假設(shè)ubuntu1在Machine1的sda1上,將其掛載到mnt上
    • mount /dev/sdb1 /data:假設(shè)移動(dòng)硬盤在Machine1的sdb1上,將其掛載到data上
  3. 備份ubuntu1至移動(dòng)硬盤

    • 方法一:tar備份
    tar -cvpzf /data/ubuntu.backup --exclude=/mnt/proc --exclude=/mnt/lost+found --exclude=/mnt/tmp --exclude=/mnt/run --exclude=/mnt/media --exclude=/mnt/mnt
    

    參數(shù):
    -c: 新建一個(gè)備份文檔
    -v: 顯示詳細(xì)信息
    -p: 保存權(quán)限,并應(yīng)用到所有文件
    -z: 用gzip壓縮備份文檔,減小空間
    -f: 指定備份文件的路徑
    –exclude: 排除指定目錄,不進(jìn)行備

    排除如下文件:
    /proc:一個(gè)虛擬文件系統(tǒng),系統(tǒng)運(yùn)行的每一個(gè)進(jìn)程都會(huì)自動(dòng)在這個(gè)目錄下面創(chuàng)建一個(gè)進(jìn)程目錄。既然是系統(tǒng)自動(dòng)創(chuàng)建,也就沒(méi)必要備份的必要了。
    /tmp:一個(gè)臨時(shí)文件夾,系統(tǒng)的一些臨時(shí)文件會(huì)放在這里。
    /lost+found:系統(tǒng)發(fā)生錯(cuò)誤時(shí)(比如非法關(guān)機(jī)),可以在這里找回一些丟失文件。
    /media:多媒體掛載點(diǎn),像u盤、移動(dòng)硬盤、windons分區(qū)等都會(huì)自動(dòng)掛載到這個(gè)目錄下。
    /mnt:臨時(shí)掛載點(diǎn),你可以自己掛載一些文件系統(tǒng)到這里。
    /run:系統(tǒng)從啟動(dòng)以來(lái)產(chǎn)生的一些信息文件。

    • 方法二,mksquashfs(如果用tar備份和恢復(fù)時(shí)出錯(cuò),就用該方式)

      mksquashfs /mnt/data/ubuntu.sfs:備份系統(tǒng)

      sync:讓系統(tǒng)保存下數(shù)據(jù)

  4. 解除綁定:

    umont /data

    umount /mnt

系統(tǒng)恢復(fù) In Machine2

  1. 使用啟動(dòng)u盤在Machine2上以EFI模式安裝ubuntu2系統(tǒng),本文分區(qū)如下:
  • sda1 --> ubuntu
  • sda2 --> EFI System
  1. 安裝新系統(tǒng)之后,依然從U盤啟動(dòng),Try Ubuntu進(jìn)入livecd模式: 開(kāi)終端,進(jìn)入管理員權(quán)限。

  2. 掛載:

    • mkdir data:在/目錄下,創(chuàng)建data用以掛載移動(dòng)硬盤
    • mount /dev/sda1 /mnt:將ubuntu2掛載到mnt
    • mount /dev/sdc1 /data:將移動(dòng)硬盤掛載到/data
  3. 保留原ubuntu2的啟動(dòng)文件和分區(qū)文件:(如果是本地系統(tǒng)備份的話,可略此步)

    因?yàn)檫@兩個(gè)文件記錄了machine2上ubuntu2上的啟動(dòng)信息和分區(qū)信息,而系統(tǒng)備份中的文件是machine1的,放在新環(huán)境下,配置一定出錯(cuò),所以要用本土的配置文件,只需換個(gè)系統(tǒng)文件即可。

    • cp /mnt/etc/fstab(若有fstab.d,就一并復(fù)制) /data:保留原啟動(dòng)文件
    • cp /mnt/boot/grub/grub.cfg /data:保留原分區(qū)文件
  4. 系統(tǒng)恢復(fù)

    • 方法一: tar

      rm -rf /mnt/*:將掛載到/mnt上的原系統(tǒng)徹底刪除(可能此命令有誤,可用其他命令)

      tar -xvpzf /data/ubuntu.backup /mnt:將備份系統(tǒng)恢復(fù)到掛載到/mnt上的ubuntu

      cp /data/fstab(fstab.d) /mnt/etc:恢復(fù)啟動(dòng)文件(本地備份恢復(fù)不需要此步

      cp /data/grub.cfg /mnt/boot/grub:恢復(fù)分區(qū)文件(本地備份恢復(fù)不需要此步

    • 方法二:mksquashfs

      mkdir /rescovery/mnt

      mount -o loop /data/ubuntu.sfs /rescovery/mnt:將備份文件恢復(fù)至/rescovery/mnt中

      cp -a /rescovery/mnt/* /mnt:將備份文件完整地拷貝至ubuntu2掛載的/mnt中

      cp /data/fstab(fstab.d) /mnt/etc:恢復(fù)啟動(dòng)文件(本地備份恢復(fù)不需要此步

      cp /data/grub.cfg /mnt/boot/grub:恢復(fù)分區(qū)文件(本地備份恢復(fù)不需要此步

    注:如果只是本地備份恢復(fù)到此即可結(jié)束(僅僅拷貝粘貼系統(tǒng)文件即可),如果是遷移系統(tǒng),還需要有如下步驟!第6步,在系統(tǒng)遷移時(shí)試過(guò)了,但在系統(tǒng)啟動(dòng)時(shí)還是會(huì)出錯(cuò);第7步,應(yīng)該可行,但sudo add-apt-repository ppa:yannubuntu/boot-repair添加失敗,來(lái)者需要特別注意。

  5. 引導(dǎo)修復(fù)1

    • 從try ubuntu中為ubuntu2掛載虛擬文件系統(tǒng),為引導(dǎo)修復(fù)做準(zhǔn)備:

      mount -o bind /dev /mnt/dev

      mount -o bind /proc /mnt/proc

      mount -o bind /sys /mnt/sys

    • chroot /mnt:進(jìn)入ubuntu2

    • 對(duì)比UUID

      • 在try ubuntu中新建一個(gè)終端,輸入blkid查看硬盤分區(qū)UUID

      • 在上面chroot /mnt過(guò)的終端中,使用vim /etc/fstab查看啟動(dòng)文件中的信息。對(duì)照/sda1(mount point為/)和/sda2(mount point為/boot/efi)綁定的兩個(gè)UUID是否和/dev/sda1和/dev/sda2相吻合。(因?yàn)槭强截惖脑璾buntu2系統(tǒng)中的文件,應(yīng)該不會(huì)有錯(cuò)誤,有錯(cuò)誤的話,就需要修改。)

      • grub-install /dev/sda
        update-grub
        
      • 退出并卸載掛載

        exit
        umount /mnt/dev
        umount /mnt/sys
        umount /mnt/proc
        umount /data
        umount /mnt
        sync
        
      • 重啟

  6. 引導(dǎo)修復(fù)2

    • 從u盤啟動(dòng),進(jìn)入try ubuntu,安裝boot-repair

      sudo add-apt-repository ppa:yannubuntu/boot-repair        添加源
      sudo apt-get update
      sudo apt-get install -y boot-repair  安裝boot-repair
      
    • 進(jìn)入boot-repair使用Recommended repair進(jìn)行修復(fù)。

參考文獻(xiàn)

  1. https://blog.csdn.net/sunny0660/article/details/79274642
  2. https://blog.csdn.net/mbytes/article/details/100165856
  3. https://blog.csdn.net/qq_35523593/article/details/78545530
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容