[GUIDE] Installing a PXE Server on unRAID


Recommended Posts

I'm trying to get this up and running using openELEC.

 

First problem after booting my laptop was that selecting openELEC didn't do anything. By editing the prelinux.cfg/default file and changing the case of the directory from 'KERNEL images/openelec/KERNEL' to 'KERNEL images/openELEC/KERNEL' it then continues booting.

 

Second problem occurs after a bunch of text scrolls up the screen then it waits for about 30 secs and errors out with:

 

***Error in mount_flash: mount_common: Could not mount 192.168.1.111:/mnt/cache/Nas/tftp/images/openELEC ***

 

My unRaid is at x.x.x.111 and I installed the tftp files under 'Nas' on my cache drive. The 'Nas' folder is shared as cache only in unRaid and is exported with NFS (the whole cache drive is not).

 

This is the line from 'default' file:

 

APPEND ip=dhcp boot=NFS=192.168.1.111:/mnt/cache/Nas/tftp/images/openELEC disk=NFS=192.168.1.111:/mnt/cache/Nas/tftp/images/openELEC/storage overlay

 

Under the images/openELEC directory are the KERNEL and SYSTEM files

 

Any ideas?

Link to comment

This is the line from 'default' file:

 

APPEND ip=dhcp boot=NFS=192.168.1.111:/mnt/cache/Nas/tftp/images/openELEC disk=NFS=192.168.1.111:/mnt/cache/Nas/tftp/images/openELEC/storage overlay

 

Under the images/openELEC directory are the KERNEL and SYSTEM files

 

Any ideas?

 

Try changing to this

 

APPEND ip=dhcp boot=NFS=192.168.1.111:/mnt/USER/Nas/tftp/images/openELEC disk=NFS=192.168.1.111:/mnt/USER/Nas/tftp/images/openELEC/storage overlay

 

Since you've not exported the whole cache drive via NFS, I think this should do the trick! Hope this helps :-)

 

Sent from my Nexus 7 using Tapatalk

 

 

Link to comment

Ok, had a little more time to mess around with this last night.  Got Clonezilla installed and working.  Downloaded CentOS 6.5, but ran out of time to get it setup.  I'll have time to get it and whatever else I want to put on there working this weekend.

 

I do have one question though.  If I boot into the PXE menu and select "Boot from local drive", PXE boot exits, but then it just hangs and does not boot from my local drive.  I looked at the menu settings, but the only option is 'localboot 0'.  I'm not sure where to go with this one.

 

I don't know if it matters but my desktop's local disk OS in Win7 x64.

Link to comment

I have been away on business trip and finally had a chance to play with this.... I will clarify a few things in hope it helps others. I have to say this insanely cool... Grumpy I thank you yet again.

 

Parted Magic

I really use Parted Magic.... I partition drives all the time (I play a lot with Hackintosh setups), and I use the built-in Clonezilla.

 

I had to execute the first step (before additional packages) in the following tutorial on a separate Ubuntu server I have. All command line...

http://partedmagic.com/pxe/

 

Basically with this I was then able to copy the following 3 files to \\MyunRAID\cache\tftp\images\pmagic

  • bzImage64
  • initrd64.img
  • PMAGIC_2013_11_11.SQFS.cgz

Note the last file above is specific to the version of Parted Magic I have.

 

Once those 3 files are in that folder, edit your menu to include the following:

 

LABEL Parted Magic
        MENU LABEL Parted Magic
LINUX images/pmagic/bzImage64
INITRD images/pmagic/initrd64.img,images/pmagic/PMAGIC_2013_11_11.SQFS.cgz
APPEND edd=on vga=normal
        TEXT HELP
        Install Parted Magic
        ENDTEXT	

 

I placed this in the main menu file: \\TOWER\cache\tftp\pxelinux.cfg\default

 

Hirens Boot CD

I have never really had to use this... Download the latest ISO for this.... renamed it to hbcd.iso and copied it to folder  \\MyunRAID\cache\tftp\images\hbcd

 

My menu for this is:

 

LABEL Hiren's Boot CD
	MENU LABEL Hiren's BootCD 15.x
	KERNEL pxelinux.cfg/roms/memdisk
	append iso initrd=images/hbcd/hbcd.iso raw
	TEXT HELP
	Hiren's BootCD 15.x        
	ENDTEXT

 

 

Norton Ghost 15 Rescue Disk

I use Norton Ghost in my Win 7 machines, and it has bailed me out after some malware, or other mess ups... I will not go here into creating the ISO image (there are plenty of tutorials). And please know that you have to have a valid license for this; it is not freeware.

 

Renamed my ISO file to Ghost15.iso and copied it to folder  \\MyunRAID\cache\tftp\images\nghost

 

Menu entry for this is:

 

LABEL Ghost Recovery Disk
	MENU LABEL Norton Ghost Recovery
	KERNEL pxelinux.cfg/roms/memdisk
	append iso initrd=images/nghost/Ghost15.iso raw
	TEXT HELP
	Norton Ghost 15.x        
	ENDTEXT	

 

Sometimes this will not boot.. sometimes it does... there is one point in boot process where it asks you to hit any key to boot from CD... when you see this, hit any key.

 

openELEC

So far, I was only able to get this to work from my desktop PC. When my PC boots, I hit F12 key to select the PXE boot option. I have not been able to figure out how to do this from my Zotac ID80 htpc. More on this later.

 

Download the build of OE that is for your hardware. In my case, for my desktop, I downloaded the Generic Intel build. Open the downloaded file and go to the /target folder and copy the KERNEL and SYSTEM files to \\MyunRAID\cache\tftp\images\openELEC. Inside this folder, create a folder called "storage" (without the quotes).

 

If you followed grumpy's original directions, you should have created a share called tftp. In unRAID > Settings you should have NFS enabled. ANd in the shares, you should have share tftp Security Export setting set to "yes" and "public". I do not use any security on my unRAID server.

 

Menu entry for this is:

LABEL OpenELEC
MENU LABEL OpenELEC
        KERNEL images/openELEC/KERNEL
        APPEND ip=dhcp boot=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC disk=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC/storage overlay 
        quiet
        TEXT HELP
        OpenELEC
        ENDTEXT

 

When you first boot this; in the /storage folder, it will create a folder with teh MAC address of the machine you used to boot this. Inside this folder it will place the typical contents OE puts in /storage... all your addons, settings, shares, etc are here... So you can copy from other OE machines after the first boot.

 

I followed Grumpy's instructions on how to get my htpc to automatically boot to this and PXE... In my Zotac I was able to enable PXE, and followed the guide... but it still boots to the internal hdd. Perhaps I have to remove the internal hdd...

 

I hope this helps others, and please note that I am not an expert.... I stumbled my way through this. I will gladly correct or expand what I wrote if something is amiss or not ideal.

 

A wish list thing for me would be to be able to boot to either Linux Mint or Ubuntu desktop OS, where it is not a Live CD environment, but a full saving OS, where I can add programs, change settings, and customize and all thos changes would be available after a reboot. In the openELEC string above, I noticed there is a way to specify the disk as an NFS share... I wonder if for Mint or Ubuntu or others, the same could be done and it would be permanent storage.... But this is beyond my skill set.

 

Thanks,

 

Hernando

 

 

Link to comment

Linux Mint Live CD

 

Download the ISO. Open the ISO and copy the entire "casper" folder and its content to folder  \\MyunRAID\cache\tftp\images\Mint

 

The menu entry looks like this:

 

MENU LABEL Linux Mint 16
        KERNEL images/Mint/casper/vmlinuz
APPEND boot=casper netboot=nfs nfsroot=192.168.0.201:/mnt/user/tftp/images/Mint/ initrd=images/Mint/casper/initrd.lz quiet splash --
TEXT HELP
Linux Mint 16
ENDTEXT

Link to comment

I have been away on business trip and finally had a chance to play with this.... I will clarify a few things in hope it helps others. I have to say this insanely cool... Grumpy I thank you yet again.

 

Incredible stuff! Thank you for taking my "Examples" and "Templates" of showing you various ways of booting different things (Live CDs, openELEC, various Installers, ISOs, Windows Installer, etc.) via PXE and running with it.

 

Again this is something that everyone will have customize for what they want to do so it's hard to post a guide / examples / with all the images without it being a HUGE download.

 

So hopefully like you have... Other people will post the various Tools (gparted if you don't use Parted Magic is a good one) they use, where to get them, what files / isos you boot, etc.

 

Most Distros / ISO Utilities have guides / wikis on how to PXE boot into them. Using their documentation the stuff in this thread you should be able to figure it out or the others will be able to figure out on our server and share exactly how.

 

Link to comment

I followed Grumpy's instructions on how to get my htpc to automatically boot to this and PXE... In my Zotac I was able to enable PXE, and followed the guide... but it still boots to the internal hdd. Perhaps I have to remove the internal hdd...

 

I need more info on what it isn't doing. Does it try to load openELEC and hangs?

 

A wish list thing for me would be to be able to boot to either Linux Mint or Ubuntu desktop OS, where it is not a Live CD environment, but a full saving OS, where I can add programs, change settings, and customize and all thos changes would be available after a reboot.

 

The overall concepts of how you do this in any Distro...

 

1. Set up a NFS Share that will be the OS Drive on unRAID. You can make this a cache drive only share or have it use the RAID in unRAID.

 

2. Enable NFS Client before / during installation (Each Distro is different) so you can mount the NFS OS Share on the server where you are installing too.

 

3. When you are installing, most distros you will create a ramfs and you need to have the NFS client included. Otherwise, when you boot into the linux kernel and ramfs... It has no way of communicating through NFS to it's root.

 

4. You need to update /etc/fstab with where your root file system is.

 

There are some other things you have to do for the various Distros you install but the above is the overall concept of how it works.

 

If you want to see how examples how to do this in Arch and Ubuntu...

 

Arch Linux Diskless System

 

Diskless Ubuntu How to

Link to comment

I followed Grumpy's instructions on how to get my htpc to automatically boot to this and PXE... In my Zotac I was able to enable PXE, and followed the guide... but it still boots to the internal hdd. Perhaps I have to remove the internal hdd...

 

I need more info on what it isn't doing. Does it try to load openELEC and hangs?

 

 

 

 

It is more basic than that.... I don't know how to tell the htpc to boot from PXE... most desktops you hit F12 (or similar) to display boot options... I cannot figure how to do that with the Zotac. I have to play more with the bios... Perhaps disable the internal HDD to force it to search for the PXE...

 

I am combing through the links you posted... The hard part for me to try to understand is already been handled by unRAID's PXE and how to setup the bootable OS. I will give it a good try.

 

 

Thanks a million grumpy...

 

H.

Link to comment

It is more basic than that.... I don't know how to tell the htpc to boot from PXE... most desktops you hit F12 (or similar) to display boot options... I cannot figure how to do that with the Zotac. I have to play more with the bios... Perhaps disable the internal HDD to force it to search for the PXE...

 

Once PXE is enabled in the BIOS, you should be able to set it as the #1 option in the boot order.

Link to comment

 

Once PXE is enabled in the BIOS, you should be able to set it as the #1 option in the boot order.

 

BINGO!!! I had to enable in bios... save...re-enter bios... change boot order and it works....! Sort off...

 

I get the automatic PXE menu... which I can manually select OE and boot.... but I did follow the steps using the Mac address.... One thing I thought was a typo and I "corrected" was this line:

 

nano /mnt/cache/tftpd/pxeconfig.cfg/01-00-26-2d-ab-9d-2e

 

my line reads:

nano /mnt/cache/tftp/pxeconfig.cfg/01-00-26-2d-ab-9d-2e

 

I thought the item in red above was a typo from grumpy, as he asked us to create a share called. tftp... not tftpd... Was I wrong on this assumption? I did put the htpc's mac address...

 

EDIT

 

I do think I had the wrong MAC address... in process of cpopying my entire .xbmc folder into the proper folder... I will advice. Never mind... I did have the right MAC... so still not working.

 

This is the name of the file in \\myunRAID\cache\tftp\pxeconfig.cfg

01-00-01-2e-48-e9-04

Link to comment

I do think I had the wrong MAC address... in process of cpopying my entire .xbmc folder into the proper folder... I will advice. Never mind... I did have the right MAC... so still not working.

 

This is the name of the file in \\myunRAID\cache\tftp\pxeconfig.cfg

01-00-01-2e-48-e9-04

 

1. Did you change the permissions of the tftp directory?

 

chown -R nobody:user /mnt/cache/tftp && chmod -R 777 /mnt/cache/tftp

 

2. Then restart tftp

 

/etc/rc.d/rc.dnsmasq restart

 

3. Try to boot into openELEC again.

 

4. If that doesn't work, post your 01-00-01-2e-48-e9-04 file and prove as much detail as you see and take a look at "dmesg" (the end of it) and see if anything is there reguarding dnsmasq.

 

Link to comment

I do think I had the wrong MAC address... in process of cpopying my entire .xbmc folder into the proper folder... I will advice. Never mind... I did have the right MAC... so still not working.

 

This is the name of the file in \\myunRAID\cache\tftp\pxeconfig.cfg

01-00-01-2e-48-e9-04

 

1. Did you change the permissions of the tftp directory?

 

chown -R nobody:user /mnt/cache/tftp && chmod -R 777 /mnt/cache/tftp

 

2. Then restart tftp

 

/etc/rc.d/rc.dnsmasq restart

 

3. Try to boot into openELEC again.

 

4. If that doesn't work, post your 01-00-01-2e-48-e9-04 file and prove as much detail as you see and take a look at "dmesg" (the end of it) and see if anything is there reguarding dnsmasq.

 

Thanks, sadly no luck.... I looked at /var/log/dmesg and I could not find anything in there with dnsmasq (I searched the file). File date is 4 days old.

 

This is my 01-00-01-2e-48-e9-04 file:

 

DEFAULT openELEC Bedroom
PROMPT 0
LABEL openELEC Bedroom
KERNEL images/openelec/KERNEL
APPEND ip=dhcp boot=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC disk=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC/storage overlay quiet

 

Thank you grumpy.

Link to comment

DEFAULT openELEC Bedroom
PROMPT 0
LABEL openELEC Bedroom
KERNEL images/openelec/KERNEL
APPEND ip=dhcp boot=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC disk=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC/storage overlay quiet

 

The more information you provide the better I will be able to assist. All I know is it doesn't work and nothing was in the dmesg. Hard for me to troubleshoot that.

 

Did anything show up on your screen? Do you see it grab an IP address? Boot into the PXE Server? Does it say loading a menu? Does it show the openELEC booting and bomb?

 

Change the PROMPT from 0 to 10 and see what pops up on the screen. If you get a menu, boot into OpenELEC and provide as much info as you can.

 

Take a look at the following:

 

KERNEL images/openelec/KERNEL

 

According to everything else you have in your config it should be:

 

KERNEL images/openELEC/KERNEL

 

Look at /mnt/cache/tftp/images and check the name of your openELEC folder and correct all your paths in your MAC file.

Link to comment

I have no use for this right now but may have in the future.

 

Just want to say a big [move]THANKS        THANKS      THANKS        THANKS        THANKS        THANKS[/move]

to Grumpy for posting and for everyone else building on that work.

 

as an aside - does anyone else find it frustrating to follow guides like these in forum format? (not just here but in any forum). Would they be better set up as Wikis so all edits and expansions are captured in one place rather than having to trawl through sometimes hundreds of posts to piece together the actual process? Just a thought.

 

Peter

 

Link to comment

Wonder if anyone knows the answer to this - I've just realised my router is running dnsmasq too.. Is it a problem to be running two instances on the same network?

 

Sent from my Nexus 7 using Tapatalk

Depends. dnsmasq can provide several different services. If you don't enable conflicting overlapping services, you should be fine.
Link to comment

DEFAULT openELEC Bedroom
PROMPT 0
LABEL openELEC Bedroom
KERNEL images/openelec/KERNEL
APPEND ip=dhcp boot=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC disk=NFS=192.168.0.201:/mnt/user/tftp/images/openELEC/storage overlay quiet

 

The more information you provide the better I will be able to assist. All I know is it doesn't work and nothing was in the dmesg. Hard for me to troubleshoot that.

 

Did anything show up on your screen? Do you see it grab an IP address? Boot into the PXE Server? Does it say loading a menu? Does it show the openELEC booting and bomb?

 

Change the PROMPT from 0 to 10 and see what pops up on the screen. If you get a menu, boot into OpenELEC and provide as much info as you can.

 

Take a look at the following:

 

KERNEL images/openelec/KERNEL

 

According to everything else you have in your config it should be:

 

KERNEL images/openELEC/KERNEL

 

Look at /mnt/cache/tftp/images and check the name of your openELEC folder and correct all your paths in your MAC file.

 

 

Sorry if I was not being clear... I had to take a video of my booting screen and then step it frame by frame... to do some screencaps.

 

Following the instructions to the letter, when I boot from my htpc and defaulting with PXE, the machine goes automatically to the menu:

    \\TOWER\cache\tftp\pxelinux.cfg\default

 

I can easily then arrow over to openelec and it will boot it.

 

The problem I am having is it will not automatically boot to the menu that is located in:

    \\TOWER\cache\tftp\pxeconfig.cfg\01-00-01-2e-48-e9-04

 

In my screencaps below, I think there is some useful info.

 

KGQt6yF.png

 

WI5FR4e.png

 

IRk2hcq.png

 

Image number 2 I think its the most telling... it is looking for a file C0A80067 in folder pxelinux.cfg\

 

I copied my file 01-00-01-2e-48-e9-04 to folder \\TOWER\cache\tftp\pxelinux.cfg and I renamed it to C0A80067 and that also took me to the default menu. I renamed the file C0A80067 to 01-00-01-2e-48-e9-04 and [glow=yellow,2,300]it worked!![/glow]

 

Grumpy, so I think basically the original instructions where you had us create the file is the folder pxeconfig.cfg do not work. The MAC named file has to be in the folder pxelinux.cfg for it to boot.

 

Thank you for making me look hard and for all your help.

 

Now I have to configure my new OE install so it works like the one running from hdd. Copying the entire .xbmc folder into storage makes an addon called commoncache not work.

 

:D  :D :D :D

 

 

 

Link to comment

@Grumpy -  Thanks again for posting this....

I have been using your work and customizing the PXE boot Menus and have been working on a windows installer menu. All of my installers are .iso's

My question - Is there a better way/proper way to deliver the iso's or will i have to extract the files from iso to install that way via PXE.

I keep getting BSOD or memory errors during install or while iso is loading due to their size, I'm assuming.

I have made a separate windows.menu

LABEL Install Windows XP
MENU LABEL Install Windows XP
        KERNEL pxelinux.cfg/roms/memdisk
	APPEND iso raw
	INITRD images/Windows/XP/XP_SP3.iso
	TEXT HELP
	net use z: \\192.168.0.145\Windows
	ENDTEXT
LABEL Install Windows 7
MENU LABEL Install Windows 7
        KERNEL pxelinux.cfg/roms/memdisk
	APPEND iso raw
	INITRD images/Windows/7/Win7_SP1_AIO_Dec2013.iso
	TEXT HELP
	net use z: \\192.168.0.145\Windows
	ENDTEXT
LABEL Install Windows 8
MENU LABEL Install Windows 8
        KERNEL pxelinux.cfg/roms/memdisk
	APPEND iso raw
	INITRD images/Windows/8/Win8_x64_x86_AIO.iso
	TEXT HELP
	net use z: \\192.168.0.145\Windows
	ENDTEXT
LABEL Install Windows Server
MENU LABEL Install Windows Server
        KERNEL pxelinux.cfg/roms/memdisk
	INITRD images/Windows/WinPE_X64.iso
	APPEND iso raw
	TEXT HELP
	net use z: \\192.168.0.145\Windows
	ENDTEXT
LABEL Windows Live CD
MENU LABEL Windows Live CD
        KERNEL pxelinux.cfg/roms/memdisk
	APPEND iso raw
	INITRD images/Windows/LiveCD/livecd.iso
	TEXT HELP
	net use z: \\192.168.0.145\Windows
	ENDTEXT

Advice or comments?

Link to comment

Posted by: josywong

« on: Today at 11:34:04 PM »

had been "deploying" windows for few mths here. i boot into PE(around 200mb + -) using wimboot thru ipxe(2-3 secs), apply images in there instead of loading whole bulky iso into ram.

 

I was just reading about that thanks - will keep researching. Does your PE work for XP, windows 7 / 8 all edititons? if so where might i find or make one that size?

Link to comment

Its even quicker over the network. Boot into winpe and do

 

used this script to create a dualbooting 32/64 bit win pe menu http://pastebin.com/raw.php?i=59pjkDWa

 

extract your window install media

 

net use Z: \\tower\install_media_share

 

and just run setup. 

 

What he said / did is how I did it.

 

It was my experience that you have to create and AMD and Intel winpe. I didn't use the same exact scripts so maybe my old winpe from Windows 8 RTM was the issue.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.