硬碟安裝Ubuntu(免燒光碟,使用ISO檔案直接安裝)

昨天(4/29)才剛發佈最新版的Ubuntu 10.04 TLS,真是令人好想馬上安裝呀!但是Ubuntu每六個月發佈一次新版,更新速度可以說是非常快,要是每次都燒成光碟,那光碟恐怕是堆成山了吧!太不環保了,何不試試直接從硬碟裡的iso光碟映像檔直接安裝呢?既環保又快速(硬碟讀取速度快於光碟)。

想要從ISO光碟映像檔直接開機,可以透過GRUB開機程式來實現。

已安裝Windows

在這裡我們以Windows XP作例子。

所需準備材料

步驟

  1. 下載Ubuntu光碟映像檔不用說,大家都知道,在這裡我們以 ubuntu-10.04-desktop-i386.iso作範例。
  2. 將光碟映像檔移到C:
  3. 將光碟映像檔裡面的/casper/initrd.lz和/casper/vmlinuz兩個檔案複製到C:
  4. 接著我們要下載Grub4dos,先到官網後,點選Downloads,然後選擇好一個版本後下載,我們以grub4dos-0.4.4.zip 作範例。
  5. 下載好後將此壓縮檔打開,將裡面其中一個檔名為「grldr」(請注意,此檔案沒有副檔名)解壓縮到C:
  6. 接著到控制台 → 系統 → 進階 → 啟動及修復 – [設定] → 編輯
  7. 此時會跳出一個筆記本,在最下面輸入「C:grldr=”Start GRUB”」,然後存檔。
  8. 另外自行在C:用筆記本新增一個檔案檔名命名為「menu.lst」,檔案裡面輸入以下文字

    title Install Ubuntu

    root (hd0,0)

    kernel /vmlinuz

    initrd /initrd.lz

  9. 重開機後, 於開機選單選擇 “Start GRUB” → “Install Ubuntu” 即可開始安裝

已安裝Ubuntu

所需準備材料

步驟

  1. 首先也是下載Ubuntu光碟映像檔在這裡我們也以 ubuntu-10.04-desktop-i386.iso作範例。
  2. 將映像檔放到一個磁槽的根目錄裡。
  3. 接下來的步驟我們要依照開機程式版本不同而有所不同

GRUB

  1. 將光碟映像檔裡面的/casper/initrd.lz和/casper/vmlinuz兩個檔案複製到一個磁槽的根目錄裡。
  2. 在終端機裡面輸入 sudo gedit /boot/grub/menu.lst 然後會開啟一個檔案,在最下方加入以下文字
  3. title Install Ubuntu
    root (hd0,0)
    kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-i386.iso
    initrd /initrd.lz

  4. 重開機就會看到新的開機選項「Install Ubuntu」,選取它開始安裝。

GRUB2

  1. GRUB2不用把initrd.lz和vmlinuz複製出來,可以直接讀取映像檔裡的檔案。
  2. 在終端機裡面輸入 sudo gedit /etc/default/grub 然後將其中的相同文字修改成下面的文字,下面文字意思開機選單要停留10秒才會離開。

    GRUB_HIDDEN_TIMEOUT=10

  3. 在終端機裡面輸入 sudo gedit /boot/grub/grub.cfg 然後會開啟一個檔案,在最下方加入以下文字
  4. 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
    }

  5. 重開機就會看到新的開機選項「Install Ubuntu」,選取它開始安裝。

注意事項

  1. 不要把映像檔放在即將被格式化的磁區裡。
  2. 以上所說的(hd0,0)只是個範例,請依照實際情況來填寫。
  3. 以上說檔案該放到跟目錄裡,只是為了方便。如果想要放到其他資料夾裡也是可以,只要對應的路徑要變動。
  4. 在進入到LiveCD裡後,在點選桌面的安裝之前,必須先卸除isodevice,所以請到終端機下以下指令
  5. sudo umount -l /isodevice

  6. 此文章中,修改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
    }

如何確定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||)。

文章分類:Linux, Windows, 作業系統|標籤:,

迴響已關閉