[haiku-development] Re: EFI (was: multi-selection semantics)

  • From: Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 08 Jun 2007 18:24:36 +0200

Hi,

On 2007-06-08 at 11:51:15 [+0200], Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> 
wrote:
> Marcus Overhagen <marcusoverhagen@xxxxxxxx> wrote:
> > Axel Dörfler wrote:
> > > Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx> wrote:
> > > > > I didn't yet think about a new name for nbd; maybe
> > > > > "remote_disk"
> > > > > would do.
> > > > How about the obvious: "network_block_device"?
> > > Now that's a bit redundant, don't you think? But if you want to
> > > keep
> > > remote_disk for the boot loader's protocol only, then I certainly
> > > won't
> > > mind, either.
> > I really think we should keep the short name NBD for the Network
> > Block Device
> > protocol. It's distinct like FTP and NFS.
> 
> It's distinct, but it's neither an accepted standard, nor widely known
> - it's currently mostly a Linux only solution. But since the protocol
> is called NBD indeed, I think the obvious suggestion by Ingo is what we
> should use.
> But NBD also has some unfortunate limitations that don't allow a disk
> larger than 4 GB, so I'm not sure there is much value in it, anyway.

Well, I tend to disagree: I personally am pretty sure that at least 
*something like* nbd will gain popularity soon. There are a couple of 
different "networked block devices" available already (ATA-over-Ethernet, 
iSCSI, several NBD implementations) and with NAS becoming more and more 
popular, I suppose the list will only get longer.

While the 4GB limit is a bit of a bummer, it wouldn't inhibit the purpose of 
NBD in the haiku context: serving haiku's /boot over network to one or more 
clients for easier testing.

> > BTW, If someone wants to help getting PXE boot from network
> > implemented,
> > your help is greatly appreciated.
> >
> > The current state is this:
> > Kernel is loaded via PXE and executed, but it doesn't mount any boot
> > partition.
> > For this, the kernel would need to bring up networking and TCP and
> > load a
> > NBD or remote_disk device.
> 
> For that to work we would need a working solution first. Then, we would
> need to define a protocol on how the kernel knows what service to use -
> and how.
> Also, the boot loader should then be smart enough to load the
> networking stack, and eventually all networking drivers before starting
> the kernel.

Hm, wouldn't the bootloader have to *include* the networking stack and the 
drivers? Maybe I'm wrong, but there would be no way to access the modules, 
since they are living on the other side of the network link, right?
AFAIK, PXE offers downloading an initramfs (cpio-fs), too, so we could stuff 
the needed stuff in there and then the bootloader could tell the kernel that 
there is such a beast. 
The kernel would then of course have to unpack/mount the initramfs and invoke 
a specific program, which in this case (NBD-boot) would set up networking, 
mount /boot and then would let the kernel continue the booting process.

Marcus: When I tested it last time, I think I noticed that your PXE 
bootloader does not use any initramfs yet, is that correct?

Is there any reason not to use an initramfs?

I would *really* like to see haiku boot over PXE, but unfortunately I still 
do not have any spare time :o(

cheers,
        Oliver

Other related posts: