Я прочитал много сообщений на форуме, но до сих пор не могу загружать файлы образа PXE.
usb-image.dd - это мой файл изображения. Вместо использования USB-накопителей я хотел бы загружать Linux в реальном времени с помощью PXE.
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", а часто и "сырые" параметры. Попробуйте следующее:
KERNEL memdisk
INITRD /test/usb-image.dd
APPEND iso raw
Если ваш образ представляет собой изогибридный образ (который, предположительно, предназначен для загрузки с USB-накопителя) и, следовательно, имеет MBR, вы, вероятно, можете относиться к нему как к жесткому диску, также:
KERNEL memdisk
INITRD /test/usb-image.dd
APPEND harddisk
В-третьих, учтите, что TFTP очень неэффективен и не обязательно поддерживает обслуживание больших файлов (что, безусловно, является вашим образом Linux LiveUSB). Если согласование размера блока не поддерживается вашим TFTP-сервером, он не может обслуживать ничего, превышающее 32 МБ - возможно, вы используете реализацию или старую версию реализации, которая не поддерживает это. Рассмотрите возможность замены pxelinux на lpxelinux вариант, который поддерживает загрузку дополнительных ресурсов через HTTP и обслуживает ваши файлы ядра / изображений с веб-сервера. Это будет значительно быстрее.
KERNEL http://webserver.mydomain/memdisk
INITRD http://webserver.mydomain/test/usb-image.dd
APPEND harddisk