Мне нужно сделать аварийный загрузчик PXE для LIVECD (не маленький компакт-диск ubuntu netboot, а скорее настольный livecd для загрузки из командной строки). Будет ли это работать:
# Create a cpio archive of just the ISO and append it to the initrd image.
( echo "ubuntu-13.10-desktop-amd64.iso" | cpio -H newc --quiet -o ) | gzip -9 | cat ubuntu-13.10-desktop-amd64.iso_EXTRACTED/casper/initrd0.img - > tftpboot/initrd0.img
# Kernel image.
cp ubuntu-13.10-desktop-amd64.iso_EXTRACTED/isolinux/vmlinuz0 tftpboot/vmlinuz0
# pxelinux bootloader part:
LABEL pxeboot
KERNEL vmlinuz0
APPEND initrd=initrd0.img root=/ubuntu-13.10-desktop-amd64.iso rootfstype=iso9660 rootflags=loop
ONERROR LOCALBOOT 0
Что я делаю не так?
Эта конфигурация загружает все изображение через медленный протокол, такой как TFTP.
Попробуйте другой вариант, используя протокол NFS.
apt-get install nfs-kernel-server
mkdir /mnt/ubuntu
mount -o loop ubuntu-13.10-desktop-amd64.iso /mnt/ubuntu-desktop-cd
Поделиться через NFS
sudo nano /etc/exports
Добавить эту строку
/mnt/ubuntu-desktop-cd 192.168.0.0/24(ro,insecure,no_root_squash,async,no_subtree_check)
Запустить службу NFS
service nfs-kernel-server restart
В строке APPEND
заменить root
, rootfstype
и rootfstype
на:
netboot=nfs nfsroot=192.168.0.10:/mnt/ubuntu-desktop-cd
Примечание. : я использовал эти IP только в качестве примера.
192.168.0.10 - IP-адрес сервера NFS
192.168.0.0/24 - диапазон локальной сети.
См. https://help.ubuntu.com/community/Installation/LocalNet#A_variation:_Booting_the_.22Live_CD.22_image