Add a Linux client
Centos
Centos has been my Linux distro to go to for a while now, so it would only be fitting I'd start with this one.
Create a "Centos" folder under your already existing ..\boot\x64\Linux folder.
Mount your Centos-iso and copy everything to your ..\boot\x64\Linux\Centos folder.
Copy your boot files
To start off, we need to copy the kernel file and the ramdisk file to a place where our soon-to-be-linux-client can reach it. Without those 2 files, we cannot even begin installing Linux. The guide explains this for a few linux distros and if you follow it, you'll be able to do the network boot for the distros they cover via internet or when you manually add the repository. But as I said: I wanted nfs and the initial process automatically.
With Centos however, the kernel isn't called linux but vmlinuz and the ramdisk file is not called initrd.gz but initrd.img!
You'll find those 2 files somewhere in a subdirectory of your Centos folder. Copy them to your ..\boot\x64\Linux\Centos folder.
Share the Centos folder as an NFS-share
This is how my NFS-share looks like on my server. Change accordingly to your setup.
The NFS Advanced Sharing tab.
Check these settings as well.
And last, but certainly not least. Add anonymous logon to your Security tab, or else NTFS will trump all your other settings. Just read access is enough (which it should be given by default)
Change the default file
Now everything is in place to get your Centos going. We just need to edit our bootmenu with the correct parameters (see my copy paste below).
kernel /Linux/CentOS/vmlinuz : this refers to the smb-share of your WDS
APPEND method=nfs:wds:/CentOS initrd=/Linux/CentOs/initrd.img :and this is where we need NFS.
Tip: Using ^ in front of a character makes it so you can jump quickly to that item in your bootmenu.
DEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 300
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44 #20ffffff #00000000 none
MENU COLOR TITLE 0 #ffffffff #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU BACKGROUND MyMenuBackgroundPicture640x480.png
MENU TITLE PXE Boot Menu
#---
LABEL wds
MENU LABEL ^Windows Deployment Services
KERNEL pxeboot.0
#---
LABEL Abort
MENU LABEL ^AbortPXE
Kernel abortpxe.0
#---
LABEL local
MENU DEFAULT
MENU LABEL B^oot from Harddisk
LOCALBOOT 0
Type 0x80
#---
Label CentOs 7
menu label Centos 7 Install
kernel /Linux/CentOS/vmlinuz
APPEND method=nfs:wds:/CentOS initrd=/Linux/CentOs/initrd.img
Installation bug
I don't know what the origin of this bug is, but I do know how to fix it. Apparently your installer cannot find a few files. The names of the files he's trying to find are listed in TRANS.TBL . Just fix your file names via explorer accordingly and you'll be fine.
I'm not the only one with this problem and a crc-check came out clean, my iso wasn't corrupt.
There are quite a lot of faulty file names in there.
After this, you should be good to go!
OpenSuse
So I'm going to cover one more Linux distro. It practically is the same pattern as with Centos. So it's mostly going to be a copy paste
Create a "Opensuse" folder under your already existing ..\boot\x64\Linux folder.
Mount your Opensuse-iso and copy everything to your ..\boot\x64\Linux\Opensuse folder.
Copy your boot files
To start off, we need to copy the kernel file and the ramdisk file to a place where our soon-to-be-linux-client can reach it. Without those 2 files, we cannot even begin installing Linux. The guide explains this for a few linux distros and if you follow it, you'll be able to do the network boot for the distros they cover via internet or when you manually add the repository. But as I said: I wanted nfs and the initial process automatically.
With Opensuse the kernel is called linux but the ramdisk file is not called initrd.gz but initrd ! Just another small difference with Centos and the rest...
You'll find those 2 files somewhere in a subdirectory of your Centos folder. Copy them to your ..\boot\x64\Linux\Centos folder.
Share the Opensuse folder as an NFS-share
This is how my NFS-share looks like on my server. Change accordingly to your setup.
The NFS Advanced Sharing tab.
Check these settings as well.
And last, but certainly not least. Add anonymous logon to your Security tab, or else NTFS will trump all your other settings. Just read access is enough (which it should be given by default)
Change the default file
Now everything is in place to get your Opensuse going. We just need to edit our bootmenu with the correct parameters (see my copy paste below).
kernel /Linux/Opensuse/linux : this refers to the smb-share of your WDS
append root=/dev/nfs vga=0x314 initrd=/linux/OpenSuse/initrd showopts splash=silent install=nfs://WDS:/OpenSuse: and this is where we need NFS.
Tip: Using ^ in front of a character makes it so you can jump quickly to that item in your bootmenu.
DEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 300
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44 #20ffffff #00000000 none
MENU COLOR TITLE 0 #ffffffff #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU BACKGROUND MyMenuBackgroundPicture640x480.png
MENU TITLE PXE Boot Menu
#---
LABEL wds
MENU LABEL ^Windows Deployment Services
KERNEL pxeboot.0
#---
LABEL Abort
MENU LABEL ^AbortPXE
Kernel abortpxe.0
#---
LABEL local
MENU DEFAULT
MENU LABEL B^oot from Harddisk
LOCALBOOT 0
Type 0x80
#---
label Opensuse
menu label OpenSuse ^install
kernel /Linux/OpenSuse/linux
append root=/dev/nfs vga=0x314 initrd=/linux/OpenSuse/initrd showopts splash=silent install=nfs://WDS:/OpenSuse
You should be good to go! Obviously you can have multiple Linux OS deployed next to each other ;)
Other Linux distros
Figuring out the part where I had to change the bootmenu settings and enter the right parameters was the most difficult one. If you want to know the parameters for other Linux distro's, go to the official Ubuntu documentation
Last updated
Was this helpful?