├── .gitattributes ├── .gitignore ├── LICENSE ├── debian netboot setup.txt ├── readme.md ├── synology netboot setup.txt └── ubuntu netboot setup.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Chris Murray 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /debian netboot setup.txt: -------------------------------------------------------------------------------- 1 | cd /srv/tftp; sudo rm -rf * 2 | 3 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe 4 | 5 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.efi 6 | 7 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn 8 | 9 | sudo rm -rf netboot.tar.gz; sudo wget https://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/netboot.tar.gz; sudo tar -xvzf netboot.tar.gz; sudo rm -rf netboot.tar.gz 10 | 11 | sudo rm -rf netboot.tar.gz; sudo wget https://deb.debian.org/debian/dists/bookworm/main/installer-i386/current/images/netboot/netboot.tar.gz; sudo tar -xvzf netboot.tar.gz; sudo rm -rf netboot.tar.gz 12 | 13 | sudo rm -rf pxelinux.cfg; sudo cp -r ubuntu-installer/amd64/pxelinux.cfg pxelinux.cfg 14 | 15 | sudo rm pxelinux.cfg/default; sudo touch pxelinux.cfg/default; sudo nano pxelinux.cfg/default 16 | 17 | # D-I config version 2.0 18 | # search path for the c32 support libraries (libcom32, libutil etc.) 19 | path boot-screens/ 20 | include boot-screens/menu.cfg 21 | default boot-screens/vesamenu.c32 22 | prompt 0 23 | timeout 0 24 | 25 | sudo git clone https://github.com/chris18890/boot-screens.git 26 | 27 | sudo wget https://boot.netboot.xyz/memdisk 28 | 29 | sudo wget https://download.avg.com/filedir/inst/avg_arl_cdi_all_120_160420a12074.iso; sudo mkdir avg; sudo mv avg_arl_cdi_all_120_*.iso avg/avg_arl.iso 30 | 31 | sudo wget https://downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso; sudo mkdir dban; sudo mv dban-*.iso dban/dban.iso 32 | 33 | sudo wget https://boot.netboot.xyz/utils/memtest86-5.01.bin; sudo mkdir memtest; sudo mv memtest86-5.01.bin memtest/memtest 34 | 35 | sudo wget https://pogostick.net/~pnh/ntpasswd/cd140201.zip 36 | 37 | sudo unzip cd140201.zip; sudo mkdir pogostick; sudo mv cd140201.iso pogostick; sudo rm cd140201.zip 38 | 39 | sudo mkdir ubuntu-live/; cd ubuntu-live/ 40 | 41 | sudo wget https://releases.ubuntu.com/focal/ubuntu-20.04.6-desktop-amd64.iso; sudo mkdir focal; sudo mount -o loop ubuntu-20.04.6-desktop-amd64.iso focal 42 | 43 | sudo wget https://releases.ubuntu.com/jammy/ubuntu-22.04.5-desktop-amd64.iso; sudo mkdir jammy; sudo mount -o loop ubuntu-22.04.5-desktop-amd64.iso jammy 44 | 45 | sudo wget https://releases.ubuntu.com/noble/ubuntu-24.04.1-desktop-amd64.iso; sudo mkdir noble; sudo mount -o loop ubuntu-24.04.1-desktop-amd64.iso noble 46 | 47 | cd 48 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | PXE-Boot 2 | ======= 3 | 4 | repo containing scripts & commands to set up PXE booting on Ubuntu Server, Debian and 5 | Synology NAS devices. This project can chain boot into [netboot.xyz](https://netboot.xyz) 6 | 7 | Note - this project only works when booting in BIOS mode, it does not work when booting in UEFI mode 8 | 9 | - **Synology** assumes a root of `/volume1/pxe/` 10 | - A few manual steps to edit pxelinux.cfg/default & unzip files 11 | - Use [this Synology KB article](https://kb.synology.com/en-global/DSM/tutorial/How_to_implement_PXE_with_Synology_NAS) to set up the PXE/TFTP service 12 | - **Debian** assumes a root of `/srv/tftp` 13 | - One manual step to edit pxelinux.cfg/default 14 | - Use [this Debian wiki article](https://wiki.debian.org/PXEBootInstall#Set_up_TFTP_server) to set up the PXE/TFTP service 15 | - [This blog post](https://reintech.io/blog/setting-up-pxe-boot-server-debian-12) is also a good article 16 | - **Ubuntu** assumes a root of `/var/lib/tftpboot` 17 | - One manual step to edit pxelinux.cfg/default 18 | - Use [this Ubuntu article](https://ubuntu.com/server/docs/how-to-netboot-the-server-installer-on-amd64) to set up the PXE/TFTP service 19 | - [This blog post](https://reintech.io/blog/setting-up-pxe-boot-server-ubuntu-22) is a good article for Ubuntu 20 | - [This blog post](https://reintech.io/blog/configure-pxe-boot-server-ubuntu-2004) is also a good article Ubuntu 21 | 22 | See [Bootscreens repo](https://github.com/chris18890/boot-screens) for menu 23 | and display structure. 24 | -------------------------------------------------------------------------------- /synology netboot setup.txt: -------------------------------------------------------------------------------- 1 | cd /volume1/pxe; sudo rm -rf * 2 | 3 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe 4 | 5 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.efi 6 | 7 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn 8 | 9 | sudo rm -rf netboot.tar.gz; sudo wget https://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/netboot.tar.gz; sudo tar -xvzf netboot.tar.gz; sudo rm -rf netboot.tar.gz 10 | 11 | sudo rm -rf netboot.tar.gz; sudo wget https://deb.debian.org/debian/dists/bookworm/main/installer-i386/current/images/netboot/netboot.tar.gz; sudo tar -xvzf netboot.tar.gz; sudo rm -rf netboot.tar.gz 12 | 13 | sudo rm -rf pxelinux.cfg; sudo cp -r ubuntu-installer/amd64/pxelinux.cfg pxelinux.cfg 14 | 15 | sudo rm pxelinux.cfg/default; sudo touch pxelinux.cfg/default; sudo vim pxelinux.cfg/default 16 | 17 | # D-I config version 2.0 18 | # search path for the c32 support libraries (libcom32, libutil etc.) 19 | path boot-screens/ 20 | include boot-screens/menu.cfg 21 | default boot-screens/vesamenu.c32 22 | prompt 0 23 | timeout 0 24 | 25 | sudo wget https://github.com/chris18890/boot-screens/archive/main.zip; sudo 7z x main.zip; sudo mv boot-screens-main boot-screens; sudo rm main.zip 26 | 27 | sudo wget https://boot.netboot.xyz/memdisk 28 | 29 | sudo wget https://download.avg.com/filedir/inst/avg_arl_cdi_all_120_160420a12074.iso; sudo mkdir avg; sudo mv avg_arl_cdi_all_120_*.iso avg/avg_arl.iso 30 | 31 | sudo wget https://downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso; sudo mkdir dban; sudo mv dban-*.iso dban/dban.iso 32 | 33 | sudo wget https://boot.netboot.xyz/utils/memtest86-5.01.bin; sudo mkdir memtest; sudo mv memtest86-5.01.bin memtest/memtest 34 | 35 | sudo wget https://pogostick.net/~pnh/ntpasswd/cd140201.zip 36 | 37 | sudo 7z x cd140201.zip; sudo mkdir pogostick; sudo mv cd140201.iso pogostick; sudo rm cd140201.zip 38 | 39 | sudo mkdir ubuntu-live/; cd ubuntu-live/ 40 | 41 | sudo wget https://releases.ubuntu.com/focal/ubuntu-20.04.6-desktop-amd64.iso; sudo mkdir focal; sudo mount -o loop ubuntu-20.04.6-desktop-amd64.iso focal 42 | 43 | sudo wget https://releases.ubuntu.com/jammy/ubuntu-22.04.5-desktop-amd64.iso; sudo mkdir jammy; sudo mount -o loop ubuntu-22.04.5-desktop-amd64.iso jammy 44 | 45 | sudo wget https://releases.ubuntu.com/noble/ubuntu-24.04.1-desktop-amd64.iso; sudo mkdir noble; sudo mount -o loop ubuntu-24.04.1-desktop-amd64.iso noble 46 | 47 | cd 48 | -------------------------------------------------------------------------------- /ubuntu netboot setup.txt: -------------------------------------------------------------------------------- 1 | cd /var/lib/tftpboot; sudo rm -rf * 2 | 3 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe 4 | 5 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.efi 6 | 7 | sudo wget https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn 8 | 9 | sudo rm -rf netboot.tar.gz; sudo wget https://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/netboot.tar.gz; sudo tar -xvzf netboot.tar.gz; sudo rm -rf netboot.tar.gz 10 | 11 | sudo rm -rf netboot.tar.gz; sudo wget https://deb.debian.org/debian/dists/bookworm/main/installer-i386/current/images/netboot/netboot.tar.gz; sudo tar -xvzf netboot.tar.gz; sudo rm -rf netboot.tar.gz 12 | 13 | sudo rm -rf pxelinux.cfg; sudo cp -r ubuntu-installer/amd64/pxelinux.cfg pxelinux.cfg 14 | 15 | sudo rm pxelinux.cfg/default; sudo touch pxelinux.cfg/default; sudo nano pxelinux.cfg/default 16 | 17 | # D-I config version 2.0 18 | # search path for the c32 support libraries (libcom32, libutil etc.) 19 | path boot-screens/ 20 | include boot-screens/menu.cfg 21 | default boot-screens/vesamenu.c32 22 | prompt 0 23 | timeout 0 24 | 25 | sudo git clone https://github.com/chris18890/boot-screens.git 26 | 27 | sudo wget https://boot.netboot.xyz/memdisk 28 | 29 | sudo wget https://download.avg.com/filedir/inst/avg_arl_cdi_all_120_160420a12074.iso; sudo mkdir avg; sudo mv avg_arl_cdi_all_120_*.iso avg/avg_arl.iso 30 | 31 | sudo wget https://downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso; sudo mkdir dban; sudo mv dban-*.iso dban/dban.iso 32 | 33 | sudo wget https://boot.netboot.xyz/utils/memtest86-5.01.bin; sudo mkdir memtest; sudo mv memtest86-5.01.bin memtest/memtest 34 | 35 | sudo wget https://pogostick.net/~pnh/ntpasswd/cd140201.zip 36 | 37 | sudo unzip cd140201.zip; sudo mkdir pogostick; sudo mv cd140201.iso pogostick; sudo rm cd140201.zip 38 | 39 | sudo mkdir ubuntu-live/; cd ubuntu-live/ 40 | 41 | sudo wget https://releases.ubuntu.com/focal/ubuntu-20.04.6-desktop-amd64.iso; sudo mkdir focal; sudo mount -o loop ubuntu-20.04.6-desktop-amd64.iso focal 42 | 43 | sudo wget https://releases.ubuntu.com/jammy/ubuntu-22.04.5-desktop-amd64.iso; sudo mkdir jammy; sudo mount -o loop ubuntu-22.04.5-desktop-amd64.iso jammy 44 | 45 | sudo wget https://releases.ubuntu.com/noble/ubuntu-24.04.1-desktop-amd64.iso; sudo mkdir noble; sudo mount -o loop ubuntu-24.04.1-desktop-amd64.iso noble 46 | 47 | cd 48 | --------------------------------------------------------------------------------