Ubuntu 系統備份還原教程-電腦維護
2020-06-07 13:53 作者:admin 瀏覽量:
電腦維護常識及技巧學習
一、備份
很多人有備份系統的習慣,以防系統掛。Windows下可以用DISM創建一個系統鏡像,在Ubuntu下,我們可以使用squashfs-tools創建系統鏡像。
準備工作
電腦維護
可啟動LiveCD一份,這個類似于你備份Windows需要WinRE/PE一樣。
一個Linux可以訪問分區(相信大部分文件系統都可以),但不可以是系統所需要的分區,比如/ /home /var /usr /tmp,這就好比你不能將你的Windows系統鏡像放在C盤一樣。
重新啟動計算機,進入LiveCD,啟動菜單選擇試用Ubuntu(Try Ubuntu)。locale=zh_CN.UTF-8。
按Ctrl+Alt+T打開終端。
輸入sudo -s獲得root權限。
輸入fdisk -l查看當前分區狀況。
在這里,我的分區設定是:
電腦維護
/dev/sda1是EFI系統分區,因為我這是EFI+GPT引導。(有人會奇怪為什么沒有Microsoft Reserved微軟保留分區,這是因為我的磁盤不是在Windows下進行分區的,故沒有)。
/dev/sda2是根文件系統(/)
/dev/sda3是/home分區。
/dev/sda4是額外的數據盤,我們將會把系統鏡像文件保存在這個分區上。
掛載分區
終端輸入mount /dev/sda2 /mnt,掛載根分區。
電腦維護
如果您在分區的時候單獨分了/boot分區的話,請接著輸入mount /dev/xxx (你的boot分區標識)/boot。
在這里,我分了efi分區,即/boot/efi(大部分狀況下是這個),所以我要輸入mount /dev/sda1 /boot/efi(如果您既分了/boot又有/boot/efi,請一定先掛載boot后掛載efi,順序千萬不能反)。
然后掛載home分區mount /dev/sda3 /home(如果您沒有設定單獨的home分區不需要掛載,如果您不想保存home的內容也可以不掛載)。
如果您還設置了別的分區,比如/var /usr /tmp之類,請模仿上面的方法掛載。(/tmp可以選擇不掛載,但是/usr必須掛載,不掛載還原后系統出現問題本人不負責,/var最好也要掛載,不掛載還原后系統也有可能會出問題)。
終端窗口不要關,現在,我們打開文件管理器nautilus。
選擇「其他位置」,點擊數據盤進行掛載。
電腦維護
好了我們現在已經掛載了。
右擊分區名稱(「28GB卷」那個),選擇屬性。
記住它的路徑(這里是/media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02)。
正式備份系統
在極少數情況下,一些LiveCD會沒有squashfs-tools,這就需要您手動安裝。
終端輸入mksquashfs /mnt /media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02/backup.sfs (文件名任意)
備份好了之后,最好輸入一下sync,讓系統保存數據。
卸載分區(按照其他分區(home var usr之類)——efi分區——boot分區——根文件系統的順序來卸載,每個人的情況都不太一樣)
umount /mnt/home
umount /mnt/boot/efi
mount /mnt
最后卸載數據盤,就是保存鏡像文件的那個。
大功告成。
電腦維護
重啟之前還是建議再sync一下,養成好習慣(畢竟Linux有延遲寫入功能)。
二、還原
電腦維護
先說一下,你在Windows下還原系統,大部分情況下直接還原然后重啟就OK了,但是在Linux下,你還原之后還需要處理一下系統,不然會無法啟動。
獲得root權限(sudo -s),查看分區狀況。(如果您已熟知可以不用)
分區狀況sda1是efi,sda2是根,sda3是home,sda4是數據盤。
格式化
電腦維護
第二步和備份不一樣,現在不需要掛載。
因為我根分區和home都是ext4分區,所以我輸入
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3
先格式化,如果你想保留home的內容可以選擇不格式化。如果你有var usr之類請也格式化。
(如果你采用了其他格式格式化分區,請使用別的命令,比如xfs是mkfs.xfs)
數據盤別格式化,不然就23333了。
建立臨時目錄
mkdir /recovery(命名可以隨意,只要你后面能對的上)
掛載數據盤
同樣記住它的編號。
掛載鏡像文件
mount -o loop /media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02/backup.sfs /recovery
掛載鏡像并創建必要文件夾。
掛載根分區 mount /dev/sda2 /mnt
根據需要建立文件夾:
mkdir /mnt/boot
mkdir /mnt/boot/efi
mkdir /mnt/home
修改權限
確保所創建的文件夾權限是這樣。
復制文件
cp -a /recovery/* /mnt
復制好之后輸入umount /recovery,這是為了卸載squashfs鏡像。
有人會問為什么不用unsquashfs,這是因為unsquashfs解壓之后會把文件解壓到squashfs-root文件夾。
掛載虛擬文件系統,這是為了后面修復引導做準備。
mount --o bind /dev /mnt/dev
mount --o bind /proc /mnt/proc
mount --o bind /sys /mnt/sys
mount --o bind /run /mnt/run(這一步可以省略)
chroot進入已經還原的操作系統。
chroot /mnt
查看當前UUID
由于我們格式化了分區,所以UUID發生了變化,若不修改,系統將無法正常掛載分區,導致啟動異常。故我們需要修改本機系統的UUID設置。
當前終端不要關閉,新建一個終端,輸入blkid。
上面已經說過,sda1是efi,sda2是根分區,sd3是home。
記下他們的UUID。如果您分了別的分區比如boot var usr,也需要記下,等會要用。
修改本機UUID設置
返回原來的終端(已經chroot /mnt的那個),輸入nano /etc/fstab。
如果nano沒有安裝,那么請輸入vi /etc/fstab。
如果您用的是vi,那么需要按i進入編輯模式。
修改UUID(最新UUID在另一個窗口有)。我這里需要修改/和/home的,你的狀況可能會和我不一樣,如果您只分了根分區,那么只需要修改根分區的UUID就行。如果分了var usr之類,這些也要更改。
修改后按Ctrl+x退出。vi是先按esc,再輸入:wq(冒號不能少!),然后回車。
更新GRUB
因為UUID被改動,所以我們需要更新GRUB。
輸入grub-install /dev/sda(sda是你主硬盤的位置)
再輸入update-grub。
退出chroot并卸載文件系統。
輸入exit退出chroot。
然后輸入:
umount /mnt/dev
umount /mnt/sys
umount /proc
umount /run
輸入sync存盤。
還原結束。
重啟。