USBメディアから起動し、syslinux EFIを使用して起動しました。
2台の異なるラップトップで同じメディアを起動しており、syslinux.cfgにはラップトップごとに1つずつ2つのメニューオプションがあります。
現時点では、各ノートブックに適したメニューオプションを手動で選択する必要があります。
syslinux
これを自動化し、起動しているノートブックを自動的に識別する方法はありますか?たぶん、一意のハードウェア識別子に基づいていたかもしれません。
どうすればいいですか?
これは私のものですEFI/BOOT/syslinux.cfg
:
DEFAULT menu.c32
PROMPT 0
MENU TITLE UEFI boot menu
MENU AUTOBOOT Booting AAA in # seconds
LABEL AAA
MENU LABEL AAA
KERNEL menu.c32
APPEND /AAA/menu
LABEL BBB
MENU LABEL BBB
KERNEL menu.c32
APPEND /BBB/menu
ファイルを/AAA/menu
ダウンロードして/BBB/menu
、各ノートブックに適した起動オプションを提供してください。
/AAA/menu
デフォルトでは、ノートブックAとノートブックBで自動起動が必要です。/BBB/menu
ベストアンサー1
私がアーチウィキで読んだことによると:協会
syslinuxextlinux
に付属のパッケージを使用してそれを2回チェーンロードすることは可能ですが、難しいと思います。syslinux
しかし、まだテストしていません。
複数の異なるコンピュータでこれを行う必要がある場合は、多くの作業が必要です。これは、10台の異なるコンピュータ、USBドライブに10の異なるパーティションが必要なためです。各パーティションにはカーネルとinitrdといくつかのsyslinuxファイルのコピーがあります。
すべてのノートブックにはESPブートパーティションが必要です。/dev/sda1
それ/dev/sdaX
以外の場合、この方法は機能しません。
進行方法は次のとおりです。
1.ノートブックAにextlinuxをインストールします。
ノートブックAでは、espブートパーティションが/ dev / sda1であるとします。
mkdir ./mntefi
sudo mount /dev/sda1 ./mntefi
sudo mkdir ./mntefi/boot
sudo mkdir ./mntefi/boot/syslinux
# install extlinux:
sudo extlinux -i ./mntefi/boot/syslinux/
# copy *.c32 files:
sudo cp /usr/lib/syslinux/bios/*.c32 ./mntefi/boot/syslinux
ファイルの作成./mntefi/boot/syslinux/syslinux.cfg
TIMEOUT 0
UI menu.c32
LABEL MAIN
COM32 chain.c32
APPEND hd1 3
このファイルは、ノートブックAのsyslinux.cfgを含むUSBドライブの3番目のパーティション(ノートブックAに内蔵ドライブが1つしかない場合はhd1)に接続されます。
2. USBドライブにパーティション3(/ dev / sdb3)を作成します。
パーティションは小さく、syslinux、カーネル、initrdのみを含めることができます。
3. USBドライブのパーティション3にextlinuxを取り付けます。
mkdir ./mnt3
sudo mount /dev/sdb3 ./mnt3
sudo mkdir ./mnt3/boot
sudo mkdir ./mnt3/boot/syslinux
# install extlinux:
sudo extlinux -i ./mnt3/boot/syslinux/
# copy *.c32 files:
sudo cp /usr/lib/syslinux/bios/*.c32 ./mnt3/boot/syslinux
ファイルの作成./mnt3/boot/syslinux/syslinux.cfg
DEFAULT menu.c32
PROMPT 0
MENU TITLE UEFI boot menu
MENU AUTOBOOT Booting AAA in # seconds
LABEL AAA
MENU LABEL AAA
KERNEL menu.c32
APPEND /AAA/menu
このファイルはノートブックAのメニューを表示します。メニューファイルはパーティション3のディレクトリにあります/AAA
。
メニューファイルのカーネルには次のパラメータが必要です。Linuxroot=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw
がインストールされているUSBドライブにあるパーティションのUUIDが必要です。
4. USB ドライブのマスター syslinux.cfg:
LinuxシステムがインストールされているUSBドライブの/ dev / sda2パーティションにあると想定してファイルを作成しますEFI/BOOT/syslinux.cfg
。
TIMEOUT 0
UI menu.c32
LABEL MAIN
COM32 chain.c32
APPEND hd0 1
このファイルは、ノートブック内部ドライブの最初のパーティションであると仮定し、ノートブック内部ドライブのespブートパーティションに接続されます。
これは常にノートブックの内部ドライブの最初のパーティションにあるsyslinuxに接続されます。
ただし、syslinuxは起動しているドライブから番号を付けることもできます。その場合は、hd1 1
代わりに接続する必要があります。hd0 1
5. 各ノートブックに対して手順 1、2、3 を繰り返します。
手順1では、syslinux.cfgを手順2で作成した新しいパーティションに接続する必要があります。