Вопрос или проблема
У меня есть PXE загрузочный сервер на Linux Ubuntu, который должен обслуживать ISO образы Debian и Ubuntu. ISO образ Debian загружается на новое устройство без проблем, но возникает ошибка, когда я выбираю Ubuntu. Vmlinuz и initrd загружаются нормально, но в конце я получаю сообщение
Не удалось найти носитель с файловой системой live ubuntu
Это конфигурация файла “default”, который находится в /tftpboot/pxelinux.cfg/default
MENU TITLE PXE Boot Menu
LABEL Debian Net Boot
MENU LABEL Debian
KERNEL debian/install.amd/vmlinuz
APPEND initrd=debian/install.amd/initrd.gz
LABEL Ubuntu Server Minimal
MENU LABEL Ubuntu
KERNEL ubuntu/casper/vmlinuz
APPEND vga=788 initrd=ubuntu/casper/initrd
Структура каталогов выглядит следующим образом:
debian ldlinux.e64 libutil.c32 menu.c32 pxelinux.cfg syslinux.efi ubuntu
kuba@kuba-Virtual-Machine:/tftpboot$ cd ubuntu/
kuba@kuba-Virtual-Machine:/tftpboot/ubuntu$ ls
boot boot.catalog casper dists EFI install md5sum.txt pool
kuba@kuba-Virtual-Machine:/tftpboot/ubuntu$ cd casper/
kuba@kuba-Virtual-Machine:/tftpboot/ubuntu/casper$ ls
filesystem.manifest
filesystem.size
initrd
install-sources.yaml
ubuntu-server-minimal.manifest
ubuntu-server-minimal.size
ubuntu-server-minimal.squashfs
ubuntu-server-minimal.squashfs.gpg
ubuntu-server-minimal.ubuntu-server.installer.generic.manifest
ubuntu-server-minimal.ubuntu-server.installer.generic.size
ubuntu-server-minimal.ubuntu-server.installer.generic.squashfs
ubuntu-server-minimal.ubuntu-server.installer.generic.squashfs.gpg
ubuntu-server-minimal.ubuntu-server.installer.manifest
ubuntu-server-minimal.ubuntu-server.installer.size
ubuntu-server-minimal.ubuntu-server.installer.squashfs
ubuntu-server-minimal.ubuntu-server.installer.squashfs.gpg
ubuntu-server-minimal.ubuntu-server.manifest
ubuntu-server-minimal.ubuntu-server.size
ubuntu-server-minimal.ubuntu-server.squashfs
ubuntu-server-minimal.ubuntu-server.squashfs.gpg
vmlinuz
DHCP и TFTP работают так, как и должны. DHCP указывает на option bootfile-name "syslinux.efi";
Есть идеи, чего не хватает?
вставьте описание изображения здесь
Ответ или решение
Проблема, с которой вы столкнулись — сообщение об ошибке «Unable to find a medium containing a live file system» при загрузке через PXE для Ubuntu, может быть вызвана несколькими факторами. Давайте рассмотрим шаги по диагностике и решению этой проблемы.
1. Проверьте пути к файлам и их имена
Убедитесь, что конфигурация вашего файла default
, находящегося в директории /tftpboot/pxelinux.cfg/default
, правильно указывает на необходимые файлы. В частности, вам следует проверить, правильно ли указаны пути к vmlinuz
и initrd
.
Ваш текущий конфиг:
LABEL Ubuntu Server Minimal
MENU LABEL Ubuntu
KERNEL ubuntu/casper/vmlinuz
APPEND vga=788 initrd=ubuntu/casper/initrd
Путь к initrd
скорее всего неправильный. В вашем списке файлов ubuntu/casper
вы видите initrd
. Правильная строка должна быть:
APPEND vga=788 initrd=ubuntu/casper/initrd boot=casper netboot=nfs nfsroot=<IP-сервер>:/путь/к/вашему/образу
Имейте в виду, что может потребоваться указать параметр boot=casper
, чтобы указать загрузчику, что это загрузка с Live CD.
2. Убедитесь в наличии файловой системы
Ошибка может также возникать из-за отсутствия файловой системы, необходимой для работы Ubuntu Live. Убедитесь в наличии файла filesystem.squashfs
, который должен находиться в директории casper
. Этот файл содержит фактические пакеты для загрузки.
3. Проверьте конфигурацию DHCP сервера
Убедитесь, что ваша конфигурация DHCP настроена правильно. Проверьте, что вы указываете правильный option bootfile-name
и наличие настроек для PXE. Пример раствора конфигурации DHCP:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
option domain-name-servers 8.8.8.8;
option domain-name "example.com";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option bootfile-name "syslinux.efi";
filename "pxelinux.0"; # Используйте правильный загрузчик
next-server <IP вашего TFTP-сервера>;
}
4. Проверка отладочной информации
Запустите PXE-загрузку, и на этапе, где возникает ошибка, проверьте системные журналы для получения дополнительной информации об ошибке. Вам могут понадобиться логи TFTP-сервера или дополнительные средства отладки.
5. Подготовка ISO и директории
Убедитесь, что файлы ISO, которые вы используете, корректны и что вы правильно их извлекли. Проверьте целостность ISO-образа с помощью md5sum
или аналогичных средств. Возможно, имеет смысл пересоздать директорию ubuntu
с помощью метода, как rsync
, чтобы избежать потерь данных.
6. Обновление конфигурации
Если вы внесли изменения в конфигурацию, не забудьте перезагрузить службы DHCP и TFTP для применения изменений:
sudo systemctl restart isc-dhcp-server
sudo systemctl restart tftpd-hpa
Заключение
После выполнения всех вышеуказанных шагов попробуйте снова загрузиться. Если ошибка сохраняется, возможно, вам будет полезно загрузить более полные лог-файлы для получения дополнительной информации.