Re: Floppy and tftp - was Woody Freeze
On Mon, Apr 09, 2001 at 11:58:02AM +0200, Ola Lundqvist wrote:
> On Mon, Apr 09, 2001 at 03:07:04PM +0530, Ganesan Rajagopal wrote:
> > > I'm working on a project to run debian (servers and clients) diskless.
> > > Im actually sitting with a totally diskless computer running debian
> > > started with PXE, GRUB, Linux-2.4.2 and nfs-root. I intend to make
> > > diskless-server and diskless-client packages to simplify this.
> > > Is there anyone else out there that are interested in this?
> > I am very interested in this. Do you have a web page describing this?
> To bad I have not. But I'll share some of my experience here.
> There are actually some packages in debian that makes diskless
> booting easier. See netboot and diskless. I have personally not
> used them but all reports about how to do it would be great.
> Here is some scetches about how it is set up.
> dhcpd (with some BOOTP things to load the kernel with right ip).
> tftpd (pointing to /rboot directory)
> grub (located in /rboot so that the client can find it, yes it should
> be in an other directory. :) This is a special grub bin to
> support network booting via PXE.
> chroot images (in /images, a complete client installation).
> nfs-server (exporting /images)
> kernel (located in /images/foo/kernel)
I'm not using grub. I load directly the kernels via tftp. Why use a boot manager in a diskless client :-?
Is it required for booting via PXE?
> Client: (well the image in /images/foo)
> kernel (see above)
> devfs (speeds things up)
I have this in mind, but over a 100Mbs Network is difficult to notice any delay in accesing devices
> ramfs (to localize the host, /tmp /var/tmp /var/run etc.)
I do that via nfs. What are the benefits of doing this in ramfs?
> mount (mounts /usr /root /bin /lib etc to support nfs v3)
> mkdirscript (that creates some dirs in /var/log so logging to
> memory works)
> So what I want to create is a couple of debian pacakges that:
> 1. Sets up the server (almost automaticly) to allow diskless
> 2. Creates client images on the server (if you do not want to run
> the same image as the server)
> 3. Depend, recommend or suggest bootp, nfs-server and tftp and
> configure them as far as possible.
> 4. Run a second kernel on the server to make it possible to
> administrate the clients from the server, like apt-get install...
> without problem). This is a later task... :)
> 5. On the client images, configure them to be a diskless client,
> like add some lines to /etc/fstab, use devfs and create dirs
> in /var/log on boot.
> So this is how the computer boots:
> 1. The boot ROM in the network card is activated and loaded.
> I use a Intel PXE capable card but others may work too.
> 2. The client asks (via dhcp) for an ip address and some
> information about which server to boot from.
> 3. It retrieves the boot-loader (GRUB) via tftp from the server.
> 4. GRUB then loads the kernel (and maybe modules too if needed) as
> you have specified in the special grub-boot script.
> Here you have to give some specific boot options to boot
> over nfs. To let more than one host boot over nfs you also have
> to give some bootp options to the dhcpd server config...
> 5. The kernel (and maybe modules) is loaded and mounts
> server:/images/foo as its root /.
> * Normal startup but some special things:
> 6. Devfsd is loaded which makes the computer a bit faster because
> it does not have to ask the nfs-server for the devices all
> the time.
> 7. Some directories are mounted with ramfs.
> 8. Some directories are remounted to enable nfs v3. It seems
> like (my kernel at least) does not support nfs v3 for the
> /home -> to some other place maybe.
The problem i see here is that when you have a lot of clients, you want them all to mount the same /bin /sbin ... etcetera. A solution is to make the client mount some little root with /etc and /sbin directories (and probably others) that are *client specific*.
for example in a path like /var/lib/diskless/192.168.0.1/ wich can be done by passing /var/lib/diskless/%s with dhcp to the kernel. And then remount all correctly. With all the client sharing common direcotories and maybe having others in ramfs ( what if you don't have a lot of ram in the clients? ) or via nfs separately.
> 9. Swapd is started to allow swapping over nfs. But there are
> some problems with this and it probably have to do with
> that the filesystem is not local. I do not know... Anyone
> have experience with this?
> Well now the host behaves (almost) as any other debian host.
> To update the image I log in to the server and
> chroot to the image root.
> ssh foo
> sudo bash
> chroot /images/bar
> and then
> apt-get update
> apt-get upgrade
> or similar.
I have been thinking about this. And I believe that installing standard debian packages in the clients that way flustrates all that i have explained.
> Atually I would like to boot another kernel at the server for
> updating the image but I have not found any good solution. The
> user-space-linux project looks nice but it uses a file as
> the filesystem...
I don't understand very well what you mean. What has to do the kernel image in the server with the one the clients load?
> Hope this helps. :)
> But now I have a question.
> What names should these packages have?
> Should it be task packages?
> // Ola
> --------------------- Ola Lundqvist ---------------------------
> / email@example.com Björnkärrsgatan 5 A.11 \
> | firstname.lastname@example.org 584 36 LINKÖPING |
> | +46 (0)13-17 69 83 +46 (0)70-332 1551 |
> | http://www.opal.dhs.org UIN/icq: 4912500 |
> \ gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9 /
> To UNSUBSCRIBE, email to email@example.com
> with a subject of "unsubscribe". Trouble? Contact firstname.lastname@example.org
Pedro Larroy Tovar. PiotR | http://omega.resa.es/personales/piotr/