6

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.

2

Give a try to gPXE.

http://etherboot.org/wiki/

| improve this answer | |
  • 1
    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/… – Der Hochstapler Oct 8 '12 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 '12 at 13:00
  • No, unfortunately. You'd need to find a supported ethernet adaptor and risk flashing it in. – Journeyman Geek Oct 9 '12 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 '12 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.

| improve this answer | |
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.

| improve this answer | |
-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

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.