PXE завантаження 18.04 ISO


12

Раніше я налаштовував завантаження PXE Ubuntu LiveCDs, витягуючи ISO на кріплення NFS та копіюючи vmlinuz.efi та initrd.gz з каспера в каталог 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 встановлений на ім'я зображення, наприклад, біонічне):

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.

Це була "чиста" установка, тобто привід, на якому знаходиться ядро, був щойно відформатований? Або це поряд з / над іншою ОС?
Джонатан

1
Цільові машини, про які йде мова, не мають жорсткого диска і завантажують 18.04 робочий стіл LiveCD через мережеве завантаження. Попередньої конфігурації немає. Уявіть групу машин, які замість USB-ключів чи компакт-дисків для завантаження liveCD завантажують живий компакт-диск, використовуючи iPXE через мережу.
Джо Марлі

Відповіді:


7

Я працював над цією проблемою в iPXE, дотримуючись порад "Woodrow Shen" на тренері помилок Launchpad .

В основному я адаптував наш старий запис для ubuntu 16.04.3:

:deployUbuntu-x64-16.04.3
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-16.04.3
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz.efi || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz.efi initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet -- || read void
boot || read void

Щоб виглядати так для ubuntu 18.04:

:deployUbuntu-x64-18.04
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-18.04
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet toram -- || read void
boot || read void

відзначте наступні зміни:

  • перейменувати, vmlinuz.efiщоб бути vmlinuxна рядках 4 та 6
  • додати toramпараметр до рядка 6
  • очевидно, змінити, nfs_pathщоб відповідати розташуванню нового витягу ISO

зауважте, що, як зазначено на Launchpad, ця toramопція вимагає додаткової оперативної пам’яті. Під час тестування мені потрібно було забезпечити, щоб у моїх віртуальних машин було виділено 4 Гб оперативної пам’яті

Зауважте, що це також працює як для наших EFI, так і для застарілих систем BIOS.


1
Дякую, DrGecko - toramваріант працював для мене з м'ятою 19!
Брайан Сідеботам

Це працює і для lubuntu 18.04.1 (LTS), саме це мені і було потрібно. Дякую!
Джо Марлі

1
Є ще один варіант, який не вимагає toramі дозволяє завантажувати комп’ютер із значно меншою пам’яттю оперативної пам’яті: змінити кінець рядка 6 наip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomag Дякую вам, у мене є купа комп'ютерів з 2 Гб оперативної пам’яті. Тестується та працює на Ubuntu MATE 18.04.1 та Linux Mint 19.1, який має той самий випуск, оскільки він базується на Ubuntu 18.04.
Skylar

2

Після вихідних я знайшов повідомлення про помилку, що описує мої точні симптоми (і дає інтерактивне вирішення).

https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1755863

Мабуть, я буду чекати 18.04.1. Принаймні, я тепер знаю, що не (цілком) божевільний!


Я повинен був раніше натиснути на посилання - витратив досить багато часу на роздуми. Я використовував AIO Boot. Дякую.
Регмі

0

оновлення нижче - не використовуйте живий iso, використовуйте традиційний, який може бути завантажений PXE саме так, як я раніше


для ubuntu 14.04 та 16.04 я просто за допомогою циклу встановив повний DVD-сервер DVD ISO, щоб він був доступний через веб-сервер, і встановив завантаження PXE звичайним способом (скопіював ядро ​​та initrd у демон tftp, наступний сервер DHCP , pxe меню тощо).

у нас є процес швидкого запуску, щоб повністю автоматизувати розгортання вузлів.

це просто не працює з 18.04, не було ядра в каталозі установки, а також не було каталогу / install / netboot / ubuntu-installer / amd64! Тому я спробував ядро ​​та initrd з каталогу касперів, але це теж марно. Я схопив netinstall iso iso і використав з цього ядро ​​та initrd. Він фактично запускає програму встановлення тексту, але наполягає на тому, що в дзеркалі відсутній файл, але журнал з мого http-сервера не дає 404s!

В цілому, я вважаю, що сервер ubuntu 18.04 ISO - це ретроградний крок для людей, які хочуть робити автоматизовані установки.


Я також спробував додати це до моменту початку

попередньо встановлений живий інсталятор / net-image string http: //myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs

що дещо схоже на те, що мені довелося зробити, щоб зробити завантаження Ubuntu 14.04 PXE автоматизованим

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.