Mk-boot-usb: [能夠自我繁衍的] 可開機隨身碟 製作速成
By HUNG Chao-Kuei on Sunday, March 9 2008, 11:12 - Permalink
(For English discussions, please go to this entry; française)
Mk-boot-usb 是一個用來製作可開機 usb 碟的小小 perl script。 您只需要決定要把 usb 碟切成幾塊, 各留多少空間, 它就會把整顆 usb 碟清空, 切成數個分割, 建立檔案系統, 安裝開機管理員 grub, 並安裝一個極小的 linux, 讓您的 usb 變成可開機隨身碟。 Mk-boot-usb 的目的是要讓製作可開機 usb 碟的程序變得極迅速簡便, 極易驗證。 之後如果您想安裝比較有用的 linux 版本, 只需要 (1) 把您所挑選的 Live CD 所有檔案全部拷貝到適切的分割 (2) 修改 grub 的設定檔, 就可以用了。 自從 08g 版開始, 它還具有自我複製的功能: 第一顆可開機隨身碟製作好之後, 灌入 mk-boot-usb, 就可以用它來複製更多相同的可開機隨身碟, 而這些隨身碟也就跟著都有自我複製功能!
試想: 下次您舉辦 linux 安裝大會之類的活動時, 將不再需要請與會者攜帶笨重的大電腦來; 只需要請他們帶 usb 碟來就夠了! 如果他們急著想現場驗證的話, 才需要帶筆記電腦來測試。
其實它的應用也不限 linux 安裝大會這種電腦玩家的活動。 只要十分鐘, 就可以現場向非技術聽眾展示製作可開機隨身碟! 比方說吧, 下次您在任何數/理/化/美/音/工教育軟體的研習場合 (對象不是電腦老師, 而是想用電腦融入教學的各學科老師) 甚至是 「資訊科技與人權」 這類完全非技術的演講場合, 不妨要求主辦單位公告, 請聽眾自備空白隨身碟。 如果您運氣好, 現場還可以有一位不太害怕命令列的助教幫忙, 那您在演講時, 他就可以當場為每一位聽眾製作可開機隨身碟。 如果是研習場合 (每位學員有電腦可用) 只要在研習結束前, 花十五分鐘介紹如何設定 BIOS 以改用用隨身碟開機就 ok 了。 再進一步請聽眾記得: 下次購買電腦時, 要帶著這個 usb 去店家測試。 這有兩個效果: (1) 確認買到支援 linux 的硬體 (2) 讓店員開開眼界。 又, 建議順便把 portable apps 或 U-Portable-Platform 也裝到隨身碟的第一主要分割區。
以後我的演講就要這麼做 :-) 這就是當初我寫 mk-boot-usb 的原始動機。 祝大家推廣快樂!
Comments
老師您好!小弟是平常偷偷潛水的大學生:P
這個script看起來真的滿有用的 我之前一直要製作LiveUSB都做不好XD(卡在loader的部份) 之後等有空來試試看這個!
洪老师,一直在关注您的博客。做得非常好,支持一下 :)
這支援列印嗎?!
似乎沒看到印表的solution
按照老師的 第八節 「還原成普通隨身碟」的方式操作 可以將隨身碟恢復成原來大小
[版主註: 是指 「救命碟 使用」 這一篇新增的一段。]
I've downloaded mk-boot-usb 0.9c version , and try to make 可開機隨身碟
under Ubuntu environment.
I am a newbie in Linux environment..在使用 mk-boot-usb 過程中出了點狀況
我把它解壓到桌面, so I have /usr/sbin/mk-boot-usb
I don't know how do execute it from Terminal ...I try "sudo" but maybe i got it wrong
anyway, 我最後是直接點兩下並讓他在 terminal 執行...It works perfectly.
Here, comes the problem ....after I insurt the usb-pen and "Enter"
it will return a lots lines of message ...but also I've notice this
/dev/sdb: 無法執行無權限之操作 ...how do I solve this problem ??
Jerry: 抱歉, 中文文件有點舊。 請參考 英文文件。 簡單說, 應先變身: sudo bash 然後 cd / ; tar xzf /完/整/路/徑/mk-boot-usb-09c.tgz
我已不太更新 mk-boot-usb ; 對於新手, 建議改用比較友善的 unetbootin (推薦 skybuffer 的教學文)
老師,
thanks for your help. now, I have a little trouble when testing the usb flash...I reckon something goes wrong in the following section. 希望老師可以指點我一下 ^^
=+=+= size of destination stick /dev/sdb: 984 MB
=+=+= partition 4 using 24 MB; 960 MB available for other partitions
=+=+= Type in a list of numbers separated by spaces representing
=+=+= the sizes of each partition in MB. For example:
=+=+= 660 60 240
=+=+= means 1 fat and 2 ext2 partitions, each of size 660, 60, 240 MB.
=+=+= Sizes: 600 60 300
=+=+= THESE FILES and ALL OTHER FILES on /dev/sdb will be destroyed!
=+=+= Press 'yes' to continue. Are you absolutely sure?yes
16065+0 records in
16065+0 records out
8225280 bytes (8.2 MB) copied, 1.76595 s, 4.7 MB/s
sh: cannot open /usr/share/mk-boot-usb//lilo.mbr: No such file [請 find /usr/share/mk-boot-usb -type f -ls 確認一下先前解壓縮 mk-boot-usb-09c.tgz 時, 所有檔案確實都有到位。 (跟 tar tvzf mk-boot-usb-09c.tgz 應該要看到同樣多的檔案)]
Disk /dev/sdb: 125 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type [不像是普通的隨身碟; 但應該沒有影響]
Old situation:
No partitions found
New situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 0+ 75 76- 610438+ c W95 FAT32 (LBA)
/dev/sdb2 76 121 46 369495 5 延伸的
/dev/sdb3 0 - 0 0 0 空
/dev/sdb4 * 122 124 3 24097+ 83 Linux
/dev/sdb5 76+ 83 8- 64228+ 83 Linux
/dev/sdb6 84+ 121 38- 305203+ 83 Linux
Successfully wrote the new partition table
Re-reading the partition table ...
=+=+= formatting /dev/sdb1 ...
mkdosfs 3.0.1 (23 Nov 2008)
=+=+= formatting /dev/sdb4 ...
=+=+= formatting /dev/sdb5 ...
=+=+= formatting /dev/sdb6 ...
=+=+= copying ttylinux and customized grub config files to /dev/sdb4 ...
cp: 無法建立目錄「/usr/share/mk-boot-usb//boot/」: 沒有此一檔案或目錄 [請 find /usr/share/mk-boot-usb -type f -ls 確認一下。]
=+=+= installing grub to /dev/sdb4 ...
Probing devices to guess BIOS drives. This may take a long time.
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
grub> Probing devices to guess BIOS drives. This may take a long time.
grub-probe: error: Cannot find a GRUB drive for /dev/sdb4. Check your device.map. [隨身碟的第四分割突然消失了?]
[: 494: =: unexpected operator [我的 perl 程式語法錯誤? 我在用 mk-boot-usb 時, 沒看過這樣的訊息...]
Installing GRUB to (hd1,3) as (hd1,3)...
Installation finished. No error reported.
This is the contents of the device map /tmp/mk-boot-usb/mnt/sdb4/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00369691 s, 138 kB/s
=+=+= If there was no error message and if qemu is installed in your system,
[qemu 視窗裡面的訊息, 是不是找不到開機磁區之類的?]=+=+= your may now type 'qemu -usb /dev/sdb' to test your bootable stick.
mooks@ubuntu:~$ sudo qenu -usb /dev/sdb
sudo: qenu: command not found
mooks@ubuntu:~$ sudo qemu -usb /dev/sdb
Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
老師 :
您好,我不是貴校的學生,但因曾接觸Linux,久聞洪老師是很用力的在推廣,很佩服老師的堅持。
我依照 https://www.cyut.edu.tw/~ckhung/b/s... 的網頁,處理一隻4G的隨身碟,但是在開機,模組也跑過後,出現了" use noagp to boot " 然後就不動了, 想請教老師,這是電腦的顯示卡問題嗎,應如何修改。
先謝謝老師。
This post's comments feed