備份整個硬碟Linux
我正在尋找一種備份整個磁碟的方法,以防萬一出現問題…
我什至不知道在伺服器的一些特殊設備上安裝什麼,每次都不一樣。
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 創建一個新的掛載點,您現在可以複製該掛載點,而不必擔心其他掛載的文件系統,如
/proc
or/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 -
最後一個是有點矯枉過正。
tar
並rsync
提供--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
此外,使用andtar
or獲取遠端備份rsync
。rsync
需要對遠端伺服器進行 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,然後創建/重新排列您的分區方案,處理/提取您的數據並再次安裝引導載入程序。