看板 Linux 關於我們 聯絡資訊
最近看到原來 syslinux 的 memdisk 能在 grub 裡運作, 也就能在 grub 裡用 memdisk 直接以光碟開機。 但我在 grub 的 shell 裡試著用指令載入 memdisk , 會卡在該光碟的開機畫面。 我下的指令如下: linux16 /boot/memdisk iso raw initrd16 /boot/iso/finnix-ckhung16c.iso boot 在載入 initrd 時有點久,之後也能開機到光碟, 可是進到光碟就不會動了, 方向鍵、游標、光碟的開機倒數也停在一開始。 但我用 qemu-system-x86_64 -hda /dev/sdb 測隨身碟上面的指令是能正常進到光碟的, 也不會畫面凍結在光碟開機的畫面。 會不會是筆電太新? memdisk 好像一段時間沒更新了, 他的 kernel 版本也有點舊。 但我的筆電是二年內的算新,是用 uefi 開機。 有人最近在 grub 下成功用 memdisk 從光碟檔開機成功的嗎? 不然可能要跳回 grub4dos 了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.252.152 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1547213329.A.D1A.html
kdjf: 以現在的環境來說,用grub+隨便找有isoboot的distro的kernel 01/11 23:18
kdjf: 直接chainload進去finnix的環境應該是比較快的 01/11 23:18
kdjf: mendisk可以成功帶表你可能也可以用grub2直接掛iso讀kernel 01/11 23:23
kdjf: 進去,剩下的找到rootfs都是自己initrd的事情 01/11 23:27
後來發現就算用 memdisk 還是會有問題, 多數發行版的光碟都會在啟動後去找光碟本身, 載入其它存在光碟的壓縮好的映像檔。 但因為是用光碟映像檔案,所以開機後就找不到光碟, 像 ubuntu finnix 都會卡在這一步。 部份有準備的發行版就會丟一個 busybox shell 給你, 告訴你找不到光碟,要你想辦法把光碟掛載到 /cdrom 下, 他才有辦法繼續開機。 用 grub2 是能直接掛載光碟,看到裡面的檔案系統, 但就要找出 kernel 和 initrd 放在光碟裡的哪裡, 手動載入開機。 且還是會有上面開機就後找不到光碟的問題。 後來回去用了以前用過的 easy2boot ,能解決這個問題。 他的作法是把隨身碟切成二個分割區, 第一個放 e2b 本身,第二個可能是用來模擬成光碟, 開機後 os 就會以為第二個分割是光碟? 詳細不清楚他是怎麼做的。 ※ 編輯: Gold740716 (140.116.252.152), 01/12/2019 11:03:12
kdjf: boot=casper iso-scan/filename=$isofile 其它請自己看完 01/12 13:12
kdjf: 不過這些只對debian/ubuntu系列用make-live出來的CD有效 01/12 13:20
這就是我覺得麻煩的地方,每個發行版的參數都不一樣, 還是直接燒成開機碟比較方便。 後來寫了個腳本可以把隨身碟燒成開機碟後, 還能還原原來的樣子。 https://github.com/GHolk/loco/blob/master/bin/flash-iso-recovery.sh ※ 編輯: Gold740716 (140.116.252.152), 01/12/2019 14:50:21
HamalAri: @kdjf: 如果只是要解 finnix 這很容易,可是 memdisk 為 01/12 16:27
HamalAri: 什麼會壞掉你有什麼比較深入見解嗎? 01/12 16:27
HamalAri: 我也常愈到 memdisk 掛 iso 在某些機器就是開不了 01/12 16:28
HamalAri: @Gold740716: 參數不一樣是一定的,因為 live cd 就是要 01/12 16:28
HamalAri: 在正常的 initramfs 裡塞一堆東西讓一般的系統可以變成 01/12 16:29
HamalAri: live ,這些東西全部都是各 distro 自已寫的 01/12 16:29
HamalAri: 並不是大家都想自已造輪子,而是 live 本來就是客製化 01/12 16:30
kdjf: 只支援uefi的機器是透過iso module模擬bios like環境給iso 01/13 15:17
kdjf: 你從uefi grub chainload memdisk還勉強OK,memdisk想直跳到 01/13 15:18
kdjf: iso執行,沒有bios compatible的環境自然死給你看 01/13 15:19
kdjf: 有的bios為了避免這樣的問題會不分青紅皂白讓所有的bios服務 01/13 15:20
kdjf: 都直接暴露出來,但畢竟是個未定義的東西,用了死掉不奇怪 01/13 15:21
kdjf: 上面的iso是指cdrom才對 01/13 15:22
看不太懂。 是因為 memdisk 開光碟是在已經開機完的狀態, 要再回到 bios ,但原本機器的 bios 是模擬出來的, 只有在開機時存在,所以失敗嗎? ※ 編輯: Gold740716 (140.116.252.152), 01/13/2019 23:12:06
kdjf: uefi是一套全新的韌體,bios是舊的韌體,提供不同的abi 01/14 09:18