Debian

如何將“root”更改為用於可啟動 USB 的 Debian 11 Live LXDE 映像的另一個分區?

  • March 27, 2022

我想創建一個帶有覆蓋分區的可啟動 Debian Live OS(即保存更改)。但我想創建多個分區,而不是一個。我想將 syslinux 安裝到一個分區,將 Debian OS-live Image 文件安裝到另一個分區,最後將分區覆蓋到另一個分區。為此,我閱讀了官方 Debian 頁面以獲取有關準備 USB 以啟動 Debian OS和 syslinux 文件的幫助描述。我使用了 syslinux 命令,我設法獲得了啟動菜單,我可以載入vmlinuz-5.10.0-8-amd64映像,因為我將它複製到與 sdb1 中的 syslinux 相同的文件夾中(啟動分區,即**/mnt/sdb1/syslinux/vmlinuz -5.10.0-8-amd64**)。但我無法載入位於 sdb2 中的 initrd.img 文件(第二個分區,即**/mnt/sdb2/live/initrd.img-5.10.0-8-amd64**)在 sdb1 的 syslinux 文件夾中的 menu.cfg 中使用此命令。我所做的是在**/dev/sdb1/syslinux/文件夾下的****menu.cfg**文件中:

 INCLUDE stdmenu.cfg
 MENU title Main Menu
 DEFAULT Debian GNU/Linux 64 bit
 LABEL Debian GNU/Linux 64 bit
    SAY "Booting Debian GNU/Linux Live (kernel 5.10.0-8-amd64)..."
    LINUX vmlinuz-5.10.0-8-amd64
    APPEND root=/dev/sdb2 fromhd=/dev/sdb initrd=/dev/sdb2/live/initrd.img-5.10.0-8-amd64 boot=live swap=true persistence persistence-storage=filesystem persistence-media=removable-usb union=overlay components locales=tr_TR.UTF-8 splash

結果是:

在此處輸入圖像描述

命令root=/dev/sdb2initrd=/dev/sdb2/live/initrd.img-5.10.0-8-amd64不起作用,它給出 ** No such file or directory ** 錯誤。請幫助,為什麼它沒有工作?我怎樣才能讓它工作?

當您使用 時APPEND,您只是在核心命令行中添加參數。但是對於現代核心,載入initrd.img文件是引導載入程序的工作,而不是核心的工作。GRUB 和 SYSLINUX 都initrd為此目的使用該命令。

由於歷史原因,Syslinux 理解initrd=上線的選項APPEND並專門處理。該行的所有其他選項APPEND都只是交給核心(和 initrd 腳本)進行處理。

但是 Syslinux 不知道 Linux 在啟動時將如何命名各種設備,而且在我看來 Syslinux 沒有辦法(至少沒有記錄的方式)來引用它目前啟動的設備以外的任何其他設備。

Loading vmlinuz-5.10.0-8-amd64... ok消息由 Syslinux 列印,就像下一行一樣。將 initrd 文件放在與核心文件不同的分區中意味著 Syslinux 根本無法訪問 initrd 文件。Syslinux 需要它的配置、核心和 initrd 文件都在同一個分區中。

現代版本的 GRUB 足夠靈活,可以做你想做的事,但這樣的 GRUB 自定義安裝需要做一些事情。

引用自:https://unix.stackexchange.com/questions/670468