Я пытался получить Ubuntu 20.04 для загрузки PXE и столкнулся с аналогичной проблемой, как и другие здесь. Я нашел несколько решений, которые включают добавление ip = dhcp
в строку добавления в файле pxelinux.cfg / default
, но он по-прежнему отказывается загружаться. Я включил и ошибку, и свое меню для справки. Любая помощь приветствуется.
(initramfs) DHCPOFFER of 10.0.0.25 from 10.0.0.1
DHCPREQUEST for 10.0.0.25 on enp0s3 to 255.255.255.255 port 67 (xid=0x6cb408a3)
DHCPACK of 10.0.0.25 from 10.0.0.1 (xid=0xa308b46c)
bound to 10.0.0.25 -- renewal in 2557 seconds.
Begin: Running /scripts/casper-premount ... done
done.
Begin: Trying to netboot from 10.0.0.9:/netboot/ubuntu/20.04/server ... Begin: Trying nfsmount -o nolock -o ro 10.0.0.9:/netboot/ubuntu/20.04/server /cdrom ... done.
Unable to find a live file system on the network.
И меню:
default vesamenu.c32
prompt 0
timeout 300
ONTIMEOUT 1
menu title ########## OS Deploy ##########
label 1
menu label ^1) Ubuntu 20.04 Server
kernel ubuntu/20.04/server/casper/vmlinuz
initrd ubuntu/20.04/server/casper/initrd
append ip=dhcp boot=nfs nfsroot=10.0.0.9:/netboot/ubuntu/20.04/server ro nosplash ---
Кажется, все работает правильно, пока не наступит время для initramfs смонтировать общий ресурс nfs (который экспортируется и доступен по сети), после чего он пытается смонтировать и не может так.
Кроме того, я могу ввести команду nfsmount, которую она выводит на стандартный вывод, и она отлично монтирует общий ресурс nfs, что позволяет мне просматривать общий ресурс, как я и ожидал.
Edit: Я добился некоторого прогресса. Неправильные установки nfsboot = nfs и boot = casper. nfsboot
не должен существовать, а boot = casper
должен быть boot = nfs
. Я редактировал оба из них в моем pxelinux.cfg / default
как здесь, так и на моем загрузочном сервере pxe.
Теперь я столкнулся с отдельной проблемой, когда в squashfs не удается смонтировать, как показано ниже:
[ 6.596619] /root/cdrom/casper/extras/modules.squashfs-generic: Can't open blockdev
mount: mounting /root/cdrom/casper/extras/modules.squashfs-generic on /root/usr/lib/modules failed: Invalid argument
mount: mounting /dev on /root/dev failed: no such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
done.
mount: mounting /run on /root/run failed: No such file or directory
run-init: can't execute '/sbin/init': No such file or directory
Target filesystem doesn't have requested /sbin/init.
run-init: can't execute '/sbin/init': No such file or directory
run-init: can't execute '/etc/init': No such file or directory
run-init: can't execute '/bin/init': No such file or directory
run-init: can't execute '/bin/sh': No such file or directory
run-init: can't execute '': No such file or directory
No init found. Try passing init= bootarg
Исходя из этого вывода журнала, я предполагаю, что основная причина - это строка, которая читает [6.596619] /root/cdrom/casper/extras/modules.squashfs-generic: Невозможно открыть blockdev
Эта строка сообщает мне, что squashfs не монтируется должным образом, и это вызывает все другие проблемы.Итак, у меня вопрос: как мне правильно смонтировать squashfs?
Я столкнулся с аналогичной проблемой, которая возникла из-за неполного копирования исходных файлов, в частности, отсутствовал скрытый каталог .disk
— см. https://bugs.launchpad.net/ubuntu/+source /ubiquity/+bug/1877618, а также отмечено здесь https://ubuntuforums.org/showthread.php?t=2444371&p=13963012#post13963012 - и было решено с помощью точки вместо * подстановочный знак при копировании: sudo cp -a /mnt/. /srv/nfs/ubu-20.04-mint-20-cinnamon
. Мой файл pxelinux.cfg/default
выглядит так:
default vesamenu.c32
label 2004
menu label ^Ubuntu 20.04 Linux Mint 20 Cinnamon
menu default
kernel ubu-20.04-mint-20-cinnamon/vmlinuz
append initrd=ubu-20.04-mint-20-cinnamon/initrd.lz nfsroot=192.168.178.100:/srv/nfs/ubu-20.04-mint-20-cinnamon ro netboot=nfs file=/cdrom/preseed/linuxmint.seed boot=casper ip=dhcp ---
I think it should it be vmlinuz
instead of vlinuz
in the KERNEL
directive, referencing the bundled virtual memory kernel, assuming you are using ubuntu-20.04-live-server-amd64.iso.