tar:
特點
1、保留權限
2、適合備份整個目錄
3、可以選擇不同的壓縮方式
4、如果選擇不壓縮還能實現增量備份,部份還原,參考man tar
dd
特點
1、對塊進行操作,能備份整個硬盤(包括分區表、MBR,其他Linux不能很好支持的文件系統)
2、可以進行壓縮(麻煩一點)
3、由於是備份整個硬盤,文件系統上沒有使用的“空白”空間也會被保存起來,備份文件比較大
備份
備份硬盤sda,放到/backup(/backup掛載在其他硬盤如sdb)
tar方法教程
Linux不像windows,它不限制根用戶存取任何東西,因此你完全可以把一個分區上每一個的文件放入一個TAR文件中。
使用root用戶切換到 / 目錄
然后使用下面的命令備份完整的系統:
tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys
或者
tar cvpzf /state/partition1/home/backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys
說明:
tar 部分就是我們將要使用的軟件。
'cvpfz'是我們給tar加的選項,像“創建一個壓縮文檔”(這是顯然的),“保存權限”(以便使每一個相同的文件有相同的權限),以及“gzip”(縮減大小)。接下來,是壓縮文檔將獲得的名稱,在我們的例子中是backup.tgz。
緊隨其后的是我們想要備份的根目錄。既然我們想備份所有東西:/。接着就是我們要剔除的目錄了:我們不想備份每一樣東西,因為包括有些目錄不是非常有用。同時確保你沒有把備份文件本身也加進去了,否則,你會得到怪異的結 果的。你也許同樣不打算把/mnt文件夾包括進來——如果你在那兒掛載了其他分區——否則最終你會把那些也備份的。同時確保你沒有任何東西掛載在 /media(即沒有掛載任何cd或可移動介質)。否則,剔除/media。
在進程的最后也許會得到一條信息,寫着“tar:由於先前錯誤的耽擱而存在錯誤”或者其他什么,不過大多數情況下你可以僅僅忽略它。
作為選擇,你可以使用bzip來壓縮你的備份。這意味着較高的壓縮比但是也意味着較低的速度。如果壓縮比對你很重要,只需用“j”替換命令中的“z”,同時給備份命一個相應的擴展名:
tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys
恢復:
如果系統被毀壞后就可以用備份好的tar包進行恢復。
再一次確保要在 / 下且備份的tar包也在該位置。
Linux美妙的地方之一就是這一項工作甚至可以在一個正在運行的系統上進行;沒必要被引導cd或者任何東西搞得暈頭轉向。當然,如果你使你的系統 無法被引導了。你也許別無選擇,只能使用一張live-cd了,但結果是一樣的。你甚至可以在Linux系統正在運行的時候,移除它里面所有文件。
這是我要用的命令:
tar xvpfz backup.tgz -C /
如果你使用 bz2:
tar xvpfj backup.tar.bz2 -C /
警告:這會把你分區里所有文件替換成壓縮文檔里的文件!
確保在你做其他任何事情之前,重新創建你剔除的目錄:
mkdir /proc
mkdir /lost+found
mkdir /mnt
mkdir /sys
/proc 權限:文件所有者和群組都為root,權限為555
/lost+found 權限:文件所有者和群組都為root,權限為700
/mnt 權限:文件所有者和群組都為root,權限為755
/sys 權限:文件所有者和群組都為root,權限為555
當你重啟以后,所以的事情都會和你備份的時候一模一樣。
如參照了上面的教程做的備份和恢復,出現重啟電腦后還是會一直提示用戶名和密碼 輸入以后一閃還是提示用戶名和密碼,反正就是登不進系統。
解決:還原后執行 restorecon -Rv / 命令再重啟即可解決這個問題
示例:
該備份使用的是oracle linux server 6.5版本(centos7.4.1708也同樣的方式備份)
使用root用戶切換到根目錄
然后使用下面的命令備份完整的系統:
cd /
tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys
備份過程略......
命令執行完后會看到一個提示說 "tar:由於先前錯誤的耽擱而存在錯誤" 者其他什么,不過大多數情況下你可以僅僅忽略它。
恢復
如果系統被毀壞就可以用備份好的tar包進行恢復。
在分區的根目錄下的backup.tgz文件
再一次確保將備份的tar包放到/下,並cd到/下進行執行恢復命令。
cd /
tar xvpfj backup.tar.bz2 -C /
也可以使用tar包進行備份(相比bz2方式會差點)
備份:tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys
恢復:tar xvpfz backup.tgz -C /