Backup

備份整個硬碟Linux

  • November 26, 2011

我正在尋找一種備份整個磁碟的方法,以防萬一出現問題…

我什至不知道在伺服器的一些特殊設備上安裝什麼,每次都不一樣。

cp -a目錄會/起作用嗎?

有沒有什麼程序可以複製硬碟的所有數據?(就像硬碟的圖像)。

我知道這至少存在於 Windows 中。

硬碟雖然是RAID 1….

如前所述,有很多選擇,哪一個是最好的取決於您的要求。

由於您的系統在 RAID1 上,您可以簡單地更換一個磁碟並讓您的鏡像自行重建。刪除的磁碟可以用作備份副本。

過去,對於完整的系統備份,我使用過Ghost4Linux(又名 G4L)Mondo/Mindi。前者可以在本地或遠端保存分區映像,而後者可以創建可引導恢復(+rescue)CD 或 DVD。兩者都有一個 ncurses gui,不需要命令行使用。

但很多時候,我只是複制整個系統。我主要使用 rsync 但這裡有一些我認為這是您正在尋找的選項。

假設您有兩個分區,/並且/var您想要一個完整的備份。所有命令都需要 root 權限。

mkdir /mnt/orig
mount / /mnt/orig -o bind
mount /var /mnt/orig/var -o bind

這將為 rootfs 創建一個新的掛載點,您現在可以複製該掛載點,而不必擔心其他掛載的文件系統,如/procor/sys或網路共享。

假設您有第二個磁碟,該磁碟已使用適當的文件系統格式化並安裝在/mnt/backup(或同一安裝點上的 NFS)下。建議停止執行某些服務,例如 mysql 服務或郵件伺服器,以確保複製數據的完整性。

以下每個命令都應該足夠了。

cp -a /mnt/orig/* /mnt/backup/
rsync -a /mnt/orig/ /mnt/backup/
tar -C /mnt/orig -cf - ./ | tar -C /mnt/backup -xpf -

最後一個是有點矯枉過正。tarrsync提供--exclude基於模式匹配跳過文件的參數,例如--exclude=\*.log --exclude=var/tmp. 上述命令不使用壓縮,您將擁有系統的精確副本。您還可以安裝 grub 並使備份磁碟可引導。

如果您的備份設備或不兼容的文件系統 (NTFS) 上的空間有限,或者它是一個 CIFS 安裝共享,您可以創建一個壓縮的 tar 存檔。

tar -C /mnt/orig -zcf /mnt/backup/mybackup_$(date -I).tar.gz ./

或者創建一個 squashfs 映像,您可以稍後循環掛載並像普通文件系統一樣瀏覽其內容。

mksquashfs /mnt/orig/ /mnt/backup/mybackup.squashfs
mkdir /mnt/squash
mount /mnt/backup/mybackup.squashfs /mnt/squash -o loop

ssh此外,使用and taror獲取遠端備份rsyncrsync需要對遠端伺服器進行 root 訪問以保留所有權、權限、設備文件等。--numeric-ids對於不將所有權與遠端系統的使用者混合是必要的。

tar -C /mnt/orig -zcf - ./ | ssh user@server 'cat -> mybackup_$(date -I).tgz'
rsync -aP -e ssh --numeric-ids /mnt/orig/ root@server:/path/to/backup/

在大多數情況下,完全恢復需要使用另一個系統啟動,最好是 Live CD,然後創建/重新排列您的分區方案,處理/提取您的數據並再次安裝引導載入程序。

引用自:https://unix.stackexchange.com/questions/11028