-
Notifications
You must be signed in to change notification settings - Fork 1
Ubuntu live cd
First of all we have to prepare our PXE server using one of these bootloaders
We also need to configure it as a nfs server.
If you prefer to create your own, see here.
Download a ubuntu live image from here.
wget -c http://releases.ubuntu.com/18.04.4/ubuntu-18.04.4-desktop-amd64.iso
Once downloaded, create a directory to mount the iso file and mount it. Then create a new folder inside the tftp-root and copy all the needed files there.
mkdir -p /home/tftp/livecds/ubuntu/iso
mount ubuntu-18.04.4-desktop-amd64.iso /home/tftp/livecds/ubuntu/iso
cp -r /home/tftp/livecds/ubuntu/iso/casper /home/tftp/livecds/ubuntu/
This will copy some files, filesystem.manifest filesystem.manifest-minimal-remove filesystem.manifest-remove filesystem.size filesystem.squashfs filesystem.squashfs.gpg initrd vmlinuz
We just need vmlinuz, initrd.img and filesystem.squashfs. The last one must be inside /home/tftp/livecds/ubuntu/casper folder. We will move the others.
mv /home/tftp/livecds/ubuntu/casper/vmlinuz /home/tftp/livecds/ubuntu/vmlinuz
mv /home/tftp/livecds/ubuntu/casper/initrd /home/tftp/livecds/ubuntu/initrd
nano /home/tftp/syslinux/bios/pxelinux.cfg/default
label Ubuntu live
menu clear
kernel /livecds/ubuntu/vmlinuz
initrd /livecds/ubuntu/initrd
append panic=10 ro boot=casper netboot=nfs root=/dev/nfs nfsroot=192.168.1.54:/home/tftp/livecds/ubuntu swap
ipappend 2
Remember tha 192.168.1.54 is just an example. You must use the ip of your own nfs server. Last line (ipappend 2) is very important. When Ubuntu boots, it tries to get an ip address using dhcp, but as we are booting from pxe he already has one. With this line we are telling the system to keep it.
nano /home/tftp/grub/grub.cfg
menuentry "Ubuntu" {
set gfxpayload=keep
linux /livecds/ubuntu/vmlinuz panic=10 ro boot=casper netboot=nfs root=/dev/nfs nfsroot=192.168.1.65:/home/irudiak/tftp/livecds/ubuntu ksdevice=bootif
initrd /livecds/ubuntu/initrd.img
}
Remember tha 192.168.1.54 is just an example. You must use the ip of your own nfs server. Last part of the first command (ksdevice=bootif) is very important. When Ubuntu boots, it tries to get an ip address using dhcp, but as we are booting from pxe he already has one. With this line we are telling the system to keep it.
nano /home/tftp/default.ipxe
:ubuntulive
kernel /livecds/ubuntu/vmlinuz
initrd /livecds/ubuntu/initrd.img
imgargs vmlinuz initrd=initrd.img panic=10 ro boot=casper netboot=nfs root=/dev/nfs nfsroot=192.168.1.65:/home/irudiak/tftp/livecds/ubuntu ksdevice=bootif
boot ||
goto MENU
Remember tha 192.168.1.54 is just an example. You must use the ip of your own nfs server. Last part of the first command (ksdevice=bootif) is very important. When Ubuntu boots, it tries to get an ip address using dhcp, but as we are booting from pxe he already has one. With this line we are telling the system to keep it.