感謝 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:
哈,不错,正准备用呢
Post a Comment