Ранее я настроил PXE-загрузку Ubuntu LiveCD с помощью извлечения ISO-образа в монтирование NFS и копирования vmlinuz.efi и initrd.gz из casper в каталог tftpboot с помощью некоторой магии сценариев iPXE.
Это работало безупречно для 16.04, 16.10 и 17.10 (хитрый).
С 18.04 я впервые обнаружил, что vmlinuz.efi больше не существует в Каспере, но vmlinuz делает. Итак, я пытаюсь снова с некоторым изменением имени ...
И теперь он все еще не завершает загрузку. Я получаю «аварийный режим». Печатание в 'journalctl -xb' (как подсказывает подсказка аварийного режима) и просмотр приводит к следующему:
Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.
Помогите!
Добавлено 2018-04-30:
Код сценария, используемый для извлечения ISO для монтирования PXE (TARGET установлен на имя образа, например, bionic):
set -e
# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET
# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET
# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET
# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.
# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.
Ответы:
Я работал над этой проблемой в iPXE, следуя совету "Woodrow Shen" на трекере ошибок Launchpad .
В основном я адаптировал нашу старую запись для Ubuntu 16.04.3:
Чтобы выглядеть так для Ubuntu 18.04:
обратите внимание на следующие изменения:
vmlinuz.efi
чтобы бытьvmlinux
в строках 4 и 6toram
опцию в строку 6nfs_path
соответствии с расположением нового экстракта ISOобратите внимание, что, как указано на Launchpad, эта
toram
опция требует дополнительной оперативной памяти. В моем тестировании мне нужно было убедиться, что на моих виртуальных машинах выделено 4 ГБ ОЗУОбратите внимание, что это также работает как для нашей EFI, так и для устаревших систем BIOS.
источник
toram
вариант работал для меня с мятой 19!toram
и позволяет загружать компьютер с гораздо меньшим объемом оперативной памяти: измените конец строки 6 наip=dhcp systemd.mask=tmp.mount ro -- || read void
После выходных я обнаружил ошибку, описывающую мои точные симптомы (и предоставил интерактивное решение).
https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1755863
Видимо я буду ждать 18.04.1. По крайней мере, теперь я знаю, что я не (полностью) сумасшедший!
источник
Обновление ниже - не используйте live iso, используйте традиционный, который может быть загружен PXE точно так же, как я делал раньше
для Ubuntu 14.04 и 16.04 я просто монтировал по шлейфу полный ISO-диск DVD сервера, чтобы он был доступен через веб-сервер, и настраивал загрузку PXE обычным способом (копировал ядро и initrd в демон tftp, опция DHCP next-server DHCP) , pxe меню и т. д.).
у нас есть процесс кикстарта для полной автоматизации развертывания узлов.
это просто не работает с 18.04, в каталоге установки не было ядра, а также в каталоге install / netboot / ubuntu-installer / amd64! Я попробовал ядро и initrd из каталога casper, но это тоже бесполезно. Я взял netinstall DVD iso и использовал ядро и initrd из этого. Он фактически запускает текстовый установщик, но настаивает, что в зеркале отсутствует файл, но журнал с моего http-сервера не дает никаких 404-х!
В целом, я чувствую, что ISO-образ сервера Ubuntu 18.04 - это шаг назад для людей, желающих выполнить автоматическую установку.
Я также попытался добавить это в кикстарт
preseed live-installer / net-image string http: //myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs
что-то вроде того, что я должен был сделать, чтобы сделать загрузку Ubuntu 14.04 PXE автоматизированной
источник