我正在嘗試創建一個 Linux 啟動盤(由於尺寸小且只有終端接口,我選擇了 Fennix),現在啟動盤可以正常工作,它將我加載到 Linux 中,我可以安裝內部 HDD 等。在那裡,但我的選單透過ISOLINUX.CFG 工作,但我想將一個腳本附加到每個選單選項,該腳本會將2 個檔案從Live 磁碟複製到HDD,我正在努力讓選單啟動腳本init= 因為它似乎從未在磁碟上找到腳本文件(我不確定將它們放在哪裡才能訪問它們,嘗試了多個目錄)。
下面的選單選項範例
芬尼克斯標籤
菜單標籤安裝更新
文字幫助
將 2 個 ini 檔案複製到您的硬碟
結束文字
核心啟動/x86/linux init=copy1.bs
附加 initrd=boot/x86/initrd.xz vga=791 nomodeset 安靜
誰能給我指出正確的方向,告訴我如何在啟動後從 LiveCD 存取文件,以及如何在做出選擇後更新選單以存取這些腳本文件。
希望以上說得有道理,
謝謝!
答案1
在 中isolinux.cfg
,引導選項位於 APPEND 行,而不是 KERNEL 行。所以你init=copy1.bs
應該去 APPEND 行。
如果您使用該init=
選項,則表示將您的 shell 腳本作為進程 #1 運行:而不是使用多個虛擬控制台等設定常規環境,它只會運行該腳本...一旦該腳本退出,核心將由於進程#1 死亡,出現恐慌(=崩潰)。
根據 Finnix initrd 檔案的特定建置方式,使用該init=
選項也可能會在需要複製 Finnix 啟動腳本的部分或全部功能才能實際執行任何有用操作的情況下啟動腳本。
您可能想要發明自己的自訂啟動參數。即使核心不知道啟動參數,它們也會出現/proc/cmdline
,您只需建立一個啟動腳本來讀取/proc/cmdline
,從那裡選擇您的自訂參數值,然後使用它在您選擇的位置執行另一個腳本。這種方法可能比使用標準參數更容易調試init=
。
Finnix 根檔案系統似乎位於該finnix/arch/x86/root.img
檔案內。我現在沒有時間完全分析它,但我猜想initrd.xz
設定 RAM 磁碟並加載其中的內容root.img
,以便在使用 Finnix 時可以彈出 CD。
要將腳本放入root.img
檔案中,您需要掛載映像檔(它是 squashfs 檔案系統映像),將內容複製到其他目錄,將您自己的檔案新增到其中,然後使用命令mksquashfs
(在squashfs-tools
套件中)建立新映像文件。