OpenBSD Journal

Netboot x86 Instructions?

Contributed by jose on from the diskless-workstations dept.

Patrick Giagnocavo asks us this question:
"I run a webhosting company that uses OpenBSD almost exclusively.

What I want to do is to boot all my OpenBSD systems off a central server, mounting everything via NFS. I have tried to figure out how to do this, but all the docs are for Sparc/Alpha/HPPA, with no info on how to do this for x86.

Do you have any pointers on how to do this?"

I've seen this for architectures that aren't i386, and I know its almost possible with just a floppy (maybe, but it would be tight, probably). Anyone have a recipe and some notes?

(Comments are closed)


Comments
  1. By RC () on

    I don't get it, what's so difficult about getting an x86 machine to do this via the docs for another platform?

    Comments
    1. By dt23507 () on

      Well, the Sparc and Alpha both have netbooting functionality built into their firmware, which helps out a lot. Most x86 machines, on the other hand, do not.

      Comments
      1. By RC () on

        Netbooting on an x86 is very simple, and there are numerous documents spread all over the net.

        You get the PXE boot image for your NIC, and either write it to an [E]EPROM (which you then stick into your NIC) or you write it to a floppy disk, and boot with that floppy. (The latter is a good solution for testing).

        To get an PXE image, you can visit rom-o-matic

        http://www.rom-o-matic.net/5.0.8/


        I presume everything else will work the same.

        Comments
        1. By Shane J Pearson () on

          You can also load these images as modules into Award Modular BIOS.

          Then "boot from LAN".

          It works great on my AOpen AX6B with D-Link DFE-500TX Tulip based 10/100 NIC. I haven't tried net booting OpenBSD with it though.

          Comments
          1. By RC () on

            **ahem**. PXE just gets and IP, downloads an image, and executes it. If it works on one, it would work on any.

            Saying you haven't tried OpenBSD with PXE is like saying you haven't tried OpenBSD on your new hard drive...

            Comments
            1. By MotleyFool () motleyfool@dawgstar.org on mailto:motleyfool@dawgstar.org

              Yeah, I had to just chuckle when someone commented
              on PXE booting OpenBSD when they had not tried it
              before. Sure it's not hard to set it up IF you
              figure out a way to get the kernel to load, but
              that's a big IF.

              Yes you can do it with pxegrub, but there is NO
              native support for booting the OpenBSD kernel via
              PXE. [Free|Net]BSD both have support for PXE on
              i386 platforms. It's just not a high enough
              priority for the OpenBSD developers.

              Comments
              1. By RC () on

                You're right, I haven't tried it, and I still fail to see the problem.

                How difficult can it be to fetch and load a kernel image? And why would you even need grub?

                Comments
                1. By Thoren () ghz@gbis.com on mailto:ghz@gbis.com

                  I've been using Intel's PXE boot stuff that comes with some of their cards. If you try to use it to grab anything larger than 512k it chokes. According to intel's site the PXE stuff only has access to that famous x86 640k, PXE grabs 128k, then you're left with 512k for your image. So you have to grab something (like grub) that will use memory beyond 640k, start a ramdisk, or whatever, then grab something like a kernel, and boot that. Real
                  architectures can just stuff the entire kerenl into memory and go from there.

                  Comments
                  1. By se () se@arsplus.ru on mailto:se@arsplus.ru

                    I did boot FreeBSD 4.4 with PXE and NFSroot, it's work.

                    Comments
                    1. By megan () orangechoc@yahoo.com on mailto:orangechoc@yahoo.com

                      Hi
                      I can network boot OpenBSD using the pxegrub loader, but not with root over NFS. How did you get this going with FreeBSD 4.4??

      2. By zeshan () malikshani2000@yahoo.es on no

    2. By Janne Johansson () on

      Because x86 still is stuck in the 80's.
      Booting from net or cdrom is done by faking a floppy
      drive, getting a 1.44MB image and calling it A:
      and then booting that one.
      Knowing that, you soon realise why netbooting
      becomes an issue. Other platforms can load kernels
      several MB large and run them, meaning that not only
      can they contain all drivers (like GENERIC) but also
      an included ramdisk that does real stuff.

      1.44MB buys you only whats on the install floppies,
      which is far less than I'd like for a rescue disk,
      let alone complete netbooting.

      Comments
      1. By zil0g () on

        surely you can fit what you need in 1.4MB?
        I netbooted an old pc some time ago, with floppy - not pxe, roll out a stripped down kernel, strip and gzip it, think I got it down to some ~600k

        =)

        Comments
        1. By Anonymous Coward () on

          I dont get an emacs on that one. =)
          Nah, jokes aside. Yes, some stripped kernels can
          be used in less than 1.44M, but I don't want to
          have to choose. I'd like NFS to be there, audio
          support in the kernel and possibility to export
          SMB shares or whatever. Not stripped down to unusability.
          And 1.44M is that small, to me.

  2. By schubert () on

    You do need a network card that supports netbooting (I'm assuming you want to boot even the kernel off of the central server using tftp/bootp etc?) The el-cheapo $10 nics usually won't cut it.. but you're an ISP this shouldn't be an issue. The same instructions you'd use to boot openbsd over the network on a sparc or hppa should also apply, you just need to make sure you dont' have low-end or brain damaged x86 hardware that can't do proper net booting.

    Comments
    1. By mirabile () on

      brain-damaged x86 is a tautology, ya know? ;-)

      (I still want a dual Opteron laptop)

    2. By Anonymous Peon () on

      http://www.mendarasystems.com/store/viewProduct.asp?productid=N000-005
      ...Google for "Ethernet boot ROMs" ...
      ...Some systems (Compaq Deskpros come to mind) include netbooting as a BIOS feature for their onboard NICs.

      Just remember that the ROMs tend to be NIC-specific...

  3. By Hjorten () on

    ..That getting an OpenBSD to PXE-boot on x86 is not easy, to say the very least!!

    This is hunting a lot of people trying to PXE-boot their small embedded systems.. At some point someone patched PXEGrub (etherboot just doesn't work with OBSD) to do this on OpenBSD, but the patch asn't been maintained (AFAIK).

    But both NetBSD and FreeBSD can do it, though.

    Check this great resources(!): http://www.munts.com/diskless/netboot.pdf

    and

    Cedric Berger's old patch for PXEGrub:
    http://www.enteract.com/~hal/obsd-grub/

    I always use Intel's EtherExpress (fxp) netcards. They have PXE per default and are great.

    Hope you get the success must others seem not to have gotten at this.

  4. By Anonymous Coward () on

    man diskless
    :-)
    For some related material on running diskless client (yes its on linux) check out ltsp.org

  5. By Anonymous Coward () on

    Instead of getting a special Ethernet card and messing with PXE (which is evil), try making an EtherBoot floppy.

    I've made EtherBoot boot just about anything at one time or another. You can find EtherBoot at

    http://etherboot.sourceforge.net/

    IIRC.

    EtherBoot can also boot Linux or even MS-DOS!

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]