Over the past few years with the advent of low cost USB drives, CD Drives have basically become legacy devices. For that matter, most new computers don’t even have one. With that said, there are lots of tools we typically use that boot from CD and yes these tools can be made to boot from USB, however the purpose of this article is to detail the steps required to effectively boot any .iso over PXE. To preface this article, we are going to assume you’ve already read our article Enable PXE on Windows 2008 R2 or that you are fairly familiar with the PXE stack whether on Windows or Linux. For the purpose of this article we will boot Macrium Reflect 6.0 over PXE.
memdisk
from the most recent syslinux package here. Next, you will want to generate the rescue.iso
using the Macrium Reflect boot CD Creator. Once you have the required files you will want to place memdisk
and rescue.iso
in the same directory under your PXE root. Once the files are in the correct place, simply add the following entry to your default menu file of course changing the paths to reflect your environment.LABEL mr MENU LABEL Macrium Reflect Rescue kernel images/img/mr/memdisk append iso initrd=images/img/mr/rescue.iso raw
Once everything is in place, network boot a machine and you should see that the .iso boots as if it were a CD.
Hey I have some questions!
I placed the iso file in my tftp root directory, yet this doesn’t work.
I see a message flashin g a t the bottom of the menu when selecting the option I created. It’s fast but it says something about that it can’t find the iso file. “No such file or directory”.
Anyway, like I said, I put the file in there yet it doesn’t load it. Why might this be happening?
I kind of know the tftp server is working, since I have been successful loading oses using other methods, such as nfsroot and specifying the actual kernel and initrd image extracted from the iso.
However I would really like to be able to just specify the iso to boot basically.
Also does this boot the grub present in the iso?
Also, does the kernel used matter by a lot?
The version of pxelinux is critical using this setup. Please use the version specified in the article.
I build an ISO from my LINUX MINT system using SystemBack and it boot up from an USB stick.
I have a working PXE environment on my Synology NAS.
Serveral Life DVD’s are bootable without any problem.
Linux Mint ISO’s and HirenBootCD.
I copied the ISO file to the same directory on the NAS where the others are sitting.
The menu shows the entry for my Mint ISO.
But when I choose it nothing happens. A short flash on the screen and it returns to the menu.
How to trouble shoot this?
Is a log file maybe somewhere?
Regards, Wim
@Girts In case this is still actual. You can find ldlinux.c32 with the following command
sudo find / -type f -name ldlinux.c32
if ldlinux.c32 is somewhere on your drives, then it will output the path of it.
Then, knowing the path to ldlinux.c32 you can copy your servers tftp root (the same directory where pxelinux.0 is).
For example the command could look like
cp /path/to/ldlinux.c32 /path/to/tftp-root
After this pxelinux.0 should be able to load ldlinux.c32 at boottime.
cheers
Thanks Hoin. You can also retrieve all the needed files from the syslinux package linked in the article.
OK
I figured it out
I was using version 6
=====
Apparently this is due to a recent change in syslinux library modules. Not sure if its a bug Unetbootin can fix or any other package related bug.
But the solution is simple.
copy the below files from /usr/lib/syslinux/bios/ to the root of USB drive and then boot with the USB device.
1. libcom32.c32
2. menu.c32
3. libutil.c32
Thanks
got the boot menu running!
Awesome! Glad to see you got it working.
Can you provide details on this please?
Can you be more specific on what details you are looking for?
My goal is to enable booting from Live CDs/Bootable ISO images(tools, etc). I have PXE set up on a Windows Server(with SCCM on top of it). Can you give me hints regards absolute folder paths and file names referenced in your article?
The link in the article “Enable PXE on Windows 2008 R2” takes you to our previous series on PXE Server setup. See https://oitibs.com/pxe-structure-on-windows-2008-r2/. Hope that helps
I am obviously missing something because I got the linux bootstrap starting and then it fails with:
Failed to load ldlinux.c32
I can understand why because there is no such file under TFTroot anywhere. Do I have to put entire distro under TFTroot somewhere?
Start by using the version of gpxelinux.0 specified in the article. At some point they added requirements for other files, but off the top of my head I cant remember what version
See: http://www.syslinux.org/wiki/index.php/PXELINUX sub-topic 3. Configuration. Specifies versions 5.00 and up require
ldlinux.c32
.