把別的 live-cd 置入隨身碟 (如何修改 grub 開機選單 menu.lst)
Grub 選單的最重要選項
第四分割下的 boot/grub/menu.lst 是 grub 的選單。 以下是幾個常見的設定
default 2 timeout 10 splashimage=/boot/grub/gnu-tux-usb.xpm.gz
開機時若未手動選擇, 10
秒後將自動進入第二個選項。 選項從零數起。 第三句指定背景圖片。
想拿你喜歡的圖片當做開機畫面? 請看這裡。
例如到 這裡
取得圖片, 並用 gimp 加上 usb 姆指碟的相片, 存檔成 gnu-tux-usb.png。
然後安裝 ImageMagick 套件, 下指令: convert -resize 640x480
-colors 14 gnu-tux-usb.png gnu-tux-usb.xpm ; gzip
gnu-tux-usb.xpm
把 png 或其他圖檔轉成 grub 所需要的 xpm
格式, 並加以壓縮, 再放到適當位置。 最後在 menu.lst 裡面加上
splashimage=/boot/grub/gnu-tux-usb.xpm.gz 即可。
若要進一步研究 grub, 請參考 「動手學 grub」。
例: Ezgo7
在 isolinux/isolinux.cfg 裡面看到這段:
LABEL livemenu label ^Try Ubuntu without any change to your computerkernel /casper/vmlinuz1 append file=/cdrom/isolinux/preseed/ubuntu.seed boot=casper initrd=/casper/initrd1.img debian-installer/locale=zh_TW quiet splash --
其中的 append 及 initrd= 是 isolinux 的語法; 若要換成 grub 的 menu.lst, 就進行以下修改:
- 把 LABEL 改成 title; 後面的標題只是顯示用的字串, 可以隨意改。
- 把 menu 那一列刪掉。
- 把 initrd= 那一串獨立出來, 放到最後一列, 並且把等號改成空格。
- 把剩下的所有東西放在同一列, append 刪掉。
- 如果 "KERNEL" 是大寫, 還要將它改成小寫。
變成這樣:
title ezgo 7 kernel /casper/vmlinuz1 file=/cdrom/isolinux/preseed/ubuntu.seed boot=casper debian-installer/locale=zh_TW quiet splash -- initrd /casper/initrd1.img
當然, 這只是個起點。 如果測試正常, 還可以再增加更多選項。 例如原始的設定和光碟一樣: 不論你做任何修改, 關機後一律消失; 下次再開機時, 一切還原。 (除非你刻意將檔案存到指定的分割指定的目錄下。) 如果在 kernel 那一長串之後, 加上 "persistent", 則開機時 ubuntu 會去尋找一個具有 "casper-rw" label 的 ext2 分割, 或是一個名為 "casper-rw" 的 loopback device, 把它與唯讀的系統 "聯集" 起來, 這樣你的隨身碟才可正常讀寫。 詳見 LiveCD Persistence。
更多開機選項請搜尋 "ubuntu boot options" 及 "linux boot options" 。 例如遇到沒有驅動程式的顯示卡, 也許可以試試 xforcevesa 選項。
好幾個版本共用一個分割
有些版本的 live-cd 擺放的位置彈性很大, 不一定要獨自佔用一個分割。 例如想把 slax, dsl, 和 clonezilla 三個版本全部放在同一個分割 (假設是 /dev/sda17), 分別安置在各自的目錄 ( dsl-4.4.10/ slax-6.1.2/ clonezilla/ ) 裡面, 那麼你的 menu.lst 應該類似如下設定:
title DSL 4.4.10 kernel (hd0,16)/dsl-4.4.10/boot/isolinux/linux24 ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 nomce noapic quiet knoppix_dir=dsl-4.4.10/KNOPPIX BOOT_IMAGE=knoppix initrd (hd0,16)/dsl-4.4.10/boot/isolinux/minirt24.gz title slax 6.1.2 work space kernel (hd0,16)/slax-6.1.2/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4 from=/slax-6.1.2/ changes=/slax-6.1.2/slax/ initrd (hd0,16)/slax-6.1.2/boot/initrd.gz title Clonezilla live 1.2.7-11-i686 kernel (hd0,16)/clonezilla/live/vmlinuz boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" vga=788 ip=frommedia nosplash live-media-path=/clonezilla/live initrd (hd0,16)/clonezilla/live/initrd.img
也就是說: 除了指定 kernel 和 initrd 的位置時需要加上子目錄名稱之外, 每個不同版本的 live-cd 可能都還要另外用一兩個選項告訴開機程式系統檔案的位置改變了。 請用版本名稱加上 「boot options」 搜尋, 就可找到以下文件。
版本 | 需設定的選項 | 參考文件 |
---|---|---|
dsl | knoppix_dir=... | dsl cheat codes (可能也適用於整個 knoppix 系列) |
slax | from=..., changes=... | slax boot parameters |
clonezilla | live-media-path=... | Debian Live initramfs boot options (可能也適用整個 debian live 系列) |
將控制權交給另一個開機管理員
我的 eeepc 每次都從內建的 ssd 開機; 但我好寶貝它, 總是按 ESC 改從記憶卡開機, 因為記憶卡如果玩壞了, 換起來比內建 ssd 便宜簡單。 於是我在 ssd 的 grub 設定檔裡面加了這一段:
title sd card root (hd1) chainloader +1
(注意: root 那一句僅指定哪一顆碟, 不指定哪一個分割。) 並且把它設為預設開機選項。 這樣每次開機時, ssd 上的 grub 會自動將控制權交給 /dev/sdb4 (也就是記憶卡的開機分割) 不必再狂按 ESC 鍵。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/slax/menu.php; 您所看到的版本: October 02 2013 10:15:54.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。