2018年7月27日 星期五

自製 Ubuntu 16.04.X/17.10/18.04.X/18.10 測試硬體安裝使用的 USB 隨身碟

與「自製 Ubuntu 13.04/12.10/12.04.2 與 Debian 7.0 測試硬體安裝使用的 USB 隨身碟」跟「自製 Ubuntu 16.04/16.04.1/16.04.2/16.10/17.04 測試硬體安裝使用的 USB 隨身碟」同樣的步驟只是改用 grub.cfg 這個設定檔。

隨身碟換成某年在 COSCUP 購買的 USB stick 紀念品,所以容量有 16GB 可以用,只是已經不想再不斷地修改 grub.cfg 所以改成自動偵測 vmlinuz 跟 initrd 的檔案名稱,然後會去掃 iso 目錄底下的所有 iso 檔,之後只要爽爽地將新的 iso 檔複製到 iso 目錄底下就會自動找到了,不用在因為新增或刪除 iso 檔而去修改 grub.cfg。

主要修改的部份如下:

for isofile in /iso/*.iso
do
    menuentry "試用 $isofile 免安裝 ($bios)" $isofile {
        loopback loop $2

        if [ -f (loop)/casper/vmlinuz ]; then
            set vmlinuz="(loop)/casper/vmlinuz"
        elif [ -f (loop)/casper/vmlinuz.efi ]; then
            set vmlinuz="(loop)/casper/vmlinuz.efi"
        fi

        if [ -f (loop)/casper/initrd ]; then
            set initrd="(loop)/casper/initrd"
        elif [ -f (loop)/casper/initrd.lz ]; then
            set initrd="(loop)/casper/initrd.lz"
        elif [ -f (loop)/casper/initrd.gz ]; then
            set initrd="(loop)/casper/initrd.gz"
        fi

        linux   $vmlinuz iso-scan/filename=$2 $options $desktop --- $extra
        initrd  $initrd
    }
done