系統遷移 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進行修復
- 若已經關機或重啟就再次從u盤啟動,選擇Try Ubuntu,再執行上面的命令
- 若出現無法locate boot-repair時,使用ubuntu18.04制作啟動盤,再次通過u盤啟動,選擇Try Ubuntu,然后再執行上述的指令
- 引導修復(方法2):
- 假定在備份的fstab中掛載在/上的磁盤分區所對應的UUID的值為ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85
- 假定解壓backup.tar.gz后,/restore/etc/fstab文件中掛載在/上的磁盤分區所對應的UUID的值為610895f6-f8df-48ce-a569-c0d7e137ec1f
- 將/restore/etc/fstab文件和/restore/boot/grub/grub.cfg文件中所有的610895f6-f8df-48ce-a569-c0d7e137ec1f替換為 ff0ea35d-e7fc-4bd1-b296-10b6b1c37f85即可
- 引導修復(方法3):
- 將之前備份到移動硬盤中的fstab替換系統中的對應文件,暫時不替換grub.cfg文件
- 在/restore/boot/grub/grub.cfg文件中找到下列語句,可能並不完全相同,如可能不是‘Ubuntu’等, 用其中的vmlinuz-5.4.0-87-generic和initrd.img-5.4.0-87-generic(你們的可能不是這個,以你們文件中linux 和 initrd語句對應的值為准),來替換備份到移動硬盤的grub.cfg文件中對應的值
- 將移動硬盤中修改后的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盤 ,重啟 計算機