ubuntu系統的恢復與遷移


系統遷移 vs 系統恢復

  • 系統恢復:它是在本電腦上恢復OS文件,硬盤分區和引導位置都未發生改變
  • 系統遷移:在不同電腦之間進行操作,硬件環境發生變化,因此僅做簡單的操作系統文件的替換是不行的,需要進行環境配置
  • 無論是進行系統恢復還是進行系統遷移,都需要首先進行系統備份

系統備份:

  • 首先需要稱為root用戶並進入移動硬盤所在的文件夾:
su 
cd /xxxx/xxxx
  • 對根目錄/進行打包:
tar cvpzf backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys --exclude=/media /

1. 其中--exclude=后面的文件或文件夾表示不進行打包的文件或文件夾,之所以不打包是因為不需要進行打包,tar具體參數詳細說明請查看參考文獻

2. 執行tar語句時,需要進入移動硬盤掛載的文件夾中,否則需要將backup.tar.gz相應的路徑地址,保證壓縮文件存放的位置是正確的

3. 出現如下提示是正常現象,不用去管它:

系統恢復:

  • 首先需要稱為root用戶並進入移動硬盤所在的文件夾:
su 
cd /xxxx/xxxx
  •  將backup.tar.gz文件解壓到根目錄中完成系統恢復
tar xvpfz backup.tar.gz -C /
  • 若恢復后的系統不存在打包是--exclude=后面的文件夾,則需要創建這些文件夾
mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys
mkdir media
  • 重啟電腦即可

系統遷移

  • 首先制作ubuntu啟動盤,具體方法請百度,利用U盤啟動,並進行ubuntu系統安裝,具體過程這里不再贅述
  • 安裝ubuntu系統后,依然從u盤啟動,並在引導菜單選擇Try Ubuntu進入livecd模式
  • 在根目錄/下創建文件夾,並將原有系統所在的磁盤分區掛載到該文件夾上
mkdir restore
mount /dev/sda6 /restore  # 假定原有系統在磁盤分區/dev/sda6上
  • 將原系統(新安裝的系統或原有系統)中的啟動文件和分區文件備份
# 保留分區文件
cp /restore/etc/fstab(若有fstab.d,就一並復制) 移動硬盤掛載的文件地址(如/media/....)
# 保留啟動文件
cp /restore/boot/grub/grub.cfg 移動硬盤掛載的文件地址(如/media/....)
  • 將系統備份時打包的backup.tar.gz壓縮文件解壓,覆蓋原有的系統:
rm -rf /restore/*  # 掛載的原有文件全部刪除,好像不刪除也可以,沒試過
tar xvpfz backup.tgz所在的地址 -C /resotre
  • 將備份的fstab文件和grub.cfg文件替換已有的文件
# 保留分區文件
cp  移動硬盤中fastb的地址 /restore/etc/
# 保留啟動文件
cp 移動硬盤中grub.cfg的地址  /restore/boot/grub/
  •  此時,並未結束,需要進行引導修復(方法1):
sudo add-apt-repository ppa:yannubuntu/boot-repair        添加源
sudo apt-get update
sudo apt-get install -y boot-repair  安裝boot-repair

# 進入boot-repair使用Recommended repair進行修復
sudo boot-repair   # 在打開的圖形化界面中選擇Recommended repair進行修復
  1. 若已經關機或重啟就再次從u盤啟動,選擇Try Ubuntu,再執行上面的命令
  2. 若出現無法locate boot-repair時,使用ubuntu18.04制作啟動盤,再次通過u盤啟動,選擇Try Ubuntu,然后再執行上述的指令
  • 引導修復(方法2):
  1. 假定在備份的fstab中掛載在/上的磁盤分區所對應的UUID的值為ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
  2. 假定解壓backup.tar.gz后,/restore/etc/fstab文件中掛載在/上的磁盤分區所對應的UUID的值為610895f6-f8df-48ce-a569-c0d7e137ec1f
  3. 將/restore/etc/fstab文件和/restore/boot/grub/grub.cfg文件中所有的610895f6-f8df-48ce-a569-c0d7e137ec1f替換為 ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85即可
  • 引導修復(方法3):
  1. 將之前備份到移動硬盤中的fstab替換系統中的對應文件,暫時不替換grub.cfg文件
  2. 在/restore/boot/grub/grub.cfg文件中找到下列語句,可能並不完全相同,如可能不是‘Ubuntu’等, 用其中的vmlinuz-5.4.0-87-generic和initrd.img-5.4.0-87-generic(你們的可能不是這個,以你們文件中linux 和 initrd語句對應的值為准),來替換備份到移動硬盤的grub.cfg文件中對應的值
  3. 將移動硬盤中修改后的grub.cfg文件,替換掉/restore/boot/grub/grub.cfg文件
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85' {
	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
	else
	  search --no-floppy --fs-uuid --set=root ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
	fi
        linux	/boot/vmlinuz-5.4.0-87-generic root=UUID=ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85 ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-5.4.0-87-generic
}
  • 完成引導修復后,關機,拔掉u盤 ,重啟 計算機

參考文獻:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM