Linux - NetworkingThis forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Is there any way to load a full linux system over a wide area network like the internet to run a "diskless" system? Is there some way to configure PXE to achieve this, or is there a minimal boot image that can be used?
Thanks, sorry if this is in the wrong section
That would be quite a feat to accomplish something of that nature, but firstly I have to ask why?? You probably don't have access to the physical box, but surely someone you know does?
Either way I doubt you can accomplish this. The logistics are complicated. Essentially a boot image exists on your end, say in California. And you want to be able to push that image to a box in D.C. via PXE, tftp, dhcp and the likes. These kinds of things usually function in a LAN environment. It looks very complicated and you should probably opt for a simpler solution, provided one exists.
That would be quite a feat to accomplish something of that nature, but firstly I have to ask why?? You probably don't have access to the physical box, but surely someone you know does?
Either way I doubt you can accomplish this. The logistics are complicated. Essentially a boot image exists on your end, say in California. And you want to be able to push that image to a box in D.C. via PXE, tftp, dhcp and the likes. These kinds of things usually function in a LAN environment. It looks very complicated and you should probably opt for a simpler solution, provided one exists.
Well as you mention, the goal it to allow one computer located anywhere to load the OS off another computer located anywhere. The server loading the image would the client, pulling the files off an FTP server (or SFTP, SSH, whatever) instead of TFTP.
Maybe the best solution would be to configure a local server, but it would be ideal to condense this into a single system, if that's possible.
Hopefully there is an easier way, but in the example mentioned, how else could an OS image located on one computer be loaded by another, if they are not on the same local network?
Loading a minimal image from CD or something would be fine, but my goal is to be able to load a kernal from a remote source, so any updates or configuration can be done only to the source and not each machine - basically a standard TFTP diskless boot over the internet.
Quote:
Originally Posted by IsaacKuo
I think, theoretically it might be possible if you can set up a router just the right way...but the performance would be utterly unusable.
That's my best guess, just to arrange the router or pc acting as router to relay the request and communication some way.
The disadvantage of this however is that in many cases the user (me) may not have access to the router - for example at internet cafes, office networks, schools, etc. Are there are ways to have this function by configuring only the user's 1 system?
There's no reason for poor performance, inexpensive FTP servers can sustain 200K/s, for a 5 min load time of Damn Small Linux, meanwhile many networks can provide 500K/s, 1,000K/s, or more, that could be under a minute. Sure its not usable for all purposes, but in some cases it would be great
If you want to use FTP, and to download a full OS image, then you don't want to use netbooting anyway. If you don't have access to modify the router, then any sort of netbooting is completely out of the question anyway. At the VERY least, you need full control over the DHCP server. Without that, you can't even get netbooting started.
What you seem to want is completely different from netbooting.
I suggest a simple dual boot drive. This drive could be a USB drive, or it could be a hard drive (if the "user's 1 system" is, say, a laptop). The first OS is an extremely basic install that doesn't ever get updated. All it does is run a custom script which:
1) Uses rsync to synchronize the second OS partition with the "image" back home.
2) Modifies /boot/grub/menu.lst to change the default bootup OS to the second partition
3) reboots
The second OS has a bootup script which modifies /boot/grub/menu.lst to change the default bootup OS to the first partition. That way, when the drive is booted up next, it will boot up the first OS to get updates.
The reason to use "rsync" instead of FTP is that it will only download the changed files, rather needing to download the entire OS image (which could take ages).
Your basic partition scheme would look something like:
sda1 small /boot partition for GRUB
sda2 medium / partition for first OS
sda3 large / partition for second OS
In /boot/grub, you want to have three copies of menu.lst, named:
menu.lst (the active menu.lst which will be used upon the next boot)
menu.lst.OS1 (a copy of menu.lst set to boot up OS1 by default)
menu.lst.OS2 (a copy of menu.lst set to boot up OS2 by default)
This way, in your scripts, you just need a command like:
cp /boot/grub/menu.lst.OS2 /boot/grub/menu.lst
This is more robust and less prone to problems than the more obvious idea of modifying a single menu.lst file.
Since this thread stalled, a couple super developers at BKO figured out a way to do it with http and iSCSI. (Shinde Pravin and John "warthog9" Hawley)
You just boot from a small (56K) program called gPXE, and it lets you boot live images of Ubuntu, DSL, Fedora, Knoppix, or Debian. You can even install them. Debian installed in an hour on a slow machine.
You can even duplicate their setup on your machine. I did it. It works. (You have to install GIT first. Make sure GIT is not blocked by a firewall.)
netboot.me and bko use a home made gpxe usb, floppy or cd.
You can get an exact gpxe image for your system if supported by going to the old rom site rom-o-matic.net or etherboot.com. I think it is a great project. I'd play with bko or netboot.me a while to see how it works. A fast lan/wan is really needed for any kind of boot speed. Once it is up it works off ram so pretty fast.
See also how to run 2x's terminal's or the free freenx versions. A bit of like remote desktops booted from a simple media and using some server to deploy data to screens.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.