私は多くのフォーラム投稿を読みましたが、それでもPXEブートイメージファイルを読むことができません。
usb-image.ddは私の画像ファイルです。 USBスティックを使用する代わりに、PXEを使用してライブLinuxを起動したいと思います。
DEFAULT menu.c32
Prompt 0
timeout 300
MENU TITLE PXE Menu
LABEL memtest86
MENU LABEL Memtest86+ 5.01
KERNEL /memtest/memtest86+-5.01
LABEL Live Linux
MENU LABEL Live Linux test
KERNEL memdisk
APPEND initrd=/test/usb-image.dd
PXEメニューは機能していて、Memtest86 +を起動できますが、Live Linuxテストが失敗し、理由がわかりません。メニューは即座にリロードされます。
私はUbuntu 16.04 LTSを使用しています。
どうすればいいですか?
編集1:私のusb-image.ddに関する情報。
user@PXE-server:/var/lib/tftpboot/test$ fdisk -l usb-image.dd
Disk usb-image.dd: 3 GiB, 3270508544 bytes, 6387712 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 597F78FB-1090-4C9B-A779-1DC99DDAC259
Laite Start Loppu Sektorit Size Tyyppi
usb-image.dd1 2048 450559 448512 219M EFI System
usb-image.dd2 450560 6371327 5920768 2,8G Microsoft basic data
usb-image.dd3 6371328 6385663 14336 7M Linux filesystem
編集2:
メニューを無効にすると、エラーメッセージが表示されました。
Loading /test/usb-image.dd...failed: Bad file number
まず最初に、memdiskが実際にTFTPサーバーに存在し、クライアントに提供できることを確認します。それは魔法の呼び出しではありません、memdiskはsyslinuxの独立したコンポーネントです。
次に、この方法でISOをロードするには、通常、 memdiskカーネルに追加のパラメーターを渡す 、具体的には「iso」パラメーターと「raw」パラメーターも必要です。以下を試してください:
KERNEL memdisk
INITRD /test/usb-image.dd
APPEND iso raw
イメージがisohybridイメージ(おそらくUSBスティックからロードするためのもの)であり、したがってMBRがある場合は、おそらく ハードディスクとして扱う も可能です。
KERNEL memdisk
INITRD /test/usb-image.dd
APPEND harddisk
3番目に、TFTPは非常に非効率的であり、大きなファイル(Linux LiveUSBのイメージは確かにそうです)の提供を必ずしもサポートしない可能性があることを考慮してください。 TFTPサーバーでブロックサイズネゴシエーションがサポートされていない場合、32MBを超えるものは処理できません。これをサポートしていない実装、または古いバージョンの実装を使用している可能性があります。代わりに、pxelinuxを lpxelinux バリアントに置き換えることを検討してください。これは、HTTP経由での追加リソースのロードをサポートし、Webサーバーからカーネル/イメージファイルを提供します。かなり速くなります。
KERNEL http://webserver.mydomain/memdisk
INITRD http://webserver.mydomain/test/usb-image.dd
APPEND harddisk