export PATH_LIVECD="/mnt/cdrom" export PATH_TEMP="/tftpboot/tmp" export PATH_TFTPROOT="/tftpboot"
mkdir -p ${PATH_LIVECD}
mkdir -p ${PATH_TEMP}
mkdir -p ${PATH_TEMP}/gentoo.init.dir
mkdir -p ${PATH_TFTPROOT}
mkdir -p ${PATH_TFTPROOT}/netboot
mkdir -p ${PATH_TFTPROOT}/netboot/pxelinux.cfg
mkdir -p ${PATH_TFTPROOT}/netboot/gentoo
emerge net-misc/dhcp
option domain-name "example.com";
option domain-name-servers 168.126.63.1, 168.126.63.2, 210.94.0.7, 164.124.101.2, 203.248.252.2, 210.181.1.24, 203.255.112.34;
default-lease-time 600;
max-lease-time 7200;
# <<< 이 부분 추가 >>>
allow booting;
allow bootp;
ddns-update-style none;
log-facility local7;
subnet 10.0.0.0 netmask 255.0.0.0 {
option broadcast-address 10.255.255.255;
option routers 10.0.0.1;
# <<< Booting 에 이용할 pxelinux.0의 위치 및 TFTP server IP주소 설정 >>>
filename "netboot/pxelinux.0";
next-server 10.0.0.1;
pool {
range 10.0.0.100 10.0.0.200;
allow unknown-clients;
}
# group {
# host bootp_client {
# hardware ethernet XX:XX:XX:XX:XX:XX;
# fixed-address 10.0.0.200;
# }
# }
}
emerge net-ftp/tftp-hpa
emerge sys-boot/syslinux
cp /usr/share/syslinux/pxelinux.0 ${PATH_TFTPROOT}/netboot
cp /usr/share/syslinux/memdisk ${PATH_TFTPROOT}/netboot
mount -o loop install-XX-minimal-XXXXXXXX.iso ${PATH_LIVECD}
cp ${PATH_LIVECD}/isolinux/gentoo ${PATH_TFTPROOT}/netboot/gentoo
cd ${PATH_TEMP}/gentoo.init.dir
gunzip -c ${PATH_LIVECD}/isolinux/gentoo.igz | cpio -idv
mkdir -p ${PATH_TEMP}/gentoo.init.dir/mnt/cdrom
cp ${PATH_LIVECD}/isolinux/image.squashfs ${PATH_TEMP}/gentoo.init.dir/mnt/cdrom
cp ${PATH_TEMP}/gentoo.init.dir/init ${PATH_TEMP}/gentoo.init.dir/init.org
-- if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ]
++ if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${REAL_ROOT}" != "/" ]
-- elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ]
++ elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ] || [ "${REAL_ROOT}" = "/" ]
-- cache_cd_contents
-- mount -t squashfs -o loop,ro ${NEW_ROOT}/mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd
++ mount -t squashfs -o loop,ro /mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd
cd ${PATH_TEMP}/gentoo.init.dir
find . -print | cpio -o -H newc |gzip -9 -c - > ${PATH_TFTPROOT}/netboot/gentoo/initrd.gz
default gentoo_x86 prompt 1 timeout 600 label gentoo_x86 kernel gentoo/gentoo append initrd=gentoo/initrd.gz ip=dhcp root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/ vga=normal dokeymap label local LOCALBOOT 0
SecureBoot-compatible UEFI netboot over IPv4 and IPv6
(https://wiki.ubuntu.com/UEFI/SecureBoot/PXE-IPv6)
Netbooting the server installer on amd64
(https://ubuntu.com/server/docs/install/netboot-amd64)
Netbooting the Live Server Installer via UEFI PXE on Arm (aarch64, arm64) and x86_64 (amd64)
(https://ubuntu.com/server/docs/install/netboot-arm64)
Setup PXE Boot Server using cloud-init for Ubuntu 20.04 [Step-by-Step
(https://www.golinuxcloud.com/pxe-boot-server-cloud-init-ubuntu-20-04/)]