用 mbootu2 製作開機碟
一、 任意資料碟快速製作成開機碟
假設你的電腦已經用 阿貴版 finnix 開機。 你大約可以用每兩分鐘一支的速度, 以 mbootu2 指令 把自己的跟朋友的每一顆隨身碟都變成 finnix 開機碟。 這一節的指令不會傷害你的隨身碟 -- 所有資料會保留。
- 檢查電腦上有哪些硬碟/隨身碟:
fdisk -s /dev/sd? ; ls -l /dev/sd?
[空格跟大小寫請照打!] - 插入隨身碟。
- 再次檢查電腦上有哪些硬碟/隨身碟: 按上箭頭、 按 Enter, 重複剛才的指令。 特別注意多出來的那兩列, 確認一下電腦看到的隨身碟容量正確。 以下假設多出來的裝置叫做 /dev/sdz 。
- 賜給它生命!
mbootu2 -t /dev/sdz -f /cdrom
注意: 如果當初你的電腦是用隨身碟開機而不是用光碟開機, 那應該改成mbootu2 -t /dev/sdz -f /cdrom/finnix-ckhung16c
之類的, 總之那個目錄底下要看到有 md5sums 及 isolinux.* 等等檔案才對。 - 拔掉隨身碟。
- 關機收工:
shutdown -h now
對, 其實重點只有第四步那一句。 如果有很多顆要做, 重複第四、五兩步即可。
二、 空白隨身碟安裝 lubuntu
假設你的電腦已經用 阿貴版 finnix 開機。 如果你有一顆 8G 或更大的空白隨身碟、 如果你可以耐心地等待 20 到 40 分鐘、 而且如果你的電腦的硬碟裡已經有老師製作好的 lubuntu 系統檔 (lab*.fsa) 那麼你可以用這一節的指令製作 lubuntu 開機碟。 如果隨身碟原先不是空白的也沒關係 -- 這一節的指令會把你的隨身碟整顆燒毀抹光砍掉重練! 以下假設你的隨身碟叫做 /dev/sdz; 你的系統檔放在 /dev/sda99 裡面的 /abc/pqr/lab172-c.fsa 。
- 非必須: 按 ctrl-alt-f2 切換到 2 號
virtual terminal 虛擬終端機,
打
w3m https://www.cyut.edu.tw/~ckhung/c/mbootu2.php
查看本頁面。 中文變亂碼沒關係, 等一下可以剪貼指令就夠了。 再按 ctrl-alt-f1 切換回 1 號 vt。 - 檢查隨身碟上既有的檔案, 確認可以燒毀沒關係:
mount /dev/sda1 ; ls -l /media/sda1 ; umount /dev/sda1
- 以唯讀方式掛載存放 lab*.fsa 的硬碟分割:
mount -o ro /dev/sda99
- 先想好你要給 linux 多少空間, 例如 7168 MB (至少 6000 MB; 不太需要超過 12000 MB)。
- 燒毀重練、 賜給它新生命!
mbootu2 -t /dev/sdz -f /cdrom -z 7168
注意: 如果當初你的電腦是用隨身碟開機而不是用光碟開機, 請見上一節的說明。 - 確認 /dev/sdz5 沒有掛載:
df
; 萬一有的話, 先卸載:umount /dev/sdz5
- 安裝 lubuntu:
fsarchiver restfs /media/sda99/abc/pqr/lab172-c.fsa id=0,dest=/dev/sdz5
[打指令或檔案名稱時, 請善用 tab 鍵的 completion 功能。] - 等... 等... 等... (usb 2.0 的隨身碟: 大約 20 到 40 分鐘)
- 告訴 boot loader 要從哪裡載入 lubuntu:
(需要知 /dev/sdz5 的 UUID, 還需要把最重要的兩個檔案
vmlinuz 跟 initrd 搬到跟 boot loader 放在同一個分割裡。
df mount /dev/sdz1 ; mount /dev/sdz5 df ls /media/sdz1 /media/sdz5 mkdir /media/sdz1/boot/lubuntu-16.04 cd /media/sdz5 cp vmlinuz initrd.img /media/sdz1/boot/lubuntu-16.04 blkid /dev/sdz5 nano /media/sdz1/boot/syslinux/extlinux.conf
做適當修改 (見下文)、 存檔, 然後繼續:cd ~ umount /dev/sdz1 /dev/sdz5
- 重新開機, 測試!
reboot
上面所謂的 「適當修改」: 在開機設定檔 extlinux.conf 裡面, 把 debian 7.8 那一整段改掉, 改成如下:
label lubuntu-16.04 menu label lubuntu-16.04 from ckhung kernel /boot/lubuntu-16.04/vmlinuz append initrd=/boot/lubuntu-16.04/initrd.img root=UUID=01234567-89ab-cdef-fedc-ba9876543210
其中 UUID 後面那串十六進位數字請改成
blkid /dev/sdz5
看到的數值。
另外, 最上面的 default finnix-ckhung16c
請改成 default lubuntu-16.04
。
三、 也可以在虛擬機裡面製作
因為用 fsarchiver 在解壓縮時要等很久, 如果電腦被綁住、 什麼事都不能做, 也很討厭。 其實可以用 qemu-kvm 開虛擬機的方式來執行上述步驟。 有幾個地方需要特別注意:
- 如果你把隨身碟丟給 kvm 當成虛擬機的主要硬碟,
那麼在虛擬機裡面會把隨身碟當成 /dev/sda。
mbootu2 預設拒絕處理 /dev/sda。
這時你需要再加上
-o force_sda
參數, 強迫它照樣安裝。 - 要啟動虛擬機之前, 都一定要先確認隨身碟已從實體機卸載下來, 以免兩者衝突。