Booting embedded from usb stick?



  • I am trying to boot the embedded version of pfSense (pfSense-2.0-RC3-4g-i386-20110621-1821-nanobsd.img) from a 4 GB usb stick on an HP t5145 thin client.  I wrote the image to the usb stick using dd.  The image boots and outputs the terminal output to the serial port, as expected.  The boot hangs at a mountroot> prompt.  Here's the end of the boot output:

    uhub3: 6 ports with 6 removable, self powered
    Root mount waiting for: usbus3
    ugen3.2: <sandisk>at usbus3
    umass0: <sandisk 0="" 2="" cruzer="" blade,="" class="" 0,="" rev="" 2.00="" 2.00,="" addr="">on usbus3
    Root mount waiting for: usbus3
    Trying to mount root from ufs:/dev/ufs/pfsense0
    ROOT MOUNT ERROR: 
    If you have invalid mount options, reboot, and first try the following from
    the loader prompt:
    
         set vfs.root.mountfrom.options=rw
    
    and then remove invalid mount options from /etc/fstab.
    
    Loader variables:
    vfs.root.mountfrom=ufs:/dev/ufs/pfsense0
    vfs.root.mountfrom.options=ro,sync,noatime
    
    Manual root filesystem specification:
      <fstype>:<device>Mount <device>using filesystem <fstype>eg. ufs:/dev/da0s1a
                           eg. cd9660:/dev/acd0
                           This is equivalent to: mount -t cd9660 /dev/acd0 /
    
      ?                  List valid disk boot devices
      <empty line="">Abort manual input
    
    mountroot></empty></fstype></device></device></fstype></sandisk></sandisk> 
    

    If I enter a ? to see the valid boot devices, nothing is shown.  When I had the flash module the device usually boots from in there, its partitions were listed when I reached this point.  Is there any thing I can do to get this recognized?  The memstick image booted fine on the same hardware with no intervention.

    Thanks!

    Ken


  • Netgate Administrator

    It's because the NanoBSD image expects to be on an IDE channel.
    Try: ufs:/dev/da0s1a  at the mountroot prompt.

    You will have to edit your fstab file to get pfSense to look in the right place every time.
    See: http://forums.freebsd.org/showthread.php?t=19715

    Steve



  • @stephenw10:

    It's because the NanoBSD image expects to be on an IDE channel.
    Try: ufs:/dev/da0s1a  at the mountroot prompt.

    You will have to edit your fstab file to get pfSense to look in the right place every time.
    See: http://forums.freebsd.org/showthread.php?t=19715

    Steve

    Thanks for the suggestion.  I tried this, but didn't get anywhere.  The /dev/da0s1a partition is not seen by the bootloader.  Here is the output of the ? option:

    
    mountroot> ?
    
    List of GEOM managed disk devices:
    
    Loader variables:
    vfs.root.mountfrom=ufs:/dev/ufs/pfsense0
    vfs.root.mountfrom.options=ro,sync,noatime
    
    Manual root filesystem specification:
      <fstype>:<device>Mount <device>using filesystem <fstype>eg. ufs:/dev/da0s1a
                           eg. cd9660:/dev/acd0
                           This is equivalent to: mount -t cd9660 /dev/acd0 /
    
      ?                  List valid disk boot devices
      <empty line="">Abort manual input
    
    mountroot></empty></fstype></device></device></fstype> 
    

    Is there anything else I can do to get this partition seen?

    Ken



  • I figured out the issue.  The USB drive needed more time to get registered with the system than the default.  I paused the bootup and set kern.cam.boot_delay=10000, as referenced in your link.  The system came up fine after that.

    How do I add this to the config so it happens every time without my input?  I don't have a working FreeBSD install at the moment.  I tried mounting the ufs-formatted usb stick on my Linux box and MacBook Pro, but I didn't get very far.

    Ken


  • Netgate Administrator

    Create the file /boot/loader.conf.local and add the line there.
    See: http://doc.pfsense.org/index.php/Boot_Troubleshooting

    This doesn't work for everyone but it does in most cases.

    Steve



  • @stephenw10:

    Create the file /boot/loader.conf.local and add the line there.
    See: http://doc.pfsense.org/index.php/Boot_Troubleshooting

    This doesn't work for everyone but it does in most cases.

    Steve

    Worked for me!  Got the box working.  Thanks.

    Ken


Locked