硬碟規畫: 阿貴的備份策略
本篇假設讀者已有 徒手安裝 grub 的經驗。
我沒有用特殊的備份軟體, 只有一個很簡單的備份策略。 個人創作的資料, 因為量很小 (絕大多數都是 .txt .php .svg 之類文字格式), 只要全部放在兩三個固定的目錄底下, 可以每天壓縮備份很多次。 這部分另文討論。 系統部分, 就只是簡單地把整個 Linux 作業系統壓縮起來。 這就是本篇要討論的議題。
首先規畫硬碟。 用 fdisk 切割硬碟時, 將最前面的空間設為第一分割主分割區, 留足夠的空間給 Windows。 又將硬碟最後面的至少 12 MB 空間設為第四分割主分割區, 將用來存放 grub 及 ttylinux。 也可多留 60 MB 加放 dsl, 或再多留 300 MB 再加放 slax。 中間那一段空間, 就切成很多個小的邏輯分割, 每一個 1G 到 8G 不等, 將來可以存放很多不同版本的 Linux, 以及一個很大的資料分割, 將來存放光碟映象檔及系統備份檔。
接下來 把 grub 與 ttylinux 裝入第四分割, 這顆硬碟就可以開機了。
然後比方說要安裝 ubuntu 8.04.1。 在第...個問題時, 請選 「手動分割」, 例如要裝到 /dev/sdz8 。 在最後一個問題時, 請選 「進階」, 並將 grub 改安裝到 (hd0,7)。 (忘記各選單精確的說法, 請幫我填) 這裡唯一的目的就是不要讓 ubuntu 把我們裝好的 grub 蓋掉, 只要不是它內定的 (hd0), 它的 grub 就不會搶到控制權, 裝在那裡其實都無所謂。 裝完之後, 不要馬上重開機。 把這視窗關掉, 進入 live cd。 手動掛載 /dev/sdz8 及 /dev/sdz4, 把前者的 /boot/grub/menu.lst 裡面的 default 那個選項, 複製到後者的 /boot/grub/menu.lst 選單裡面。
重開機之後, 選單新出現一項 ubuntu 8.04.1, 幸運的話, 就成功進入。 先不急著大幅度整修或安裝套件。 通常我會將 /etc/fstab 裡面的 "UUID=..." 改成簡單的 "/dev/sdz..."; 不過少數時候這樣改過就無法開機。 若改過此處, 務必重開機, 再簡單測試一次。 又, 建議將 /home 獨立出來, 另掛一個分割, 例如拿 /dev/sdz6 來存放使用者資料。 將來我們不備份使用者資料; 使用者必須另外自行備份。 如果沒問題, 就 (再度) 重開機, 回到舊系統或 live cd 或 live usb 開機, 總之就是不要進入剛裝好的 ubuntu 8.04.1。
在另一個系統下, fsck -f /dev/sdz8 檢查檔案系統。
如果沒問題, 就把它掛載起來, 並備份:
mount /dev/sdz8 /media/sdz8
cd /media/sdz8
tar czf /備份路徑/ubuntu-8.04.1-a.tgz .
然後馬上將備份還原到另一分割, 例如 sdz9:
mount /dev/sdz9 /media/sdz9
cd /media/sdz9
tar xzf /備份路徑/ubuntu-8.04.1-a.tgz
修改兩處: /media/sdz9/etc/fstab 裡面提到 / 那一句, 當然要把
/dev/sdz8 改成 /dev/sdz9; 另外 /media/sdz4/boot/grub/menu.lst 裡面則要將
ubuntu-8.04.1 的那筆記錄複製一份, 一樣把所有的 /dev/sdz8 改成
/dev/sdz9。 至於新的 "UUID=..." 要填什麼呢? tune2fs -l
/dev/sdz9 | grep -i uuid 把這兩份取不同的名字吧,
例如一份叫做 workspace, 另一份叫做 pristine。 重新開機, 測試一下
/dev/sdz9 這個還原是否正常。
現在您的電腦有兩套 ubuntu 8.04.1。 平常使用 workspace 這一份; 臨時出問題, 立即重開機, 切到 pristine, 至少可以繼續工作。 然後記得把死掉的 workspace 的 /var 目錄備份出來, 以便日後檢查原因, 還有把 /etc 也備份出來, 因為裡面可能有一些手動修改過的設定。 再重新格式化, 重新還原, 並同樣如上述修改 fstab 與 menu.lst 。 最後把這兩個分割的名字對調: 因為現在 workspace 與 pristine 的角色已經反過來了。 這一切動作, 都是在系統 (原先叫做 pristine, 後來改名為 workspace 的那一份安裝) 正常運作時進行的, 不耽誤救援時間。
再進一步, 平日工作可以隨時記下新安裝的套件名稱,
例如放在一個檔案叫做 pkgs.txt 裡面。
那麼可以趁上述重新還原的時候, 順便 chroot /media/sdz?
(詳見 「換個環境工作」)
切換到新還原的分割, 並且 apt-get install $(cat
pkgs.txt) 把這段時日新增的套件一口氣裝上。 記得按 ctrl-d
跳離 chroot。 當然若是設定檔花了工夫修改, 就還要回備份的 /etc
挖回來。 最後, 測試正常之後, 可以再備份一次, 例如叫做
/備份路徑/ubuntu-8.04.1-b.tgz。 如此一來, 這段期間亂做,
不值得留下的動作, 全部遺忘; 但新增的套件卻都進了新的備份;
這個新的備份, 彷彿是當初剛裝好就知道以後會想用那些套件,
立即安裝的一樣, 沒有歷史的包袱。
此外, 注意到 /var/cache/apt 底下存放了很多下載的 *.deb
套件。 如果把這個目錄放在別的分割區 (例如 /home 分割),
改用一個 symbolic link 指向真正的目錄,
那麼就不需要把這些東西一起備份起來, 會省下不少空間。
不要小看這些, 因為這些本身就是壓縮檔, 再用 tar czf 壓縮,
也小不了多少, 如果不另外放, 會佔掉不少空間。
事實上, 我把這個目錄放在外接硬碟,
這樣我在別處另外一部機器也灌了 ubuntu 8.04.1 後,
就不必再等 adsl 慢慢下載, 只要一下 apt-get install
$(cat pkgs.txt) 它自然就從 /var/cache/apt
快取安裝。
我曾試過: 在 A 機器的備份, 拿到 B 機器還原, 居然經常都大致上可以用。 (fstab 及 menu.lst 當然要改) 我在北中南連辦公室共有至少四部電腦, 對於我這種人來說, 每次升級換系統, 可以省下三次麻煩的安裝設定, 是一件非常快樂的事。
- 本頁最新版網址: http://people.ofset.org/~ckhung//b/sa/hdplan.php; 您所看到的版本: August 04 2008 21:50:21.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。
![[rss feed 圖案]](/~ckhung//i/rss.png)
![[帶頭升級 Office 2007? 別當害群之馬]](/~ckhung//i/n7/no-office2007.png)
![[(力求維持) 符合 xhtml 1.0]](/~ckhung//i/vxhtml10.png)
