硬碟安裝Ubuntu(免燒光碟,使用ISO檔案直接安裝)
昨天(4/29)才剛發佈最新版的Ubuntu 10.04 TLS,真是令人好想馬上安裝呀!但是Ubuntu每六個月發佈一次新版,更新速度可以說是非常快,要是每次都燒成光碟,那光碟恐怕是堆成山了吧!太不環保了,何不試試直接從硬碟裡的iso光碟映像檔直接安裝呢?既環保又快速(硬碟讀取速度快於光碟)。
想要從ISO光碟映像檔直接開機,可以透過GRUB開機程式來實現。
已安裝Windows
在這裡我們以Windows XP作例子。
所需準備材料
- Ubuntu光碟映像檔 官方網站:http://www.ubuntu-tw.org/(台灣官網)
- Grub4dos 官方網站:http://sarovar.org/projects/grub4dos/
步驟
- 下載Ubuntu光碟映像檔不用說,大家都知道,在這裡我們以 ubuntu-10.04-desktop-i386.iso作範例。
- 將光碟映像檔移到C:
- 將光碟映像檔裡面的/casper/initrd.lz和/casper/vmlinuz兩個檔案複製到C:
- 接著我們要下載Grub4dos,先到官網後,點選Downloads,然後選擇好一個版本後下載,我們以grub4dos-0.4.4.zip 作範例。
- 下載好後將此壓縮檔打開,將裡面其中一個檔名為「grldr」(請注意,此檔案沒有副檔名)解壓縮到C:
- 接著到控制台 → 系統 → 進階 → 啟動及修復 – [設定] → 編輯
- 此時會跳出一個筆記本,在最下面輸入「C:grldr=”Start GRUB”」,然後存檔。
- 另外自行在C:用筆記本新增一個檔案檔名命名為「menu.lst」,檔案裡面輸入以下文字
title Install Ubuntu
root (hd0,0)
kernel /vmlinuz
initrd /initrd.lz
- 重開機後, 於開機選單選擇 “Start GRUB” → “Install Ubuntu” 即可開始安裝
已安裝Ubuntu
所需準備材料
- Ubuntu光碟映像檔 官方網站:http://www.ubuntu-tw.org/(台灣官網)
步驟
- 首先也是下載Ubuntu光碟映像檔在這裡我們也以 ubuntu-10.04-desktop-i386.iso作範例。
- 將映像檔放到一個磁槽的根目錄裡。
- 接下來的步驟我們要依照開機程式版本不同而有所不同
GRUB
- 將光碟映像檔裡面的/casper/initrd.lz和/casper/vmlinuz兩個檔案複製到一個磁槽的根目錄裡。
- 在終端機裡面輸入 sudo gedit /boot/grub/menu.lst 然後會開啟一個檔案,在最下方加入以下文字
- 重開機就會看到新的開機選項「Install Ubuntu」,選取它開始安裝。
title Install Ubuntu
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-i386.iso
initrd /initrd.lz
GRUB2
- GRUB2不用把initrd.lz和vmlinuz複製出來,可以直接讀取映像檔裡的檔案。
- 在終端機裡面輸入 sudo gedit /etc/default/grub 然後將其中的相同文字修改成下面的文字,下面文字意思開機選單要停留10秒才會離開。
GRUB_HIDDEN_TIMEOUT=10
- 在終端機裡面輸入 sudo gedit /boot/grub/grub.cfg 然後會開啟一個檔案,在最下方加入以下文字
- 重開機就會看到新的開機選項「Install Ubuntu」,選取它開始安裝。
menuentry “Install Ubuntu” {
loopback loop (hd0,0)/ubuntu-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-desktop-i386.iso
initrd (loop)/casper/initrd.lz
}
注意事項
- 不要把映像檔放在即將被格式化的磁區裡。
- 以上所說的(hd0,0)只是個範例,請依照實際情況來填寫。
- 以上說檔案該放到跟目錄裡,只是為了方便。如果想要放到其他資料夾裡也是可以,只要對應的路徑要變動。
- 在進入到LiveCD裡後,在點選桌面的安裝之前,必須先卸除isodevice,所以請到終端機下以下指令
- 此文章中,修改Grub2的方法不算是正規的,不過這方法倒是比較快速好用XD,正規操作方法是先在/etc/grub.d資料夾裡新增腳本,然後再用sudo update-grub指令,更新Grub2開機選單。因為這個方法有點麻煩,所以只大略做個範例。首先在/etc/grub.d下新增腳本並命名其檔名(例如:50_ubuntu_lucid ),腳本內容範例如下,寫完後在執行sudo update-grub指令。
echo “Adding $(egrep menu[e]ntry $0 | cut -d'”‘ -f2)” >&2
cat << EOF
menuentry “Install Ubuntu” {
loopback loop (hd0,0)/ubuntu-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-desktop-i386.iso
initrd (loop)/casper/initrd.lz
}
sudo umount -l /isodevice
如何確定ISO位置
事實上,GRUB和填寫(hdx,x)是硬碟安裝的關鍵問題,解決了這2個問題,硬碟安裝Ubuntu就成功了一半!我們可以使用fdisk指令來查詢本機硬碟分區狀態,首先下指令
sudo fdisk -l
接著根據顯示出的文字來判斷,假設ISO所在地是/dev/sda1,那麼通常GRUB表示就是(hd0,0);如果是/dev/sda2,那麼通常是(hd0,1) 。如果真的不確定,我們可以在GRUB選單裡,選到「Install Ubuntu」然後按鍵盤e,就會進入編輯模式,然後在填(hdX,X)時,填到一半,例如填到(hd,此時我們可以按鍵盤Tab建,他會出現可以填的選項,根據這些選擇一個一個試,也是可以找到位置的。
最後
關於磁碟磁區和GRUB的部分,實在是有點複雜,如果看不太懂,建議上網多查詢其他文章,多看其他例子,如果還是不懂再發問,因為這樣才比較能夠融會貫通(事實上是因為自己也不太了解,會被問倒啦= =a||)。