上書きされたパーティション(変更の保存など)で起動可能なDebian Live OSを作成したいと思います。しかし、1つではなく複数のパーティションを作成したいと思います。 syslinuxをあるパーティションにインストールし、Debian OSライブイメージファイルを別のパーティションに、最後にオーバーレイパーティションを別のパーティションにインストールしたいと思います。これを達成するためにDebianの公式ページで助けを求めました。Debian オペレーティングシステムを起動するための USB 準備ガイドラインとsyslinuxドキュメント。私はsyslinuxコマンドを使用して起動メニューをインポートしてロードできます。vmlinuz-5.10.0-8-amd64sdb1のsyslinuxの同じフォルダ(ブートパーティション、つまり/mnt/sdb1/syslinux/vmlinuz-5.10.0-8-amd64)。ただし、sdb2にある2番目のパーティションをロードできません(例:/mnt/sdb2/live/initrd.img-5.10.0-8-amd64)sdb1のsyslinuxフォルダにあるmenu.cfgでこのコマンドを使用します。私がすることはここにしかありません。メニュー構成ファイル以下のファイル/dev/sdb1/syslinux/フォルダ:
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/sdb2そしてinitrd=/dev/sdb2/live/initrd.img-5.10.0-8-amd64動作しません。 **該当するファイルやディレクトリがありません**エラーが発生します。助けてください。なぜ動作しないのですか?どのように動作させることができますか?
答え1
これは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カスタムインストールには少し作業が必要です。