如何遷移備份和裸機恢復 Linux 系統

張貼日期:2015/1/23 上午 02:01:12

摘錄來源http://blog.csdn.net/jinbing/article/details/5355778

當硬件升級,更換存儲設備或是遇到硬件故障時,需要遷移原來的操作系統及應用軟件到新的硬件設備上。這個過程包含系統的遷移備份和裸機恢復,本文詳細描述了整個過程的細節。

遷移備份和裸機恢復

災 難恢復 , 指自然或人為災害後,重新啟用信息系統的數據、硬件及軟件設備,恢復正常商業運作的過程。災難恢復是涵蓋面更廣的業務連續規劃的一部分,其核心即對企業或 機構的災難性風險做出評估、防範,特別是對關鍵性業務數據、流程予以及時記錄、備份、保護。災難恢復規劃需要許多手動、複雜的步驟來分配恢復資源、執行裸 機恢復、執行數據恢復,並驗證系統是否為使用做好了準備。

在災難恢復中,裸機恢復(bare metal restore)是在災難性故障發生之後,通過擦除對計算機進行重新格式化的過程。一般包括重新安裝操作系統和各種應用軟件,如果可能的話,也包括對數據和設置信息的恢復。

回頁首

本文的方案簡介

本文介紹的 Linux 系統災難恢複方案利用了 Linux 工具進行數據備份和恢復,利用 Linux 上的開源軟件和工具進行裸機恢復。一台服務器和可移動存儲設備,實現了災難備份和裸機恢復的主要功能。

圖 1. 基於單機的遷移備份及恢復

图 1. 基于单机的迁移备份及恢复

在本文的方案中,簡化了複雜存儲設備,替代為外部可移動存儲硬盤,而存儲設備和服務器之間的網絡連接著簡化為 USB 連接或 SCSI/SATA 接口連接。這樣把系統備份和恢復的過程縮小到一台機器上。同樣,本文的解決方案也很容易擴展到網絡連接的遠程存儲上。

表 1. 災難備份的環境

遷移備份過程

    • 備份操作系統本身。對於 Linux 系統,並不是所有的目錄和文件都需要備份。/dev、 /sys、 /proc、 /tmp 不需要備份。

    • 如果 Linux 的分區基於 LVM,可以使用 LVM 快照功能保證系統備份的完備性和一致性。

    • 系統硬件信息的備份,包括硬盤分區表,hostname, 網絡連接配置。

裸機恢復的準備

裸機恢復需要從可移動介質如 CD、USB Disk 上啟動一個診斷系統。本文採用了 KIWI imaging System 來定製一個預裝恢復軟件的 LiveCD,見本文的第二部分。

裸機恢復的過程

        1. LiveCD 引導系統

        2. 驅動硬件設備、加載備份媒介、存儲設備並恢復硬盤分區

        3. 連接備份媒介

        4. 恢復操作系統數據到硬盤分區

        5. 恢復其他系統設置

        6. 重起系統至硬盤引導

        7. 驗證恢復成功

本方案的優點在於結構簡單,硬件需求少;不考慮複雜的網絡環境和網絡接口;裸機恢複方案靈活,過程可定製性強。

回頁首

Linux 系統的備份

擁有良好備份的第一步是擁有備份計劃。首先明確您需要保存的數據以及需要什麼恢復策略,然後使用最適合該策略的工具。

備份哪些文件

本 文中備份操作系統時,有一些文件系統和目錄不需要備份。proc,sysfs, tmpfs 文件系統和 /proc 目錄在系統啟動時自動生成;/mnt 目錄用於 mount 其他文件系統;/media 目錄掛載了可移動備份介質。其他一些特殊的目錄需要特殊的處理,比如數據庫文件。

備份媒介

可 擦寫光盤、其他硬盤、同一塊硬盤的不同分區、或者網絡存儲系統都可以作為備份媒介。大型的服務器使用 tap 磁帶機來備份數據,而如果是一般個人計算機的話,很可能是使用可擦寫式光盤來存取數據。本文是基於單機的備份選用了可移動媒體,適用於小型服務器或者個人 計算機。因為可移動媒體靈活方便,更換維護容易,成本低,速度快,容量對於單機的備份足夠。

備份方式

    • 完全備份(普通備份 Normal) :備份所有選擇的文件和文件夾(不管是否被設為存檔屬性), 備份後清除備份標誌;通常 , 在首次創建備份集時要執行一次正常備份。

    • 增量備份(Incremental) :只備份選擇的,並且帶有標誌的文件和文件夾,它清除備份標誌 . 即只備份上次正常備份或增量備份以來創建或更改的文件。其需要最少的存儲空間 , 並節省備份時間 . 然而在恢覆文件比較耗時和困難。

    • 差異備份(Differential) : 只備份選擇的,並且帶有標誌的文件和文件夾,它不清除備份標誌 . 即只備份上次正常備份或增量備份以來創建或更改的文件。由於其不清除文件的存檔屬性 , 所以對一個文件執行兩次差異備份 , 則在每一次整個文件都要被備份。差異備份使用的存儲介質比增量備份多 , 但還原差異備份的數據則簡單些。

為了節省存儲空間,還需要對備份的數據進行壓縮。

備份頻率

是否天天備份、若完全備份,需要多久進行一次,增量備份何時一次,備份檔案的管理。

根據本文的情況,選擇一週一次完全備份,每天增量備份。

備份工具

備份有很多工具,傳統的 UNIX 備份工具是 tar 、 cpio 和 dump 。另外,還可以使用第三方軟件包 ( 包括 freeware 和商業版 )。備份介質的選擇可能影響工具的選擇。

tar 是一個已移植到 Linux 中的經典 UNIX 命令。 tar 是 tape archive(磁帶歸檔)的縮寫,最初設計用於將文件打包到磁帶上。如果您下載過 Linux 源代碼,或許已經碰到過 tar 文件。這是一個基於文件的命令,它本質上是連續地、首尾相連地堆放文件。本文中使用了 tar 和 Shell 腳本來控制 Linux 系統備份的策略。

實際上在 Linux 中,任何能夠複製文件的程序都可以用來執行某種程度的備份。有人就使用 cpio 和 dd 來執行備份。cpio 是又一個與 tar 差不多的打包實用工具,但使用得不太普遍。 dd 是一個文件系統複製實用工具,它產生文件系統的二進制副本。 dd 還可用於產生硬盤驅動器的映像,類似於使用諸如 Symantec 的 Ghost 這樣的產品。然而, dd 不是基於文件的,因此您只能使用它來將數據還原到完全相同的硬盤驅動器分區。

可用於 Linux 的商業化備份產品有很多。商業化產品一般提供了便利的界面和報告系統,而在使用諸如 dump 和 tar 這樣的工具時,您必須自食其力。商業化產品很廣泛,通常提供大量的特性。Tivoli Storage Manager 或許是現在可用於 Linux 的最好的商業化備份和存儲管理實用工具。Tivoli Storage Manager 服務器可運行在多種平台上,包括 Linux,而客戶機則可以運行在更多種類的平台上。關於 Tivoli Storage Manager 在 Linux 系統上的使用,請參閱本文的參考資源。

Linux 下的備份示例

本例的備份策略是的是選擇每個月的一號和每週日做完全備份,每天都做增量備份。這個增量備份是基於每週日的完全備份的。tar 文件並沒有壓縮,所以用 gzip 壓縮。

清單 1. 備份腳本

#!/bin/sh

# Backup Script: backup.sh

if [ $# -lt 3 ]

then

echo "usage: backup.sh dir_under_backup dump_to name"

exit;

fi

COMPUTER=`hostname`

if [ $# -gt 3 ]

then

COMPUTER=$3

fi

DIRECTORIES=$1

BACKUPDIR=$2

FLAGS="— directory=$DIRECTORIES --exclude=mnt --exclude=proc --exclude=media"

TAR=/bin/tar # name and locaction of tar

PATH=/usr/local/bin:/usr/bin:/bin

DOW=`date +%a` # Day of the week e.g. Mon

DOM=`date +%d` # Date of the Month e.g. 27

DM=`date +%d%b` # Date and Month e.g. 27Sep

if [ $DOM = "01" ]; then # monthly full backup

NEWER=""

echo "$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DM.tgz $FLAGS ."

fi

if [ $DOW = "Sun" ]; then # weekly full backup

NEWER=""

NOW=`date +%d-%b`

echo $NOW > $BACKUPDIR/$COMPUTER-full-date #update full backup date

echo "$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $FLAGS – ignore-failed-read ."

else # make incremental backup - overwrite last weeks

NEWER="--newer `cat $BACKUPDIR/$COMPUTER-full-date`" #get date of last full backup

echo "$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $FLAGS – ignore-failed-read ."

fi

為了使腳本自動化運行,可以使用 crontab 工具。

清單 2. 自動運行備份

47 9 * * * /media/script/tempdelete.sh

30 1 * * 1-6 /meida/script/ringbackup.sh

0 1 * * 0 /media/script/ringfullbackup.sh

0 為星期日

基於 LVM 分區的 Linux 操作系統備份

如 果在備份過程期間數據沒有發生變化,那麼就能夠獲得一致的備份。但是如果不在備份期間停止系統,就很難保證數據沒有變化。 LVM 實現了一種稱為快照(Snapshot)的特性,它的作用就像是「拍攝」邏輯卷在某一時刻的照片。通過使用快照, 可以獲得同一個邏輯卷的兩個拷貝。一個可以用於備份,另一個繼續用於日常操作。LVM 快照有兩大優點:

    • 快照的創建非常快,不需要停止生產環境。

    • 建立兩個拷貝,但是它們的大小並不一樣。快照使用的空間僅僅是存儲兩個 LV 之間的差異所需的空間。

LVM 技術已經大量應用於類 Unix 系統並成為安裝系統時默認的分區格式,如 AIX 和大部分的 Linux 發行版。本文就是利用 LVM 的快照技術,在不中斷系統和應用程序運行的情況下完成備份。

清單 3. 創建 LVM 快照分區

保證 vg 有空閒的空間來創建快照

sles:~ # vgdisplay -s

"system" 463.54 GB [427.22 GB used / 36.32 GB free]

創建 root 卷的快照分區,大小為 32G,並命名為 snap。

sles:~ # lvcreate -s -L 32G -n snap /dev/system/root

Logical volume "snap" created

可以使用 lvdisplay 查詢特殊信息,比如 CoW 的大小和使用情況 (lvs)

sles:~ # lvdisplay /dev/system/snap

--- Logical volume ---

LV Name /dev/system/snap

VG Name system

LV UUID ft2uvx-5SLW-ArSU-HVSK-Xdxo-pu4q-4YHTId

LV Write Access read/write

LV snapshot status active destination for /dev/system/root

LV Status available

# open 1

LV Size 411.24 GB

Current LE 105277

COW-table size 32.00 GB

COW-table LE 8192

Allocated to snapshot 0.09%

Snapshot chunk size 8.00 KB

Segments 1

Allocation inherit

Read ahead sectors 0

Block device 253:2

對於所有日常操作,LVM 快照看起來就是原來邏輯卷的一個拷貝。本文對映射到根目錄的邏輯卷創建 LVM 快照,並且 mount 到 /mnt/lvm/ 目錄中,然後執行快照的備份。

清單 4. 備份快照分區

# mount snapshot volume

mount -o ro /dev/system/snap /mnt/lvm

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/system-root

405G 57G 328G 15% /

udev 4.0G 148K 4.0G 1% /dev

/dev/sdb1 244M 15M 216M 7% /boot

/dev/sda1 459G 200G 259G 44% /media

/dev/mapper/system-snap

405G 57G 328G 15% /mnt/lvm

# lvs

LV VG Attr LSize Origin Snap% Move Log Copy%

root system owi-ao 411.24G

snap system swi-ao 32.00G root 0.15

swap system -wi-ao 15.98G

備份 boot 目錄

/media/script/backup.sh /boot /media boot

備份根目錄" / "

/media/script/backup.sh /mnt/lvm /media root

備份過程完成之後,就不需要快照了,這時只需用 lvremove 卸載並銷毀它。

清單 5. 刪除 LVM 快照卷

# umount /mnt/lvm/

remove snapshot

# lvremove /dev/system/snap

備份系統信息

為 了能夠恢復到備份前的狀態。不僅要備份 Linux 系統文件,而且需要收集其他一些系統信息。Linux 系統上有許多命令或工具能夠幫助你完成信息收集,比如 fdisk、proc 文件系統、df、ifconfig 和 /etc/sysconfig 目錄。需要收集的系統信息包括:

    • 硬盤分區信息。包括分區個數、類型、大小、boot 分區和 root 目錄。

    • hostname

    • 網絡信息。包括 IP 地址、子網掩碼、網關設置、DNS 設置。

    • 操作系統的運行級別

這些信息也需要保存在可移動硬盤上,以備邏輯回覆時使用。

清單 6. 備份系統信息

在可移動硬盤上創建系統信息備份目錄

# mkdir -p /media/sys_bk/

備份硬盤分區表

# fdisk -l > /media/sys_bk/partitions.txt

備份 LVM 分區

# /sbin/vgcfgbackup -v

Finding all volume groups

Finding volume group "system"

Creating volume group backup "/etc/lvm/backup/system" (seqno 33).

Volume group "system" successfully backed up.

# mv /etc/lvm/backup/system /media/sys_bk/

回頁首

裸機恢複方案介紹

裸機恢復在災難恢復計劃中佔有很重要的地位,也是最關鍵的一步。以下是幾種裸機恢復的方法及比較。

手動引導恢復

最便宜的裸機恢複方案就是手動安裝一個最小系統來引導恢復流程,並在其上安裝恢復軟件來恢復系統數據。

圖 2. 手動引導恢復

图 2. 手动引导恢复

手 動恢復需要耗費大量時間。用戶必須重新安裝機器的操作系統和應用程序,恢複數據,然後修復配置,調節原系統和恢複數據之間的所有差異。使用這種方法恢復機 器需要花費幾天時間,最終通常無法完全恢復機器,另外,這種恢複方法非常容易出錯。其中許多錯誤非常難以察覺,需要多花幾天時間才能發現、排除和糾正。

操作系統鏡像引導恢復

利用第三方軟件或自帶的工具快速恢復一個最小系統。比如 AIX 系統上的 mksysb 工具。

圖 3. 操作系統鏡像引導恢復

图 3. 操作系统镜像引导恢复

Live Media 引導恢復

從可移動媒質上引導和運行一個完整的操作系統是完全可能的,例如 CD-ROM 或 USB 設備。這些系統可能被預先安裝了硬件驅動和軟件,以連接和恢復備份數據。目前這種方式特別適合類 unix 系統,比如 Linux。

圖 4. Live Media 引導恢復

图 4. Live Media 引导恢复

自動裸機恢復

如果把以上方案用自動化腳本無縫連接起來,就是自動化的恢複方案。許多商業公司提供這樣的自動化軟件。比如 VERITAS Bare Metal Restore 和 TSM system backup and recovery for AIX。

本文的 LiveCD 裸機恢復計劃

在文章的開頭已經指明,本文的解決方案採用了 LiveCD 引導恢復的方案;本文的第二部分介紹了如何製作 LiveCD。那麼在一切就緒的情況下開始恢復系統。

    • 啟動 LiveCD 系統

        • LiveCD 引導系統,設置系統信息或服務

        • 驅動硬件設備、存儲設備並加載備份媒介

        • 在存儲設備上恢復系統分區和 LVM 分區

    • 恢復 Linux 操作系統的根目錄和 boot 目錄

    • Linux 系統引導和系統設置的恢復

    • 啟動裸機恢復後的系統

回頁首

啟動 LiveCD 系統

本文的第二部分介紹了如何使用 KIWI 軟件製作一張 LiveCD 鏡像。本文的使用的鏡像只有 160MB,完全可以刻錄在一張 CD 上,成為恢復引導媒質。

LiveCD 引導系統

准 備一台用作恢復的裸機,就是沒有安裝任何操作系統和應用程序的機器,最好與做災難備份的機器硬件類似。插入 LiveCD 到機器的光盤驅動器,並設置系統從光盤啟動。用預先設置好的用戶名和密碼登陸後,檢查系統信息。還可以修改系統的設置,或者開啟網絡服務如 ssh。但是記住,這些修改只是暫時寫到內存中,當 LiveCD 系統重啟後又恢復到初始狀態。

清單 7. LiveCD 系統信息

內核信息

linux:~ # uname -a

Linux linux 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 /

UTC 2008 x86_64 x86_64 x86_64 GNU/Linux

系統內存

linux:~ # free

total used free shared buffers cached

Mem: 1394232 120060 1274172 0 10768 71472

-/+ buffers/cache: 37820 1356412

Swap: 0 0 0

系統分區

linux:~ # df -h

Filesystem Size Used Avail Use% Mounted on

/dev/root 681M 376K 681M 1% /

udev 681M 88K 681M 1% /dev

硬盤信息

linux:~ # fdisk -l

Disk /dev/sda: 497.9 GB, 497998102528 bytes

255 heads, 63 sectors/track, 60544 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

網絡信息

linux:~ # ifconfig

eth0 Link encap:Ethernet HWaddr 00:0C:29:06:56:1C

inet addr:9.123.99.225 Bcast:9.123.99.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe06:561c/64 Scope:Link

UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1

RX packets:3606 errors:0 dropped:0 overruns:0 frame:0

TX packets:208 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:422057 (412.1 Kb) TX bytes:33439 (32.6 Kb)

Base address:0x1400 Memory:f4820000-f4840000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:16 errors:0 dropped:0 overruns:0 frame:0

TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1124 (1.0 Kb) TX bytes:1124 (1.0 Kb)

加載備份媒質

本文中,備份媒質即可移動硬盤。我們把操作系統、應用程序、系統信息存儲在可移動硬盤中。所以裸機恢復時,需要把可移動硬盤加載到 LiveCD 系統上。備份介質加載後 mount 到 LiveCD 系統的 /media 目錄上。

表 2. 備份媒質的內容

清單 8. 加載備份媒質

linux:~ # fdisk -l

Disk /dev/sda: 497.9 GB, 497998102528 bytes

255 heads, 63 sectors/track, 60544 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

Disk /dev/sdb: 500.1 GB, 500107862016 bytes

255 heads, 63 sectors/track, 60801 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 60801 488384032 83 Linux

linux:~ # mount /dev/sdb1 /media/

linux:~ # df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/root 697116 376 696740 1% /

udev 697116 88 697028 1% /dev

/dev/sdb1 480719088 209328684 271390404 49% /media

恢復系統分區

在 LiveCD 加載存儲設備後,就可以利用系統工具 fdisk 和 LVM 在上面創建分區了。首先清除硬盤的主引導記錄 MBR。

清單 9. 清除主引導記錄

# dd if=/dev/zero of=/dev/sda bs=512 count=1

讀取備份媒質上的硬盤分區表文件 /media/sysbk/partitions.txt, 用 fdisk 工具恢復分區。

清單 10. 恢復硬盤分區

linux:~ # fdisk /dev/sda -l

Disk /dev/sda: 497.9 GB, 497998102528 bytes

255 heads, 63 sectors/track, 60544 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 32 257039+ 83 Linux

/dev/sda2 33 60544 486062640 8e Linux LVM

然後使用 LVM 工具為根分區和交換分區創建邏輯分區。參見 DeveloperWorks 上的文章「 邏輯卷管理 」。

清單 11. 創建邏輯分區

linux:~ # pvcreate /dev/sda2

Physical volume "/dev/sda2" successfully created

linux:~ # vgcreate system /dev/sda2

Volume group "system" successfully created

linux:~ # vgchange -a y

0 logical volume(s) in volume group "system" now active

linux:~ # vgscan

Reading all physical volumes. This may take a while...

Found volume group "system" using metadata type lvm2

linux:~ # lvcreate -L 16G -n swap system

Logical volume "swap" created

linux:~ # lvcreate -L 400G -n root system

Logical volume "root" created

linux:~ # lvscan

ACTIVE '/dev/system/swap' [16.00 GB] inherit

ACTIVE '/dev/system/root' [400.00 GB] inherit

至此,硬盤分區表已經按照備份重建了。在恢復過程中,可以根據系統硬件的實際情況(比如內存大小,硬盤大小)來調節分區大小。

回頁首

恢復 Linux 操作系統及應用程序

恢復 Linux 系統到最近的備份狀態,首先要驗證恢復工具已經安裝到 LiveCD 上。本文備份時使用的是 tar 和 gzip,所以他們需要預先安裝到 LiveCD 中。接著映射硬盤分區到 LiveCD 的系統中去。

清單 12. 恢復 Linux 系統目錄

格式化根分區並 mount

linux:~ # mkfs.ext3 /dev/system/root

linux:~ # mkdir /bmr

linux:~ # mount /dev/system/root /bmr/

格式化 boot 分區並 mount

linux:~ # mkfs.ext3 /dev/sda1

linux:~ # mkdir /bmr/boot

linux:~ # mount /dev/sda1 /bmr/boot/

加載交換分區

linux:~ # mkswap /dev/system/swap

Setting up swapspace version 1, size = 2147479 kB

linux:~ # swapon -a /dev/system/swap

恢復 /boot 目錄

# /bin/tar -zxf /media/data/boot_Sun.tgz -C /bmr/

恢復根目錄

# /bin/tar -zxf /meida/data/sles_Sun.tgz -C /bmr/

只需要等待一段時間就完成了所有操作系統目錄的恢復,文件系統的恢復操作就這麼簡單。恢復時間的長短取決於數據的多少。這樣 Linux 操作系統本身和安裝在操作系統上的應用程序都恢復到了硬盤分區上。

回頁首

Linux 系統引導和系統設置的恢復

恢復了 Linux 系統的所有目錄到硬盤上,並不等於完成了裸機恢復。裸機恢復要保證恢復後的系統能夠自行從硬盤啟動並且系統設置與備份的系統一致。所以還有一些後續的恢復操作。

恢復 grub

恢復磁盤分區前,擦除了新硬盤上的主引導記錄 MBR。因為我們要重新寫入它。Grub 提供了工具程序 grub-install,用來將 grub 安裝到硬盤的 MBR。

grub-install -root-directory Mount-Point (hdn)

上面的命令可以將 grub 安裝到硬盤的 MBR。內核鏡像 (kernel-image) 如果不在根分區 / 下,例如在 /boot,可以使用 Mount-Point 指定其路徑。(hdn) 表示某個硬盤,n 是硬盤的編號,編號從 0 開始。

清單 13. 恢復磁盤 MBR

linux:~ # grub-install --root-directory=/bmr/ /dev/sda --recheck

Probing devices to guess BIOS drives. This may take a long time.

Installation finished. No error reported.

This is the contents of the device map /bmr//boot/grub/device.map.

Check if this is correct or not. If any of the lines is incorrect,

fix it and re-run the script `grub-install'.

(fd0) /dev/fd0

(hd0) /dev/sda

(hd1) /dev/sdb

恢復網絡設置

網 卡的 MAC 地址和設備號的對應規則預先設置在系統的 /etc/udev/rules.d/30-net_persistent_names.rules 文件中。當裸機恢復系統到另外一台機器後,網卡的 MAC 地址必然改變了。所以我們必須刪除舊的註冊信息,以便系統能夠更新這些規則。

清單 14. 清除網絡綁定

linux:~ # echo "" > /bmr/etc/udev/rules.d/30-net_persistent_names.rules

重起系統至硬盤引導

清單 15. 恢復硬盤系統

linux:~ # umount /bmr/boot

linux:~ # umount /bmr/

linux:~ # umount /bmr/media/

linux:~ # umount /bmr

linux:~ # poweroff

至此裸機恢復已經完成了。從光驅中移除 LiveCD,重啟系統從硬盤引導,就可以看到系統已經恢復到備份時的狀態。本文裸機恢復過程完全在 LiveCD 的控制台下完成。如果把這些命令寫入腳本並加入到 LiveCD 的啟動過程中運行,就成為了自動裸機恢復模式了。由此可見,自動恢復並不神秘。而且本文的災難備份和裸機恢復的方法具有高度可定製性,很容易插入特殊的操 作以滿足不同用戶的需求。