Difference between revisions of "WDSLINUX"

From Syslinux Wiki
Jump to: navigation, search
(How To Setup Windows Deployment Services with PXELinux)
m (layout updatet)
Line 2: Line 2:
  
 
=== Requirements ===
 
=== Requirements ===
* PXELinux - part of syslinux [[PXELINUX]] - [[Download]]
+
* PXELinux - part of syslinux [[PXELINUX]] - [[Download]]
* Windows Deployment Services already setup (setting up WDS is outside of the scope of this article)
+
* Windows Deployment Services already setup (setting up WDS is outside of the scope of this article)
  NOTE: $WDS-ROOT will reference the WDS root folder location in this case D:\RemoteInstall\
+
** NOTE: $WDS-ROOT will reference the WDS root folder location in this case D:\RemoteInstall\
  
 
== How To Setup Windows Deployment Services with PXELinux ==
 
== How To Setup Windows Deployment Services with PXELinux ==
* Download syslinux from http://www.kernel.org/pub/linux/utils/boot/syslinux/
+
* Download syslinux from http://www.kernel.org/pub/linux/utils/boot/syslinux/
* Extract core\pxelinux.0 com32\menu\vesamenu.c32 and com32\modules\chain.c32 from the syslinux download  
+
* Extract core\pxelinux.0 com32\menu\vesamenu.c32 and com32\modules\chain.c32 from the syslinux download and put it on your WDS server in $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\(substitute WDS-ROOT for where your WDS root folder is)
  and put it on your WDS server in $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\(substitue $WDS-ROOT for where your WDS root folder is)
+
* In the $WDS-ROOT\Boot\$ARCH folders Rename pxelinux.0 to pxelinux.com
* In the $WDS-ROOT\Boot\$ARCH folders Rename pxelinux.0 to pxelinux.com
+
* Create a folder named pxelinux.cfg (in the $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\ folder)
* Create a folder named pxelinux.cfg (in the $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\ folder)
+
* In the pxelinux.cfg folder create a text file named default and add the following to it (you can substitute MyMenuBackgroundPicture640x480.jpg for any image you want as your menu background)
* In the pxelinux.cfg folder create a text file named default and add the following to it  
+
  (you can substitute MyMenuBackgroundPicture640x480.jpg for any image you want as your menu background)
+
  
 +
<pre>
 
  DEFAULT      vesamenu.c32
 
  DEFAULT      vesamenu.c32
 
  PROMPT      0
 
  PROMPT      0
Line 45: Line 44:
 
  LOCALBOOT 0
 
  LOCALBOOT 0
 
  Type 0x80
 
  Type 0x80
 +
</pre>
  
 
+
* Make a copy of pxeboot.n12 and name it pxeboot.0
* Make a copy of pxeboot.n12 and name it pxeboot.0
+
* make a copy from abortpxe.com and rename it to abortpxe.0
* make a copy from abortpxe.com and rename it to abortpxe.0
+
* Create a folder named Linux (in the $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\ folder)  
* Create a folder named Linux (in the $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\ folder)  
+
** Open the Windows Deployment Services Console,  
* Open the Windows Deployment Services Console, Right Click on your Server and Select Properties,  
+
** Right Click on your Server and Select Properties,  
  From the Boot Tab change the default boot program for your architecute (x86 and x64 as well)  
+
** From the Boot Tab change the default boot program for your architecute (x86 and x64 as well) to Boot\x86\pxelinux.com and Boot\x64\pxelinux.com respectively
  to Boot\x86\pxelinux.com and Boot\x64\pxelinux.com respectively
+
** '''NOTE:''' In the WDS included in Windows Server 2008 R2 the UI has changed and you have to use the command line to set the the default boot program.  
  '''NOTE:''' In the WDS included in Windows Server 2008 R2 the UI has changed and you have to use the command line to set the the default boot program.  
+
** Thus to change the boot program to pxelinux.com, the wdsutil command line tool has to be used: (do this also for x64 if you have x64 clients also)  
  Thus to change the boot program to pxelinux.com, the wdsutil command line tool has to be used: (do this also for x64 if you have x64 clients also)  
+
*** wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86
    wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86
+
*** wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86  
    wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86  
+
* Now when you pxe boot a machine you will get your custom boot menu
* Now when you pxe boot a machine you will get your custom boot menu
+
  
 
== Adding Linux images to boot/install ==
 
== Adding Linux images to boot/install ==
  
 
=== Debian and Ubuntu ===
 
=== Debian and Ubuntu ===
* Download the netboot files (initrd.gz and linux) from a debain/ubuntu mirror
+
* Download the netboot files (initrd.gz and linux) from a debian/ubuntu mirror
Debian x86 files
+
** Debian x86 files
  http://ftp.nl.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/
+
*** http://ftp.nl.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/
Debian amd64 files
+
** Debian amd64 files
  http://ftp.nl.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/
+
*** http://ftp.nl.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/
Ubuntu x86 files
+
** Ubuntu x86 files
  http://ubuntu.virginmedia.com/archive/dists/karmic/main/installer-i386/current/images/netboot/ubuntu-installer/i386/
+
*** http://ubuntu.virginmedia.com/archive/dists/karmic/main/installer-i386/current/images/netboot/ubuntu-installer/i386/
Ubuntu amd64 files
+
** Ubuntu amd64 files
  http://ubuntu.virginmedia.com/archive/dists/karmic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/
+
*** http://ubuntu.virginmedia.com/archive/dists/karmic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/
* Create a folder on your WDS server under $WDS-ROOT\Boot\arch\Linux called Debian (or Ubuntu)
+
* Create a folder on your WDS server under $WDS-ROOT\Boot\arch\Linux called Debian (or Ubuntu)
* Copy the downloaded netboot files initrd.gz and linux to the new folder  
+
* Copy the downloaded netboot files initrd.gz and linux to the new folder  
* Create a menu entry at the end of the $WDS-ROOT\Boot\arch\pxelinux.cfg\default file  
+
* Create a menu entry at the end of the $WDS-ROOT\Boot\arch\pxelinux.cfg\default file (boot menu items for debian and ubuntu can be found in the download site under boot-screens in the text.cfg file)
  (boot menu items for debian and ubuntu can be found in the download site under boot-screens in the text.cfg file)
+
<pre>
 
+
 
  label debian5-0expert
 
  label debian5-0expert
 
  menu label ^Debian 5-0 Expert install:
 
  menu label ^Debian 5-0 Expert install:
Line 135: Line 133:
 
  kernel /linux/ubuntu/linux-amd64
 
  kernel /linux/ubuntu/linux-amd64
 
  append vga=normal initrd=/linux/ubuntu/initrd-amd64.gz rescue/enable=true -- quiet
 
  append vga=normal initrd=/linux/ubuntu/initrd-amd64.gz rescue/enable=true -- quiet
 +
</pre>
  
 
=== Gentoo ===
 
=== Gentoo ===
* Download the latest gentoo minimal install CD from a mirror
+
* Download the latest gentoo minimal install CD from a mirror
* Extract the files isolinux/gentoo isolinux/gentoo.igz image.squashfs from the iso to a temproy folder
+
* Extract the files isolinux/gentoo isolinux/gentoo.igz image.squashfs from the iso to a temporary folder
* Make a folder on the WDS server under $WDS-ROOT\Boot\arch\Linux called gentoo
+
* Make a folder on the WDS server under $WDS-ROOT\Boot\arch\Linux called gentoo
* Copy the extracted gentoo file to the $WDS-ROOT\Boot\arch\Linux\gentoo folder on the WDS server
+
* Copy the extracted gentoo file to the $WDS-ROOT\Boot\arch\Linux\gentoo folder on the WDS server
* Copy the extracted gentoo.igz and image.squashfs files to a temporary location on a linux machine (i.e. /root/tmp)
+
* Copy the extracted gentoo.igz and image.squashfs files to a temporary location on a linux machine (i.e. /root/tmp)
* In the /root/tmp location create a folder called gentoo and change into this directory
+
* In the /root/tmp location create a folder called gentoo and change into this directory
    mkdir /root/tmp/gentoo
+
**    mkdir /root/tmp/gentoo
    cd /root/tmp/gentoo
+
**    cd /root/tmp/gentoo
* Type the following command and press enter (this extracts all the files from the gentoo.igz file)
+
* Type the following command and press enter (this extracts all the files from the gentoo.igz file)
    gunzip -c ../gentoo.igz | cpio -idv  
+
**    gunzip -c ../gentoo.igz | cpio -idv  
* Make the follwing folders (in the extracted folder)
+
* Make the follwing folders (in the extracted folder)
    mkdir mnt
+
**    mkdir mnt
    mkdir mnt/cdrom  
+
**    mkdir mnt/cdrom  
* Copy the image.squashfs  to the new created mnt/cdrom folder
+
* Copy the image.squashfs  to the new created mnt/cdrom folder
    cp ../image.squashfs mnt/cdrom  
+
**    cp ../image.squashfs mnt/cdrom  
* Make a backup copy of the init file
+
* Make a backup copy of the init file
    cp init init.orig  
+
**    cp init init.orig  
* Edit the init file with the following modifications   
+
* Edit the init file with the following modifications   
 +
<pre>
 
     Change the line:
 
     Change the line:
 
       -- if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ]
 
       -- if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ]
Line 169: Line 169:
 
     To:
 
     To:
 
       ++ mount -t squashfs -o loop,ro /mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd     
 
       ++ mount -t squashfs -o loop,ro /mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd     
* Compress everything back into a file again by this typing the following and press enter
+
</pre>
    find . -print | cpio -o -H newc |gzip -9 -c - > ../gentoo.igz.new  
+
* Compress everything back into a file again by this typing the following and press enter
* Copy the new gentoo.igz.new to the $WDS-ROOT\Boot\arch\Linux\gentoo folder on the WDS server and name it gentoo.igz
+
**    find . -print | cpio -o -H newc |gzip -9 -c - > ../gentoo.igz.new  
* Create a menu entry at the end of the $WDS-ROOT\Boot\arch\pxelinux.cfg\default file  
+
* Copy the new gentoo.igz.new to the $WDS-ROOT\Boot\arch\Linux\gentoo folder on the WDS server and name it gentoo.igz
 
+
* Create a menu entry at the end of the $WDS-ROOT\Boot\arch\pxelinux.cfg\default file  
 +
<pre>
 
  LABEL gentoo2008-x86
 
  LABEL gentoo2008-x86
 
  MENU LABEL Deploy Gentoo 32 bit
 
  MENU LABEL Deploy Gentoo 32 bit
Line 183: Line 184:
 
  KERNEL /linux/gentoo/gentoo-amd64
 
  KERNEL /linux/gentoo/gentoo-amd64
 
  append root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=/linux/gentoo/gentoo-amd64.igz real_root=/ vga=791
 
  append root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=/linux/gentoo/gentoo-amd64.igz real_root=/ vga=791
 
+
</pre>
 
=== GParted ===
 
=== GParted ===
  
Line 191: Line 192:
 
* Edit your PXE config file /Boot/arch/pxelinux.cfg/default, and append the following:
 
* Edit your PXE config file /Boot/arch/pxelinux.cfg/default, and append the following:
  
 +
<pre>
 
  label GParted Live
 
  label GParted Live
 
  MENU LABEL GParted Live
 
  MENU LABEL GParted Live
Line 196: Line 198:
 
  append initrd=\Linux\gparted\initrd1.img boot=live union=aufs noswap noprompt vga=788 fetch=http://$webserverIP/gparted/filesystem.squashfs
 
  append initrd=\Linux\gparted\initrd1.img boot=live union=aufs noswap noprompt vga=788 fetch=http://$webserverIP/gparted/filesystem.squashfs
 
  ###//NOTE// Replace $webserverIP with your IP address of http server.
 
  ###//NOTE// Replace $webserverIP with your IP address of http server.
 +
</pre>
  
 
As of GParted-live version 0.3.8-3, fetch=tftp is supported. Just copy the <tt>filesystem.squashfs</tt> file into the same folder as <tt>vmlinuz1</tt> and <tt>initrd1.img</tt> (in the above example it would be <tt>\Linux\gparted</tt>. The above <tt>append</tt> can then be replaced with:
 
As of GParted-live version 0.3.8-3, fetch=tftp is supported. Just copy the <tt>filesystem.squashfs</tt> file into the same folder as <tt>vmlinuz1</tt> and <tt>initrd1.img</tt> (in the above example it would be <tt>\Linux\gparted</tt>. The above <tt>append</tt> can then be replaced with:
Line 204: Line 207:
  
 
=== Knoppix ===
 
=== Knoppix ===
See http://pxe.dev.aboveaverageurl.com/index.php/PXE_Booting/Knoppix for details
+
See http://pxe.dev.aboveaverageurl.com/index.php/PXE_Booting/Knoppix for details
  
 
=== Citrix XenServer (Redhat/Centos) ===
 
=== Citrix XenServer (Redhat/Centos) ===
  
* Download the latest XenServer ISO's  
+
* Download the latest XenServer ISO's  
* Make a folder on the WDS server under $WDS-ROOT\Boot\arch\Linux called xenserver
+
* Make a folder on the WDS server under $WDS-ROOT\Boot\arch\Linux called xenserver
* Extract the following files from the first XenServer ISO
+
* Extract the following files from the first XenServer ISO
 +
<pre>
 
     /install.img
 
     /install.img
 
     /boot/xen.gz  
 
     /boot/xen.gz  
Line 216: Line 220:
 
     /boot/isolinux/mboot.c32
 
     /boot/isolinux/mboot.c32
 
     the whole /packages.main folder
 
     the whole /packages.main folder
* Extract the following files from the second !XenServer ISO
+
</pre>
    the whole /packages.linux folder
+
* Extract the following files from the second !XenServer ISO
* Copy the extracted files to the $WDS-ROOT\Boot\arch\Linux\xenserver folder on the WDS server
+
**    the whole /packages.linux folder
* Create a virtual directory in IIS on the WDS server called Xen$version (i.e. xen5-5 ) with read access pointing to the $WDS-ROOT\Boot\arch\Linux\xenserver folder
+
* Copy the extracted files to the $WDS-ROOT\Boot\arch\Linux\xenserver folder on the WDS server
* On the new IIS virtual directory add the mime type for extension .* text/plain
+
* Create a virtual directory in IIS on the WDS server called Xen$version (i.e. xen5-5 ) with read access pointing to the $WDS-ROOT\Boot\arch\Linux\xenserver folder
* Edit your PXE config file /Boot/arch/pxelinux.cfg/default, and append the following:
+
* On the new IIS virtual directory add the mime type for extension .* text/plain
 
+
* Edit your PXE config file /Boot/arch/pxelinux.cfg/default, and append the following:
 +
<pre>
 
  label xenserver5-5beta
 
  label xenserver5-5beta
 
  menu label Citrix ^Xen Server 5.5 install
 
  menu label Citrix ^Xen Server 5.5 install
 
  kernel /Linux/xenserver/mboot.c32
 
  kernel /Linux/xenserver/mboot.c32
 
  APPEND /Linux/xenserver/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty --- /Linux/xenserver/vmlinuz console=ttyS0,115200n8 console=tty0 --- /Linux/xenserver/install.img
 
  APPEND /Linux/xenserver/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty --- /Linux/xenserver/vmlinuz console=ttyS0,115200n8 console=tty0 --- /Linux/xenserver/install.img
 
+
</pre>
* when installing xen select install from http/ftp and type in the location of your wds/web server (IIS webserver as configured above, i.e. http://172.16.0.1/xen5-5 )
+
* when installing xen select install from http/ftp and type in the location of your wds/web server (IIS webserver as configured above, i.e. http://172.16.0.1/xen5-5 )

Revision as of 07:20, 2 July 2010

Creating a PXE Boot menu for deploying Linux with Windows Deployment Services (WDS)

Requirements

  • PXELinux - part of syslinux PXELINUX - Download
  • Windows Deployment Services already setup (setting up WDS is outside of the scope of this article)
    • NOTE: $WDS-ROOT will reference the WDS root folder location in this case D:\RemoteInstall\

How To Setup Windows Deployment Services with PXELinux

  • Download syslinux from http://www.kernel.org/pub/linux/utils/boot/syslinux/
  • Extract core\pxelinux.0 com32\menu\vesamenu.c32 and com32\modules\chain.c32 from the syslinux download and put it on your WDS server in $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\(substitute WDS-ROOT for where your WDS root folder is)
  • In the $WDS-ROOT\Boot\$ARCH folders Rename pxelinux.0 to pxelinux.com
  • Create a folder named pxelinux.cfg (in the $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\ folder)
  • In the pxelinux.cfg folder create a text file named default and add the following to it (you can substitute MyMenuBackgroundPicture640x480.jpg for any image you want as your menu background)
 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.jpg
 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 Boot from Harddisk
 LOCALBOOT 0
 Type 0x80
  • Make a copy of pxeboot.n12 and name it pxeboot.0
  • make a copy from abortpxe.com and rename it to abortpxe.0
  • Create a folder named Linux (in the $WDS-ROOT\Boot\x86\ and $WDS-ROOT\Boot\x64\ folder)
    • Open the Windows Deployment Services Console,
    • Right Click on your Server and Select Properties,
    • From the Boot Tab change the default boot program for your architecute (x86 and x64 as well) to Boot\x86\pxelinux.com and Boot\x64\pxelinux.com respectively
    • NOTE: In the WDS included in Windows Server 2008 R2 the UI has changed and you have to use the command line to set the the default boot program.
    • Thus to change the boot program to pxelinux.com, the wdsutil command line tool has to be used: (do this also for x64 if you have x64 clients also)
      • wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86
      • wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86
  • Now when you pxe boot a machine you will get your custom boot menu

Adding Linux images to boot/install

Debian and Ubuntu

 label debian5-0expert
 menu label ^Debian 5-0 Expert install:
 kernel /Linux/Debian5.0/linux
 append priority=low vga=normal initrd=/Linux/Debian5.0/initrd.gz -- 
 #-- 
 label debian5-0rescue
 menu label ^Debian 5-0 Rescue mode
 kernel /Linux/Debian5.0/linux
 append vga=normal initrd=/Linux/Debian5.0/initrd.gz rescue/enable=true -- quiet 
 #-- 
 label debian5-0auto
 menu label ^Debian 5-0 Automated install
 kernel /Linux/Debian5.0/linux
 append auto=true priority=critical vga=normal initrd=/Linux/Debian5.0/initrd.gz -- quiet 
 #-- 
 label debian5-0amd64expert
 menu label ^Debian 5-0 amd64 Expert install
 kernel /Linux/Debian5.0/linux-amd64
 append priority=low vga=normal initrd=/Linux/Debian5.0/initrd-amd64.gz -- 
 #-- 
 label debian5-0amd64rescue
 menu label ^Debian 5-0 amd64 Rescue mode
 kernel /Linux/Debian5.0/linux-amd64
 append vga=normal initrd=/Linux/Debian5.0/initrd-amd64.gz rescue/enable=true -- quiet 
 #--
 label debian5-0amd64auto
 menu label ^Debian 5-0 amd64 Automated install
 kernel /Linux/Debian5.0/linux-amd64
 append auto=true priority=critical vga=normal initrd=/Linux/Debian5.0/initrd-amd64.gz -- quiet 
 #---
 label ubuntu-expert
 menu label ^Ubuntu Expert install
 kernel /linux/ubuntu/linux
 append priority=low vga=normal initrd=/linux/ubuntu/initrd.gz -- 
 #-- 
 label ubuntu-cli-expert
 menu label Ubuntu Command-line expert install
 kernel /linux/ubuntu/linux
 append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false priority=low vga=normal initrd=/linux/ubuntu/initrd.gz -- 
 #--
 label ubuntu-rescue
 menu label Ubuntu Rescue mode
 kernel /linux/ubuntu/linux
 append vga=normal initrd=/linux/ubuntu/initrd.gz rescue/enable=true -- quiet 
 #-- 
 label ubuntu-expert-amd64
 menu label ^Ubuntu-amd64 Expert install
 kernel /linux/ubuntu/linux-amd64
 append priority=low vga=normal initrd=/linux/ubuntu/initrd-amd64.gz -- 
 #-- 
 label ubuntu-amd64-cli-expert
 menu label Ubuntu-amd64 Command-line expert install
 kernel /linux/ubuntu/linux-amd64
 append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false priority=low vga=normal initrd=/linux/ubuntu/initrd-amd64.gz -- 
 #-- 
 label ubuntu-amd64-rescue
 menu label Ubuntu-amd64 Rescue mode
 kernel /linux/ubuntu/linux-amd64
 append vga=normal initrd=/linux/ubuntu/initrd-amd64.gz rescue/enable=true -- quiet

Gentoo

  • Download the latest gentoo minimal install CD from a mirror
  • Extract the files isolinux/gentoo isolinux/gentoo.igz image.squashfs from the iso to a temporary folder
  • Make a folder on the WDS server under $WDS-ROOT\Boot\arch\Linux called gentoo
  • Copy the extracted gentoo file to the $WDS-ROOT\Boot\arch\Linux\gentoo folder on the WDS server
  • Copy the extracted gentoo.igz and image.squashfs files to a temporary location on a linux machine (i.e. /root/tmp)
  • In the /root/tmp location create a folder called gentoo and change into this directory
    • mkdir /root/tmp/gentoo
    • cd /root/tmp/gentoo
  • Type the following command and press enter (this extracts all the files from the gentoo.igz file)
    • gunzip -c ../gentoo.igz | cpio -idv
  • Make the follwing folders (in the extracted folder)
    • mkdir mnt
    • mkdir mnt/cdrom
  • Copy the image.squashfs to the new created mnt/cdrom folder
    • cp ../image.squashfs mnt/cdrom
  • Make a backup copy of the init file
    • cp init init.orig
  • Edit the init file with the following modifications
    Change the line:
      -- if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ]
    To:
      ++ if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${REAL_ROOT}" != "/" ]
    Change the line (under  # Check for a block device or /dev/nfs):
      -- elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ]
    To:
      ++ elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ] || [ "${REAL_ROOT}" = "/" ]
    Remove the line:
      -- cache_cd_contents
    Change the line:
      -- mount -t squashfs -o loop,ro ${NEW_ROOT}/mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd
    To:
      ++ mount -t squashfs -o loop,ro /mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd    
  • Compress everything back into a file again by this typing the following and press enter
    • find . -print | cpio -o -H newc |gzip -9 -c - > ../gentoo.igz.new
  • Copy the new gentoo.igz.new to the $WDS-ROOT\Boot\arch\Linux\gentoo folder on the WDS server and name it gentoo.igz
  • Create a menu entry at the end of the $WDS-ROOT\Boot\arch\pxelinux.cfg\default file
 LABEL gentoo2008-x86
 MENU LABEL Deploy Gentoo 32 bit
 KERNEL /linux/gentoo/gentoo
 append root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=/linux/gentoo/gentoo.igz real_root=/ vga=791
 #--
 LABEL gentoo2008-x64
 MENU LABEL Deploy Gentoo amd64
 KERNEL /linux/gentoo/gentoo-amd64
 append root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=/linux/gentoo/gentoo-amd64.igz real_root=/ vga=791

GParted

  • Download GParted live zip file (You have to use 0.3.7-2 or later, network drivers are only included after that), and unzip all the files in a temp dir
  • Copy necessary boot files (vmlinuz1 and initrd1.img) to a new folder on your WDS server ($WDS-ROOT\Boot\arch\Linux\gparted)
  • Copy /tmp/gparted/live/filesystem.squashfs to your http web server. (If on IIS create a new virtual directory and set the mime type for .* extension to text/plain)
  • Edit your PXE config file /Boot/arch/pxelinux.cfg/default, and append the following:
 label GParted Live
 MENU LABEL GParted Live
 kernel \Linux\gparted\vmlinuz1
 append initrd=\Linux\gparted\initrd1.img boot=live union=aufs noswap noprompt vga=788 fetch=http://$webserverIP/gparted/filesystem.squashfs
 ###//NOTE// Replace $webserverIP with your IP address of http server.

As of GParted-live version 0.3.8-3, fetch=tftp is supported. Just copy the filesystem.squashfs file into the same folder as vmlinuz1 and initrd1.img (in the above example it would be \Linux\gparted. The above append can then be replaced with:

append initrd=\Linux\gparted\initrd1.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://$tftpserverIP/linux/gparted/filesystem.squashfs
# //NOTE// Replace $tftpserverIP with the IP address of your tftp server.

Knoppix

See http://pxe.dev.aboveaverageurl.com/index.php/PXE_Booting/Knoppix for details

Citrix XenServer (Redhat/Centos)

  • Download the latest XenServer ISO's
  • Make a folder on the WDS server under $WDS-ROOT\Boot\arch\Linux called xenserver
  • Extract the following files from the first XenServer ISO
    /install.img
    /boot/xen.gz 
    /boot/vmlinuz
    /boot/isolinux/mboot.c32
    the whole /packages.main folder
  • Extract the following files from the second !XenServer ISO
    • the whole /packages.linux folder
  • Copy the extracted files to the $WDS-ROOT\Boot\arch\Linux\xenserver folder on the WDS server
  • Create a virtual directory in IIS on the WDS server called Xen$version (i.e. xen5-5 ) with read access pointing to the $WDS-ROOT\Boot\arch\Linux\xenserver folder
  • On the new IIS virtual directory add the mime type for extension .* text/plain
  • Edit your PXE config file /Boot/arch/pxelinux.cfg/default, and append the following:
 label xenserver5-5beta
 menu label Citrix ^Xen Server 5.5 install
 kernel /Linux/xenserver/mboot.c32
 APPEND /Linux/xenserver/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty --- /Linux/xenserver/vmlinuz console=ttyS0,115200n8 console=tty0 --- /Linux/xenserver/install.img
  • when installing xen select install from http/ftp and type in the location of your wds/web server (IIS webserver as configured above, i.e. http://172.16.0.1/xen5-5 )