2009年10月25日 星期日

Ubuntu密技 - 完全複製Ubuntu至新硬碟

若因硬碟容量不足或速度太慢而升級更換了新的硬碟,並欲設定新硬碟為開機硬碟時該怎麼做呢?對於Ubuntu而言,完全複製一台硬碟是相當容易的。它的內建工具可以完全複製整個硬碟,甚至包含Windows分割區(若其存在)。事實上,Linux對這類基本工作極為拿手。

完全複製硬碟共需完成三項步驟。第一,使用者必須知道Ubuntu給予硬碟的技術名稱。第二,使用者必須安裝ddrescue應用程式來進行完全複製工作。第三,當ddrescue完成後,使用者須以Gparted分割區編輯器來調整/擴大分割區容量(新硬碟容量通常比舊硬碟大得多)。

就像是行駛中的車輛無法更換輪胎一樣,在硬碟正在使用時也無法進行完全複製。使用者必須以Ubuntu安裝光碟啟動電腦,於開機選單中選擇Try Ubuntu …… (正體中文環境稱為「試用Ubuntu …&hellip」)。接下來的所有操作也都是在Ubuntu安裝光碟開機的情況下進行,除了最後一步測試完全複製的硬碟之外,請不要以硬碟內的Ubuntu系統啟動電腦。

準備完全複製

備份、備份、再備份!一定要將硬碟內儲存的重要私人資訊備份至CD/DVD±R/RW光碟、USB隨身碟、或外接硬碟上。不怕千萬、只怕萬一!

第二,檢查硬碟錯誤,若原始磁碟上有錯誤,請先進行修復工作。理論上,使用者應該也要由Windows作業系統(若其存在)檢查磁碟錯誤。

第三,移除所有移動式儲存媒體,例如:USB隨身碟/記憶卡、讀卡器、MP3播放機、行動電話……等等,以避免硬碟分區時的混淆。

完成上述三項準備工作之後,開啟終端機視窗,鍵入如下命令以顯示所有連接的硬碟和它們的分割區資訊:

$ sudo fdisk -l

下圖為範例系統的螢幕輸出。共有兩台硬碟,新的硬碟為40GB,其技術名稱/dev/sdb,其分割區為空白。舊的硬碟為30GB,其技術名稱為/dev/sda,有兩個分割區,分別是Ubuntu系統磁區和交換檔暫存磁區。不同的電腦可能會顯現不同的技術資訊,請將其慎重記錄下來。

sudo fdisk -l

現在要在新硬碟上建立分割表,本範例的新硬碟的技術名稱是/dev/sdb,故鍵入如下命令:

$ sudo cfdisk –z /dev/sdb

在出現cfdisk的工作界面之後,按下大寫的W鍵(shift+w組合鍵),再輸入yes以寫入分割表,再按下q鍵退出程式。過程中可能會出現錯誤提示,可忽略。

進行完全複製硬碟

使用者應已記錄了Ubuntu給予新、舊硬碟的技術名稱,此時就可以安裝ddrescue程式。即使是自Ubuntu安裝光碟啟動系統,且是在試用Ubuntu的情況下,仍然可由Synaptic套件管理程式搜尋及安裝套件。首先由System (正體中文環境稱為「系統」) → Administration (正體中文環境稱為「管理」) → Software Sources (正體中文環境稱為「軟體來源」),將四個來源全部勾選,尤其是Community-maintained Open Source software (universe) (正體中文環境稱為「社群協力維護開放原始碼軟體(universe)」)。再點擊Close (正體中文環境稱為「關閉」)按鈕,並同意更新軟體來源清單。

然後鍵入如下命令以安裝ddrescue應用程式:

$ sudo apt-get install gddrescue

注意:ddrescue應用程式的套件名稱為gddrescue,後者多了一個字母g

接著以ddrescue完全複製硬碟,若要顯示複製進度,可使用-v選項參數,舊硬碟的技術名稱列於新硬碟的技術名稱之前。依本範例,鍵入命令如下:

$ sudo ddrescue -v /dev/sda /dev/sdb

重要提醒:若將新舊硬碟的順序弄錯,原始硬碟上的數據會被完全刪除,不可不慎!

完全複製硬碟所需的時間依舊硬碟的容量及系統速度而定,可能要一小時以上或更多的時間。完成之後關閉電腦,並於拔除電源後移除舊硬碟,然後再以新硬碟開機測試。注意:Windows作業系統的正版驗證可能會出現警告訊息,要求使用者重新進行激活。Ubuntu系統應如同識途老馬一樣,一切工作正常。

現在可以進行一下步工作:擴大分割區,以充份利用新硬碟較大的容量。

調整/擴大分割區大小

在進行調整/擴大分割區之前,最好再檢查一次Ubuntu的檔案系統沒有錯誤。仍然是以Ubuntu安裝光碟啟動電腦,於開機選單中選擇Try Ubuntu …… (正體中文環境稱為「試用Ubuntu …&hellip」),在桌面系統完全載入之後,開啟終端機視窗,依本範例,鍵入如下命令:

$ sudo fsck.ext3 -f /dev/sda2

注意:請以剛才記錄下來原始磁碟的Ubuntu分區的技術名稱取代/dev/sda2

完成後關閉終端機視窗。再由System (正體中文環境稱為「系統」) → Administration (正體中文環境稱為「管理」)選單啟動Gparted 分割區編輯器。

接下來的工作則視使用者的需求而定。若要擴大Ubuntu的分區容量,其步驟如下:

  1. 在分割區清單中,先以滑鼠右鍵點選linux-swap分割區,自右鍵選單中選擇Swapoff,以暫停使用硬碟上的交換檔暫存區,讓交換分割區可以移動位置。
  2. 擴大分割區必須在相連的位置,所以若Ubuntu分區被其它已使用的分割區(作業系統)分夾起來,則必須先移動其它分割區的位置。依本範例,ext3分割區為主要分割區,可跳過此步驟。若Ubuntu分割區是邏輯分割區,則自清單中由滑鼠右鍵點擊對應的extended分割區,於選單中選擇Resize/Move (正體中文環境稱為「調整大小/移動」)。於出現的對話框中將Free Space Following (MiB) (正體中文環境稱為「後端的剩餘空間(MiB)」)的數值改為0,再按Tab鍵,這樣分區就會擴展至整個空間。再按下Resize/Move (正體中文環境稱為「調整大小/移動」)按鈕,回到Gparted 分割區編輯器主視窗。如果覺得不滿意或操作有誤,只要尚未於主視窗按下Apply (正體中文環境稱為「套用」)按鈕,都可以重新更改。
  3. 接下來是調整linux-swap交換檔分割區,同上述,將其後端的剩餘空間的數值改為0
  4. 再回到Gparted 分割區編輯器主視窗,自清單中由滑鼠右鍵點擊ext3分割區,於選單中選擇Resize/Move (正體中文環境稱為「調整大小/移動」)。於出現的對話框中將其代表分割區的橫條右方的三角形箭頭拖曳至最右方,其效果與修改Free Space Following (MiB) (正體中文環境稱為「後端的剩餘空間(MiB)」)的數值為0相同。再按下Resize/Move (正體中文環境稱為「調整大小/移動」)按鈕,回到Gparted 分割區編輯器主視窗。
  5. 若是一切滿意,按下Apply (正體中文環境稱為「套用」)按鈕,然後靜待程式執行移山倒海的工作。
  6. Gparted 分割區編輯器完成容量調整/擴大工作之後,退出程式。開啟終端機視窗,依本範例,鍵入如下命令重新檢查Ubuntu分割區是否有錯誤:
    $ sudo fsck.ext3 -f /dev/sda2
    注意:請以剛才記錄下來原始磁碟的Ubuntu分區的技術名稱取代/dev/sda2。若出現錯誤提示訊息,可同意執行修復工作。

檢查完成之後,就可由硬碟內的Ubuntu系統重新啟動電腦。此時,使用者會發現Ubuntu檔案系統的容量變大了。

使用者亦可以改變Windows作業系統的分割區大小。同樣的,苦Windows分區被其它已使用的分割區(作業系統)分夾起來,則必須先移動其它分割區的位置,讓Windows分割區緊鄰著自由空間。

若要丟棄舊硬碟或將舊硬碟轉送他人,預須將舊硬碟上的資料徹底消滅。不過,在這麼做之前,最好等待數周,確認完全複製的新硬碟百分之百沒有問題。

密技以Ubuntu 8.04長期支援版本(Hardy Heron)測試,有可能不適用於新版本,或需做配合微調。

0 留言:

張貼留言