Ubuntu系統(tǒng)的備份和恢復(fù)實(shí)現(xiàn)方式
Linux系統(tǒng)備份工具TimeShift
Timeshift 可以說是 Linux 系統(tǒng)最佳備份與恢復(fù)工具,開發(fā)者是 Tony George ,后由于 Tony George 不再繼續(xù)項(xiàng)目的開發(fā)工作,Linux Mint 團(tuán)隊(duì)就聯(lián)系了該開發(fā)者,經(jīng)過商談最終 Linux Mint 團(tuán)隊(duì)決定接管 Timeshift 的開發(fā)工作。
該工具與 Linux Mint 長(zhǎng)期捆綁在一起,已成為 Linux Mint 的一個(gè)核心部分。用戶可以利用該工具在更新前輕松地進(jìn)行備份以確保升級(jí)過程萬無一失。
官方github:https://github.com/linuxmint/timeshift
1. 安裝
# Ubuntu sudo apt update sudo apt install timeshift # centos sudo yum install timeshift
Ubuntu也可以在軟件中心直接搜索下載。
2. 啟動(dòng)
sudo timeshift-launcher
Ubuntu也可以直接點(diǎn)擊TimeShift圖標(biāo)啟動(dòng)。

3. 使用
法一、圖形界面操作(方便)
點(diǎn)擊TimeShift圖標(biāo)啟動(dòng)TimeShift。
快照類型一般選擇“RSYNC”
RSYNC 是一種常見的文件同步協(xié)議,在 Timeshift 中用于增量式系統(tǒng)備份。備份時(shí)僅復(fù)制有改動(dòng)的部分,因此通常比完整備份要小,創(chuàng)建速度更快。
Btrfs 是一種支持快照等高級(jí)特性的文件系統(tǒng)。Timeshift 利用 Btrfs 的快照功能,可以創(chuàng)建系統(tǒng)的只讀快照。這種類型的快照創(chuàng)建速度比 RSYNC 更快,占用的存儲(chǔ)空間更小。但前提是,你的系統(tǒng)必須使用 Btrfs 文件系統(tǒng)。
備份位置最好選擇在非系統(tǒng)硬盤或移動(dòng)U盤,但要保證磁盤類型是ext4等linux類型。否則暫時(shí)選系統(tǒng)盤也行。選好盤后備份數(shù)據(jù)默認(rèn)會(huì)保存在該硬盤下根目錄下的 /timeshift 目錄下。
備份時(shí)間有每月備份一次,每周備份一次、每日備份一次、每小時(shí)備份一次、每次開機(jī)備份一次,數(shù)字表示最多存幾個(gè)快照,多了的話會(huì)刪除最舊的那次快照。
“用戶主目錄”那欄,最好選全備份,即:“Include All Files”。
- 如下圖:

“篩選”那欄,可以通過添加目錄把 /snap/*** 目錄加上,否則會(huì)過濾掉了。如下圖:

其他會(huì)自動(dòng)過濾掉即不備份的目錄(有個(gè)人備份需求可參考上面那步添加),如下圖:

法二、終端命令操作(高端)
# 備份 sudo timeshift --create --comments "快照名" --backup-device /dev/磁盤名 #### 注釋:磁盤名可以通過 `fdisk -l` 或 `df -TH` 來查看 #### ## @備份位置最好選擇在非系統(tǒng)硬盤或移動(dòng)U盤,但要保證磁盤類型是ext4等linux類型。 ## ## @否則暫時(shí)選系統(tǒng)盤也行。選好盤后備份數(shù)據(jù)默認(rèn)會(huì)保存在該硬盤下根目錄下的 `/timeshift` 目錄下。## # 查看。查看已存在的快照 sudo timeshift --list # 恢復(fù)。選擇上面已存在的其中一個(gè)快照進(jìn)行恢復(fù),如:快照'2024-07-01_18-00-00'。 sudo timeshift --restore --snapshot '2024-07-01_18-00-00' --skip-grub
注:
開機(jī)按 `ctrl + alt + F1(一般F1-F6都可以)進(jìn)入tty終端,可以輸入命令進(jìn)行恢復(fù)。
如果命令終端都進(jìn)不去,只能再做一個(gè)相同的系統(tǒng)的啟動(dòng)U盤(類似于重裝系統(tǒng)),但不進(jìn)入重裝系統(tǒng)選項(xiàng),而進(jìn)入試用系統(tǒng)(如:Try Ubuntu),然后在線安裝timeshift,再進(jìn)行恢復(fù)(此時(shí)可以用命令也可以用圖形界面操作了)。
使用tar進(jìn)行備份與恢復(fù)
從開始的CentOS到現(xiàn)在的Ubuntu(也稱烏班圖:“來自南部非洲班圖語“),傳遞著”我的存在是因?yàn)榇蠹业拇嬖?rdquo;的價(jià)值觀。Linux的哲學(xué)思想深深吸引著我————“一切皆文件”。
身邊好多朋友也在用Ubuntu,都說好用,很炫酷,但也易崩潰。這個(gè)問題也讓我頭疼。我重裝系統(tǒng)不下三次了,每次最擔(dān)心的就是數(shù)據(jù)丟失。用的最久的一次是1年多,還挺自豪,算給面子了~.~
遇到問題,就要著手解決問題。畢竟重裝系統(tǒng)真的心塞。下面我要先說說我的想法,當(dāng)然你也可以跳過這一部分,直接看下面的操作方法。
面臨這個(gè)問題,我的第一個(gè)想法就是,系統(tǒng)備份。類似與VMware下的快照一樣,可以給Ubuntu系統(tǒng)做個(gè)備份,儲(chǔ)存下來以備不時(shí)之需。有人會(huì)問,系統(tǒng)都崩潰了,備份文件怎么用?對(duì)于這個(gè)問題,關(guān)于存儲(chǔ)方面我想到的是云存儲(chǔ)技術(shù),畢竟現(xiàn)在云服務(wù)無處不在。實(shí)在不行將備份文件拷貝到U盤。關(guān)于如何運(yùn)用備份文件恢復(fù)系統(tǒng)的方面我沒有什么建議,對(duì)這方面不太懂。難道是類似于數(shù)據(jù)庫的“事物回滾”!
下面就分享下我搜集到的方法吧,基本可以滿足要求。
系統(tǒng)備份
linux秉承一切皆文件的思想,系統(tǒng)備份就相當(dāng)于把整個(gè)/(根目錄)所有文件打包壓縮保存。
步驟 1:用sudo提升權(quán)限(關(guān)鍵)
備份系統(tǒng)目錄(如/根目錄)需要管理員權(quán)限,必須在命令前加sudo,否則會(huì)因權(quán)限不足失敗。
步驟 2:確認(rèn)/backup/tar目錄存在(避免 “目錄不存在” 錯(cuò)誤)
如果/backup/tar目錄尚未創(chuàng)建,sudo也無法在不存在的目錄下創(chuàng)建文件,需先創(chuàng)建目錄:
# 創(chuàng)建目錄并賦予 root 權(quán)限(確保 sudo 能寫入) sudo mkdir -p /backup/tar # 查看目錄權(quán)限(確認(rèn) owner 是 root,且有寫入權(quán)限) ls -ld /backup/tar # 輸出應(yīng)類似:drwxr-xr-x 2 root root 4096 9月 9 10:00 /backup/tar
步驟 3:補(bǔ)充排除 “高風(fēng)險(xiǎn) / 無用目錄”
備份根目錄時(shí),除了你已排除的目錄,建議額外排除以下目錄(避免備份無效數(shù)據(jù)或?qū)е聜浞菔。?/p>
--exclude=/backup:避免 “備份文件包含自身”(遞歸備份,導(dǎo)致文件體積無限增大)。--exclude=/sys:系統(tǒng)硬件信息目錄,動(dòng)態(tài)生成,無需備份。--exclude=/var/run:臨時(shí)運(yùn)行進(jìn)程目錄,重啟后會(huì)重置,無需備份。
補(bǔ)充后的命令:
sudo tar -cvpzf /backup/tar/UbuntuBackup_`date +%Y%m%d`.tar.gz \ --exclude=/proc \ --exclude=/tmp \ --exclude=/lost+found \ --exclude=/media \ --exclude=/mnt \ --exclude=/run \ --exclude=/backup \ --exclude=/sys \ --exclude=/var/run \ /
步驟 4:驗(yàn)證備份是否成功
命令執(zhí)行完成后(可能需要 10-60 分鐘,取決于系統(tǒng)數(shù)據(jù)量),通過以下命令確認(rèn)備份文件存在且有效:
# 查看備份文件是否存在 ls -lh /backup/tar/UbuntuBackup_`date +%Y%m%d`.tar.gz # 輸出應(yīng)類似:-rw-r--r-- 1 root root 50G 9月 9 10:30 /backup/tar/UbuntuBackup_20250909.tar.gz # (可選)檢查備份文件完整性(避免壓縮損壞) tar -tzf /backup/tar/UbuntuBackup_`date +%Y%m%d`.tar.gz | head -10 # 若輸出前10個(gè)目錄/文件列表(如 /bin/bash、/etc/passwd),說明文件正常。
下面解釋一下上面這條命令。tar就是一個(gè)打包命令。
/backup/tar/UbuntuBackup_`date +%Y%m%d`.tar.gz
這個(gè)是備份文檔的存放路徑,備份文件在/backup/tar目錄下,UbuntuBackup_date +%Y%m%d.tar.gz是我備份文件的名字,這里用了一個(gè)shell命令date +%Y%m%d用于獲取當(dāng)前時(shí)間,因?yàn)閭浞萋?,注明時(shí)間戳還是有必要的,然后.tar.gz是說明這個(gè)文件是用tar進(jìn)行打包,gzip進(jìn)行壓縮的。所以要根據(jù)你自己情況換為你自己的備份文件目錄和文件名。
參數(shù):
- -c: 新建一個(gè)備份文檔
- -v: 顯示詳細(xì)信息
- -p: 保存權(quán)限,并應(yīng)用到所有文件
- -z: 用gzip壓縮備份文檔,減小空間
- -f: 指定備份文件的路徑
- –exclude: 排除指定目錄,不進(jìn)行備份
Note: 注意–exclude參數(shù),接下來談?wù)勀切┠夸洓]有備份,以及為什么不備份。
我的ubuntu系統(tǒng),共有四個(gè)分區(qū),分別是:/、/home、/boot、swap。
- 非常建議系統(tǒng)備份的時(shí)候按照分區(qū)進(jìn)行分別備份,并且也不建議安裝系統(tǒng)的時(shí)候只給系統(tǒng)分一個(gè)分區(qū)。有四個(gè)分區(qū)的好處是,一般系統(tǒng)壞了都是/分區(qū)的問題,/home沒什么關(guān)系,所以這種情況,我可以只還原/分區(qū),其他分區(qū)完全可以不用動(dòng),系統(tǒng)就可以恢復(fù),會(huì)節(jié)省很多時(shí)間。
- 另外,為了保險(xiǎn)起見,也可以對(duì)/home和/boot備份,但是備份頻率完全沒必要和/分區(qū)一樣高。比如/分區(qū)每周備份一次,那/home和/boot完全可以一個(gè)月備份一次,因?yàn)檫@兩個(gè)分區(qū)出問題的概率真的很小,而且變動(dòng)也不會(huì)太頻繁。
請(qǐng)注意,如果沒有把/home或者/boot目錄單獨(dú)分一個(gè)區(qū),一定不要加–exclude=/home或–exclude=/boot參數(shù)?。?!
- /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)建,也就沒必要備份的必要了。
- /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)以來產(chǎn)生的一些信息文件。
- /backup:備份文件存放文件夾,需要排除,避免重復(fù)備份。
- /home:用戶家目錄,存放用戶個(gè)人文件和應(yīng)用程序。
- /boot:和系統(tǒng)啟動(dòng)相關(guān)的文件,像grub相關(guān)文件都放在這里,這個(gè)目錄很重要!
我再次強(qiáng)調(diào)一次,/home和/boot目錄我實(shí)際也是做了備份的,備份命令和上面差不多,當(dāng)然你也可以排除一些目錄不進(jìn)行備份,像我/home下面的虛擬機(jī)文件,太占空間了。
sduo tar -cvpzf /backup/tar/UbuntuBackup_home_`date +%Y%m%d`.tar.gz /home
sudo tar -cvpzf /backup/tar/UbuntuBackup_boot_`date +%Y%m%d`.tar.gz /boot
最后還要提一下就是,有可能備份到最后系統(tǒng)會(huì)提示"tar: 由于前次錯(cuò)誤,將以上次的錯(cuò)誤狀態(tài)退出",這個(gè)警告可以忽略,沒什么影響的。
系統(tǒng)還原
系統(tǒng)備份的意義就在于系統(tǒng)哪天發(fā)生意外時(shí)可以系統(tǒng)還原拯救回來
這里有兩種還原方式,如果你系統(tǒng)出問題了,但是還可以進(jìn)入終端,那就可以直接解壓備份文件進(jìn)行還原。但是如果你連系統(tǒng)都不能登錄了,就要使用LiveCD(U盤啟動(dòng)盤)進(jìn)行還原了。
- 直接操作
操作前切換到root,并且換到/根目錄。
tar -xvpzf /backup/tar/UbuntuBackup_20250907.tar.gz -C /
- LiveCD
操作之前請(qǐng)確保你已經(jīng)有一個(gè)制作好的ubuntu U盤啟動(dòng)盤。進(jìn)入系統(tǒng)后,打開終端還是先切換到root。
mkdir /mnt/sys mount /dev/sdaX /mnt/sys tar -xvpzf /media/myDisk/UbuntuBackup_boot_20250907.tar.gz -C /mnt/sys
注意先創(chuàng)建一個(gè)臨時(shí)目錄用于掛載你的/根目錄分區(qū),sdaX代表你的/根目錄分區(qū),如果不知道就用fdisk -l查看一下,另外如果你的移動(dòng)硬盤沒有被自動(dòng)掛載,你也需要手動(dòng)創(chuàng)建一個(gè)臨時(shí)目錄進(jìn)行掛載。
Note:因?yàn)?tar還原是只會(huì)覆蓋相同的文件,但是這種方法只是恢復(fù)備份時(shí)的文件,就是說如果某些文件丟失或損壞了,這樣可以恢復(fù)修復(fù)這些文件,但不能刪除自備份到恢復(fù)前這期間所生成的其它文件,說白了就是假如你備份系統(tǒng)時(shí)有1234這四個(gè)文件,如果三天后,由于某些原因變成了1234’5(4改變了),你恢復(fù)后,就會(huì)變成12345,其中4’恢復(fù)成備份時(shí)的文件,5保留。所以大家要是想徹底還原成備份時(shí)候的樣子最好徹底刪除根目錄下的所有文件,然后再還原,這樣就可以還原成備份時(shí)的樣子了。
刪除整個(gè)文件系統(tǒng),比如運(yùn)行命令rm -fr /*,那么你還原系統(tǒng)后一定要把你之前沒有備份的目錄手動(dòng)創(chuàng)建,不然重啟系統(tǒng)是有問題的。
mkdir proc tmp lost+found media mnt run
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux手動(dòng)部署Oracle JDK 17的完全指南
本文手把手教你在 Linux 系統(tǒng)上通過官方 tar.gz 壓縮包手動(dòng)安裝 Oracle JDK 17,涵蓋舊版清理、下載解壓、環(huán)境變量配置、多版本管理及常見問題排查,適用于 Ubuntu / CentOS / Debian 等主流發(fā)行版,需要的朋友可以參考下2026-05-05
類Linux環(huán)境安裝jdk1.8及環(huán)境變量配置詳解
如何在linux系統(tǒng)中安裝jdk1.8?很多小伙伴都不知道在linux系統(tǒng)中怎么安裝jdk,下面,小編就為大家介紹下在linux系統(tǒng)中安裝jdk1.8方法。2019-09-09
解析Linux高性能網(wǎng)絡(luò)IO和Reactor模型
網(wǎng)絡(luò)I/O,可以理解為網(wǎng)絡(luò)上的數(shù)據(jù)流。通常我們會(huì)基于socket與遠(yuǎn)端建立一條TCP或者UDP通道,然后進(jìn)行讀寫。單個(gè)socket時(shí),使用一個(gè)線程即可高效處理;然而如果是10K個(gè)socket連接,或者更多,我們?nèi)绾巫龅礁咝阅芴幚?/div> 2021-06-06
Linux設(shè)置賬號(hào)密碼永不過期的方法匯總
在Linux系統(tǒng)中,設(shè)置用戶賬號(hào)密碼永不過期可以通過chage、編輯/etc/shadow文件、usermod命令、修改/etc/login.defs文件或使用圖形化工具來實(shí)現(xiàn),每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),建議根據(jù)實(shí)際需求選擇合適的方法,需要的朋友可以參考下2025-12-12
Centos8(最小化安裝)全新安裝Python3.8+pip的方法教程
這篇文章主要介紹了Centos8(最小化安裝)全新安裝Python3.8+pip的方法教程,本文給大家整理了一份命令,需要的朋友可以參考下2020-02-02
詳解linux usb host驅(qū)動(dòng)編寫入門
本篇文章主要介紹了詳解linux usb host驅(qū)動(dòng)編寫入門,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
Linux修改主機(jī)名(hostname)的兩種方法(親測(cè)可用)
要想在虛擬機(jī)的 Linux 系統(tǒng)內(nèi)部改變主機(jī)名(hostname),需要通過系統(tǒng)的配置來修改,在大多數(shù)基于 Red Hat 的 Linux 發(fā)行版(比如 CentOS、Fedora)中,本文小編給大家介紹了;兩種修改主機(jī)名的方法,感興趣的小伙伴跟著小編一起來看看吧2023-11-11最新評(píng)論

