把 OSSACC 的 ezgo 6 光碟做成可開機隨身碟
By HUNG Chao-Kuei on Wednesday, September 10 2008, 17:59 - Permalink
跟 Ubuntu 8.04 纏鬥一個暑假, 在開學前幾天, 終於找到一條比較理想的安裝至隨身碟的途徑。 (要有中文, 要有豐富的教育軟體, 要能新增套件。) [但不知為何, 讀寫頻繁, 所以後來 改推 slax]
* * * * *
- 用 mk-boot-usb 製作可開機隨身碟
- 把以下內容貼到第四分割的 /boot/grub/menu.lst
其中請注意: 因為我把光碟內容放到第五分割, 所以用 (hd0,4);
請視您的狀況略作修改。
title OSSACC ezgo 6 kernel (hd0,4)/casper/vmlinuz boot=casper quiet splash noprompt persistent initrd (hd0,4)/casper/initrd.gz
- 把 OSSACC 製作的 ezgo 6 光碟內容拷貝到隨身碟 (我放在第五分割)
- 下載 我修改過的 initrd.gz, 取代原來的 casper/initrd.gz
- 在第一分割上, 建一個名為 casper-rw 映象檔 (此例大小為 256MB),
作為日後可寫入的空間: (詳見 ubuntu 關於 persistence 的文件)
dd bs=1024 count=262144 /path/to/1st/part/casper-rw mkfs -t ext2 /path/to/1st/part/casper-rw # (回答 "y")
今天起, 演講場合改替聽眾安裝這個版本的 百毒不侵救命碟。
至於 initrd.gz, 修改了那些地方呢? 以下是我自己的筆記, 一般讀者可省略。
- 在 scripts/casper 當中, 搜尋 ",mode=755", 把這一整段去掉, 變成:
mount ${cowdevice} -t ${cow_fstype} -o rw,noatime /cow || mount -o loop ${cowdevice} /cow || panic "Can not mount $cowdevice on /cow"
- 在 scripts/casper-helpers 當中, 搜尋
",shortname=mixed,utf8,user,usefree" 把這一整段去掉, 變成:
try_mount "${devname}" "${snap_backing}" "ro"
這是如何找出來的呢? 在掉進 busy-box 之後, 會看到一個 casper.log 檔, 循著裡面提供的線索就會找到問題所在。