2013/06/06

製作多重 Ubuntu 開機 USB



感謝 4元 提供的這篇文章,裡頭描述了如何在同一支隨身碟放不同 Ubuntu 的版本來開機。可是因為小弟需要拿來開機的 ISO 除了眾多的 Ubuntu/Debian 外,還有很多 Ubuntu 系列的 ODM ISO,因此很需要一個 script 來幫我自動產生 grub.cfg。


準備工作


如果你的隨身碟超過 4G,請先分割它吧。舉例來說,小弟是用 16G 的隨身碟,分成了 2G 放 Ubuntu,14G 放 iso。如下

$ sudo fdisk -l /dev/sdc

Disk /dev/sdc: 16.7 GB, 16684941312 bytes
64 heads, 32 sectors/track, 15912 cylinders, total 32587776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8612adfe

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     4196351     2097152   83  Linux
/dev/sdc2         4196352    32587775    14195712   83  Linux

接著

  • 格式化硬碟
  • 建立 Ubuntu 開機光碟
  • 安裝 grub 工具

我的測試環境是 Ubuntu 12.04.2,最後一行安裝 grub 的部分可能會有點不同喔

$ sudo mkfs.vfat /dev/sdc1
$ sudo mkfs.ext2 /dev/sdc2
$ usb-creator-gtk -n -i ubuntu-13.04-desktop-amd64.iso
$ sudo apt-get install grub-pc-bin grub-efi-amd64-bin
$ sudo grub-install --root-directory=/media/97C4-B559/ /dev/sdc


制作 grub.cfg


先準備一些 iso 複制到第 2 個 partitions

$ ls ubuntu-*
ubuntu-12.04.2-desktop-amd64.iso  ubuntu-12.10-desktop-amd64.iso
ubuntu-12.04-server-amd64.iso     ubuntu-13.04-desktop-amd64.iso
$ cp ubuntu-1* /media/e39b1707-7f5c-4d0d-a019-13cdfd86b20d/

把 script 抓下來,執行它,第一個參數是放 iso 的位置,第二個參數是放 grub.cfg 路徑

$ cd /media/e39b1707-7f5c-4d0d-a019-13cdfd86b20d/
$ wget https://raw.github.com/fcwu/sys_prog/master/mkgrub.sh
$ chmod +x mkgrub.sh
$ sudo ./mkgrub.sh ./ ../97C4-B559/boot/grub/grub.cfg
Creating grub.cfg template
Scanning ./
    creating boot entry for file .//ubuntu-12.04.2-desktop-amd64.iso...ok
    creating boot entry for file .//ubuntu-12.04-server-amd64.iso...ok
    creating boot entry for file .//ubuntu-12.10-desktop-amd64.iso...ok
    creating boot entry for file .//ubuntu-13.04-desktop-amd64.iso...ok

完成。請拿著 USB 去開機看看吧,結果如上圖。

1 comment:

isone said...

哈,不错,正准备用呢