已經使用一段時間的Ubuntu,通常有相當多個人化的設定,但以硬碟容量倍增、價格下降的趨勢,大約兩年左右換上一顆新硬碟,把舊硬碟拿來養動物或備份資料,這樣不但可以一直保有充足的容量,也可以減少硬碟因老化故障造成資料毀損的機率。
日前INTEL推出新的320系列SSD,目前40GB版本的報價已經不到$3,000元,同樣的入門款等級,讀寫效能比起前一代提升了許多。雖然40GB並不夠一般儲存的需求,但安裝Ubuntu Linux的桌上型電腦,可以將根目錄磁區「/」設定在容量比較小但速度快的SSD硬碟,而家目錄「/home」則設定在大容量2TB以上的傳統硬碟。
在Ubuntu Linux Desktop的根目錄下,通常是 /usr 子目錄會佔用比較大的容量,因為應用程式主要的檔案都會放在這裡。但即使裝了大量的應用程式,大約30~40GB的分割區大小就已足夠應付大多需求。因為正常用途的作業系統不會每天都大量新增移除軟體,而應用程式在第一次執行,需要的檔案從硬碟讀出後,只要記憶體容量充足(目前的桌上型電腦裝滿16GB記憶體並不需要花費太多),系統就會在記憶體配置緩衝區,不會每次都從磁碟讀取。一般使用者編輯的圖片、文件,或網路下載的影片、音樂,都會保存在家目錄,所以家目錄的讀寫通常比根目錄頻繁。因此將根目錄存放在SSD硬碟,家目錄存放在傳統硬碟,對SSD讀寫次數有壽命限制的問題,就不用太操心了。
當然上面只將系統分配成根目錄及家目錄的作法,是適用一般個人電腦用途,對於伺服器就需要不同的配置,例如伺服器常將網頁、記錄檔及資料庫檔案放在/var,就要依照進階的使用需求去做規劃。
由於Ubuntu的APT套件庫做得相當好,每年4月、10月新版發行的時候,通常可以順利無痛升級,而不需要重灌,所以即使要安裝新硬碟,把速度比較快的新硬碟當作主要開機硬碟,以及儲存作業系統資料,這時候可以選擇用資料搬移的方式。
搬資料不是COPY過去就好了嗎?
其實只完成COPY磁碟資料的動作,並不夠完整,因為啟動Linux作業系統需要GRUB(或LILO)開機程式,所以需要把開機程式重新安裝一份到新硬碟的主要開機記錄區(MBR),這樣子才能讓新硬碟獨立完成開機作業。
由於Ubuntu Linux的LiveCD功能很強,所以我們並不需要藉助其他軟體,單靠LiveCD就能完成開機磁碟資料搬移的工作。
假設主機已經安裝好新硬碟,就可以開始以下搬移步驟。
首先,需要先製作一張LiveCD,建議使用和目前系統相同版本的ISO檔,例如ubuntu-10.10-desktop-amd64.iso。但由於做環保愛地球的訴求,我們並不鼓勵使用者真的把ISO燒成光碟,而是拿一支舊的USB隨身碟,製作成LiveUSB(目前大多數主機板可以使用USB隨身碟開機)。
以下的示範畫面,以Ubuntu 10.10 Desktop AMD64版本為例。
在Ubuntu系統製作LiveUSB的方式,可以使用內建的usb-creator,先看一下是否已安裝:
dpkg -l |grep usb-creator
如果還沒裝,則先使用apt-get立即裝上(usb-creator-gtk是GNOME使用的版本,KDE愛用者可以改成usb-creator-kde)。
sudo apt-get update && sudo apt-get install usb-creator-gtk
打開「系統 / 管理 / 製作開機碟」,選擇來源光碟映像檔及目標隨身碟,就可以點「製作開機碟」。
製作好的LiveUSB不用拔除,重新開機,在BIOS設定中,調整硬碟的開機順序,將USB隨身碟調為最優先。在Welcome畫面中,選擇語言「中文(繁體)」再點選「試用Ubuntu」。
使用磁碟公用程式「System / Administration / Disk Utility」,將新硬碟整個磁碟格式化成「Master Boot Record」,再建立分割區(partition),分割區的格式可以跟舊系統的根目錄「/」分割區一致,通常是ext4或ext3。
2012-08-24 Update
Use GParted (LiveUSB) with newer version and choose "MiB" for "Align to" option. It's better for SSD 4kb alignment.
再來需要把磁碟代碼記住,例如舊的硬碟的分割區是 /dev/sda1,新硬碟是 /dev/sdb1。
打開終端機程式「Applications / Accessories / Terminal」,依序執行以下指令,請自行依實際狀況修改分割區代碼。第一行「sudo su -」會切換成超級使用者root,所以後續的指令必須很小心操作,否則會造成系統毀損。
sudo su -
mkdir /media/old
mkdir /media/new
mount /dev/sda1 /media/old
mount /dev/sdb1 /media/new
rsync -ax /media/old/ /media/new/
最後的rsync是複製資料的指令,這會花上一些時間,可能要幾分鐘到幾十分鐘,視舊磁碟儲存的資料容量而定。如果想知道進度,可以再打開一個終端機程式,使用 df -h 指令,查看新硬碟已使用容量即可知道已完成複製多少。
資料複製完成後,再來是重新安裝GRUB開機程式。首先我們需要將目前的Linux運作環境,從LiveUSB開機後的系統,用chroot指令轉移到新硬碟上面的系統。依序執行以下的步驟。
sudo su -
mount -o bind /proc /media/new/proc
mount -o bind /dev /media/new/dev
chroot /media/new
接下來再執行的其他指令,就等同於在新硬碟的Linux系統上操作,首先重新安裝GRUB開機程式。
grub-install --root-directory=/ /dev/sdb --recheck
grub-mkdevicemap
update-grub2
上面的指令,會將GRUB開機程式安裝到/dev/sdb(新硬碟)的MBR。
有些文件只講到這裡,而忽略了分割區掛載的設定,這樣開機後仍會將舊硬碟的分割區掛載成根目錄「/」路徑。所以我們還要再修改 /etc/fstab 的設定才行。由於目前的Linux設定檔開始改用UUID取代分割區代碼(/dev/sdX),所以要先查詢分割區的UUID。
ls /dev/disk/by-uuid/ -al | grep sdb1
顯示結果的一長串英數字就是UUID,可能長這樣「55E14BD4473131DF」也可能是長這樣「9fdbd623-299c-45a7-9adb-6e07e82080a7」。
再來,打開 /etc/fstab 將根目錄分割區「/」的UUID設定成新硬碟分割區的UUID。
vim /etc/fstab
如果不習慣使用VIM,可以改成圖形介面的文字編輯器。
gedit /etc/fstab
儲存設定後,重新開機。
由於我們把GRUB開機程式安裝到新硬碟的MBR,而新硬碟對主機板的硬碟控制器,可能是位於第二顆以後的順序;在預設情況下,BIOS的開機硬碟會優先以位於第一顆順序的硬碟開始找MBR,如果不修改,還是會用舊硬碟開機。
所以重新開機時,除了移除剛才用來開機的LiveUSB隨身碟,還要再次調整開機硬碟順序,將新硬碟的優先順序移到舊硬碟前面,這樣BIOS開機程序在尋找MBR時,才會讀到新硬碟MBR安裝的GRUB開機程式。
我們將新的GRUB開機程式安裝到新硬碟的MBR,而不去覆蓋舊硬碟的MBR,所以即使前面的過程失敗,仍然可以讓BIOS設定優先以舊硬碟開機。
訂閱:
張貼留言 (Atom)
-
▼
2011
(197)
-
▼
4月
(30)
- Proposal: Web Design Index Search Engine
- 開放源碼的Cloud Foundry打造PaaS
- 台中人體工學椅試坐的門市 Ergohuman 111、Enjoy 121、Nefil;Herman ...
- NetBeans 7.0發表,支援JDK7、Oracle資料庫
- 如果買書也能做公益?
- Ubuntu 11.04: Overlay Scrollbars in Unity
- 用 Groovy + tesseract-ocr 破解很遜的驗證碼圖片
- 改變未來生活的現在進行式,Facebook臉書效應
- 解決CSS3文字陰影效果(text-shadow)在Google Chrome瀏覽器中文字型模糊問題
- 使用Gradle快速建立Jetty網站開發測試環境
- 跨瀏覽器的CSS3圓角(rounded corner)、陰影(shadow)
- Groovlets出現404 error錯誤訊息
- 為什麼要寫網誌?
- 報名2011全球華文部落格大獎
- Install Subersion(SVN) support for Eclipse Helios ...
- UrlRewriteFilter 讓JavaEE Web Application也有漂亮的短網址
- 從「老貓學出版」電子書免費下載發現新閱讀時代
- 淺談Linux普通使用者權限安裝軟體,以node.js為例
- Monaco 適合程式碼的螢幕字型
- 使用QEMU快速測試LiveCD開機光碟
- 區網升級1000Mbps與Ubuntu查詢網路卡連線速度的方法
- 新玩具實測 INTEL 320 Series SSD 40G (SSDSA2CT040G3)
- 開放源碼的雲端企業IT架構軟體openQRM簡介
- 將 Ubuntu Linux 搬移到新硬碟
- 本誌近期IE瀏覽次數比例降至49%
- 從精實軟體開發到精實創業(Lean Startup)
- 部落格放廣告真的會有人點嗎?
- Blog2Print! 讓部落客自己也能輕鬆印製專書
- [實測] 壹電視網樂通機上盒 + 訊舟EDIMAX EW-7711UTn USB無線網路卡
- Synergy 免費 KVM 軟體,讓一組鍵盤滑鼠控制多部電腦主機
-
▼
4月
(30)
請問一下,如果我是把ubuntu 10.04裝在隨身碟,因為容量不太夠,所以要移到新的隨身碟中,手續也是那麼複雜嗎?還是說ghost過去就可以了?
回覆刪除如果開機的MBR在隨身碟,一般情況是clone(ghost)一份,再調整partition大小即可。
回覆刪除如果開機的MBR在隨身碟,一般情況是clone(ghost)一份,再調整partition大小即可。
回覆刪除剛才再查了一下資料,應該沒辦法只用ghost,還是要依照你的方式來做才可以...
回覆刪除再請問一下,dd 的指令,應該就可以完整的複製MBR吧?所以我只要修改/etc/fstab UUID的部分,這樣對嗎?
回覆刪除前512 block size就是MBR區,也可以用dd複製MBR,..
回覆刪除dd if=/dev/??? of=/dev/??? bs=512 count=1
請問可以直接dd if=/dev/?? of=/dev/?? 整個複製嗎?
回覆刪除這樣可以正常開機嗎?