9

Let's assume the following situation: you have a computer with empty hard disk, and you don't have a CD, floppy, pen drive nearby to boot the computer from. But you have connection to the Internet.

Modern computers support network booting using PXE, but I haven't found anything regarding booting via the internet.

So, is it possible to use PXE to load an image from the internet and boot it? By having a running system (even a minimal Linux) in RAM, it should be possible to install it on the hard disk, and build up a working system from here.

4 Answers 4

2

Give a try to gPXE.

http://etherboot.org/wiki/

4
  • 2
    Welcome to Super User! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. When recommending software, make sure to also cover how to use it to solve the problem at hand. meta.superuser.com/questions/5329/… Oct 8, 2012 at 10:05
  • But still need something to load gPXE from. :) Are there BIOS vendors who include it in their default implementation?
    – Calmarius
    Oct 8, 2012 at 13:00
  • No, unfortunately. You'd need to find a supported ethernet adaptor and risk flashing it in.
    – Journeyman Geek
    Oct 9, 2012 at 13:47
  • gPXE seems to be abandoned and replaced by iPXE but neither of them is able to boot any distro completelly from the Internet. BIOS and distros mostly follow the PXE standard; no extensions.
    – Pat
    Oct 9, 2012 at 14:11
1

Yes, it is possible. You just need a friendly environment which instructs your machine what to boot. I used DNS, DHCP and TFTP to boot and install RHEL maybe 10 years ago. There were boot.kernel.org and boot.fedoraproject.org... but this is no longer so fashionate.

Without such "friendly" network environment I am afraid it is not possible.

1

Updated 11/29/2017: that minus value is motivating....

I have booted both "Clonezilla Live" and ESXi 5.5.0 from a USB thumb drive to system memory. Without a hard drive. The images for both are on the Internet, and they're both basically Ubuntu. But an ISO image doesn't contain a preamble that will load into memory or down to mass storage (hdd, ssd). PXE supports both "Legacy" and "uEFI" boots. If you can find a Legacy or uEFI bootable image on the internet that's configured to load and run strictly is memory, it should be possible for PXE to load that just like it loads Clonezilla in our lab. You might look on Clonezilla's website, or Linux distro web sites.

You might also consider the security implications of grabbing something off the internet and booting your computer with it. I have experience that leads me to trust Clonezilla and ESXi and Ubuntu and OpenSUSE images I've downloaded. Executables from other places? Mmmmmmm. Might be better to make a thumb-drive or connect a DVD/CD rom reader. Or set-up Clonezilla on another local machine.

I'm most familiar with PXE boot from Clonezilla. Our Clonezilla server is set-up to have to know the MAC of the client computer, in advance. It also creates an IP address for each MAC it knows.

The client's PXE gets on the network and announces itself, by MAC, asking if anyone has something for it. Clonezilla can tell the client to boot itself locally, or it can send an all-in-memory-Linux to the client and then use that to download a disk image (Win, Linux, Mac, whatever) that is then booted. By default, we have Clonezilla (server) tell PXE to boot from local storage and gives it the correct IP address. This is all done from the network interface, the CPU has no idea what's happening. It gets told to boot a local volume, it does, done.

If Clonezilla server tells it to reimage, PXE pulls down the first piece of the memory-resident Clonezilla client bootable, sticks it in the CPU's memory and causes the CPU to jump to it. In that first piece is enough for the CPU to get PXE and the network interface to fetch and down-load the at least one more block, and with those 2, it can get more, until it's eventually downloaded all of the memory resident Clonezilla client OS, installed it correctly in memory, and branched the CPU to running it.

Once Clonezilla client is running on the target machine, Clonezilla Server will send the disk image it was set-up to send, and when that disk image finishes loading, the CPU will boot from it.

-1

Configure the right DHCP options on your router and you shouldn't have any problems:

060: PXEClient

066: to the DNS name of your internet server (server.domain.com)

067: boot\x86\wdsnbp.com (for WDS as example, you will need to find the file to load)

more about the options here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .