DragonFly BSD
DragonFly users List (threaded) for 2004-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Is there a way to install DragonFly via network (w/o CD) ?

From: Adrian Bocaniciu <a.bocaniciu@xxxxxxxxxxxx>
Date: Wed, 13 Oct 2004 10:56:40 +0000


Even if there is some progress in usability for personal workstations, the main application for *BSD operating systems remains as operating systems for servers.

For many servers, it is very important to be able to install the operating system on a computer without CD drives or floppy drives.

With FreeBSD, that is very simple, you just set up a TFTP server in whose chroot directory you put four files:

1. pxeboot, unfortunately you must have an already working FreeBSD to recompile it with TFTP support as the one included in the release works with NFS, which does not make sense since pxeboot itself can be loaded only via TFTP so even in the (rare) cases when a NFS server already exists and is available for such use, it does not save you anything, so why bother with it :-(

2. an appropriate boot/loader.rc that will load kernel and mfsroot

3. any generic or custom kernel that will run on the target system

4. the mfsroot file taken from the release you want to install, where it can be found both in /boot and in /floppies/mfsroot.flp (also in /floppies/boot.flp)

After configuring the TFTP server and a DHCP server, you can boot the target computer via Ethernet and then you are able to install the desired FreeBSD release by running manually or automatically, from a script, the programs contained in mfsroot.

In the existing DragonFly snapshots, at least in 20040913, I have not seen any equivalent of the FreeBSD mfsroot, so I presume that someone who wants to do a network installation must build a mfs image file by reading the instructions for the manual installation and copying all the files listed there as required (boot0cfg, fdisk, disklabel, newfs, dd, mount etc.) together with a shell in which to boot and ftp and tar in order to substitute the copying from CD with copying of archives from an FTP server and extracting them on the target computer.

This is quite tedious, moreover, the required executables are dynamically linked in the DragonFly snapshot, so I must also identify and copy all the needed libraries and if I do this on a non-BSD computer I cannot just run ldd on them but I must look in the binary files with a hex editor or else do many cycles of trial and error. I could certainly do that, but someone with less experience in *BSD, who would just want to try DragonFly to see how it compares with other alternatives, might not be able to do it. Also, the resulting mfs image file might be quite large compared to the internal memory available in the target system, unlike the 4.5 MB (uncompressed) of the FreeBSD installation mfsroot.

There is also the problem of pxeboot, the DragonFly snapshot has a pxeboot, but it probably uses the same uninspired default NFS protocol inherited from FreeBSD. I believe that, in order to be more useful for those that do not have an already working DragonFly system and thus are unable to recompile pxeboot, a release should include either both a pxeboot.nfs and a pxeboot.tftp or just the TFTP pxeboot, which, unlike the NFS pxeboot, does not impose any additional resource requirement (like a NFS server) on the installer.

Can a FreeBSD pxeboot (e.g. a TFTP one) replace the DragonFly pxeboot, i.e. can it boot the DragonFly kernel with a mfs root file system and transmit parameters like vfs.root.mountfrom to the kernel or the loader-kernel interface has already diverged in DragonFly ?

Are there any plans to prepare something equivalent with the FreeBSD installation mfsroot for a network installation in future releases ?

I understand that there is a plan to do a headless installer using bootable USB media. That is very good and useful, but there is also a need to be able to do Ethernet-only installations for servers that have difficult access, as FreeBSD can do, so this should be taken into consideration for future releases.

Best regards !

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]