Non-embedded microdrive install issues



  • I've just completed an install of 1.0.1 followed by one of the 1.0.2 snapshots onto a microdrive without doing anything special.

    Could it be a problem with the IDE controller or cable you're connecting it to?  Maybe worth checking by using a known good CF card (after all, you've confirmed that the microdrive and adapter are ok).



  • I installed pfSense to a 1GB CF card to test it right after I wasn't able install it to the microdrive.  The IDE controller and cable are fine, I have pfSense running on that computer off a 3.5" drive right now using the existing IDE cable.  The microdrive is detected as an 8GB drive in BIOS as well, it's not using DMA (PIO mode) either.

    I'll have to play around with it some more.  Like I said, I was able to install pfSense to the microdrive via USB, so there is an image on it currently, I just can't get the volume to mount once FreeBSD has started been loaded, which makes no sense because it's booting off that drive (no LiveCD).



  • Actually, it does make sense and I've seen it under both Linux and BSD often enough.

    The problem is that fstab contains details of where the kernel can find the rest of the OS.  If that doesn't refer to the location that the OS can be found at then the boot fails at that point.  One answer is to mount the media on another system and then change fstab to refer to the location that the Microdrive is at (in my case it's /dev/ad4).



  • I have been toying with this issue on and off the last few weeks. both on WRAP boxes and more-normal-pc type devices (e.g. contivity 100)

    it's not fstab type issue, I am fairly certain. I have tried the helpful advice from wiki and forum with no luck.

    as others have experienced, I can install no problem embedded or full install to a 5GB microdrive, both from USB and from CF-IDE adapter. but booting it always comes up with that same error of no root found (booting both from USB and from CF adapter). and the debug prompt that lets you list all available GEOM devices does not show the microdrive, definitely.

    however if I install to a non-microdrive CF, everything is just fine (both embedded and full).

    I have read that some microdrives are somehow set to force IDE slave and cannot be changed, altho I don't think that is the issue. I have tried to change the CHS of my various 5GB microdrives and they will not, so that may be the issue w.r.t GEOM? (and yes I have tried many permutations on and off of DMA, LBA, etc.)

    not sure if this is important or not, but I can install FreeNAS via USB onto the microdrive on my amd64 desktop, and also boot it successfully from the same USB cardreader (but still not from IDE on things like WRAP or nortel contivity; and no it's not a dma/acpi issue 'cos I turn those off in /boot/loader.conf thankyouverymuch, and substitute the embedded kernel where appropriate). I do realize that FreeNAS install does not try to hardcode a hd device into any config files, hence its success booting from USB. but still an interesting tidbit, I think.



  • Was this by chance the same Seagate 4G microdrive that won't boot under FreeBSD 6.x?



  • Mine was a Seagate 8GB microdrive.  I'd still like to sure it at some point :)



  • Well, here is a potential solution, I just don't know how to do it.  Like I've previously stated, I can get pfSense installed to the microdrive when it's connected via USB.  Does anyone know how I can get it to boot off a floppy drive with a bootloader that points to the USB microdrive?

    I know it's sort of offtopic, but it's a temporary fix.  My mobo won't boot from USB :(



  • Have you tried installing an image via PhyDiskwrite (available at http://m0n0.ch/wall/downloads.php )?
    If you can access the CF from windows or even DOS then you could try this.

    Well, to my knowledge there are only embedded images available which are a bit restricted compared to the full version. But it might be a start at least.



  • I don't see how PhyDiskwrite is going to help me.  I can already install the image to the microdrive via USB.  Via IDE freeBSD isn't recognizing the drive.



  • I thought the references from an USB install were misleading when booting as IDE device.
    This way the install is IDE only.

    It doesn't help if the system/BIOS doesn't recognise your CF.

    Ignore this if I am getting it completely wrong  ::)



  • hmmm, I'll try it later this week and report back, thanks :)



  • Physdiskwrite wont work because once the kernel gets to the point where its looking for the filesystem, it will fail.  FreeBSD simply fails accessing filesystems on these drives.  Your idea about booting from a floppy and then dropping to the Microdrive via usb for the filesystem is exactly what I did.  Instead of using a floppy, I used CF cards to boot the kernel and then changed the fstab entry to point to the microdrive at /dev/sdwhatever it was and that worked via USB.  Here are the steps I took to hack mine to work:

    1)  Wrote the embedded image via physdiskwrite to a 128MB CF card I had laying around
    2)  Connect both the CF card (cf->ide adapter) and the microdrive via USB
    3)  Boot the livecd then install the full pfsense to the microdrive via USB
    4)  Exit the installer or boot the livecd again
    5)  Dropped to the shell and created folders in /tmp called 128CF for the CF card and MD for the microdrive
    6)  Mounted both filesystems to their respective folders I created
    7)  I dont remember if I had to or not but here you may need to change the embedded filesystem to read/write as its default is read only.  There's a script in /etc to do that although I think thats unecessary in this instance.
    7)  Copy the entire /boot/ folder to the /tmp/128CF/boot/ folder (This should overwrite everything and I only did this because i'm not using WRAP hardware and needed the vga/keyboard support, you can keep the embedded kernel if you like I think)
    8)  Edit /etc/ttys using vi and uncomment the line (basically take out the #):

    console none unknown off secure

    9)  Save and exit that (this gives you console support I believe).
    10)  Edit /boot/loader.conf and add/modify the following:

    autoboot_delay="1"
    hw.ata.atapi_dma="0"
    hw.ata.ata_dma="0"
    loader_color="NO"
    hw.pci.allow_unsupported_io_range="1"
    autoboot_delay=1
    hint.sio.0.flags="0x30"
    debug.acpi.disable="thermal"

    Again, this is all for non WRAP hardware.  If you're on the WRAP platform, then most of this stuff you shouldnt change.

    11)  Now, edit /etc/fstab using vi and change it to the following so that it points to the USB microdrive, using whatever device name your system assigned it.  da0s1a/s1b are what my system used, yours may be the same or they may be different:

    Device Mountpoint FStype Options Dump Pass#

    /dev/da0s1a / ufs rw 1 1
    /dev/da0s1b none swap sw 0 0

    12)  Unmount both filesystems (umount command I think)
    13)  Exit the shell and reboot

    You should notice it boots from the CF, or floppy or whatever you choose, and then drops to the USB microdrive for the rest of the filesystem so it in theory uses the CF as a boot floppy and the microdrive for the filesystem for packages and everything else as all it needs from the CF is the kernel.  I think these instructions could be similar if you wanted to boot from a floppy although its easier from another CF card which i'm sure you probably have laying around somewhere.  You just need one big enough to write the embedded image to (128MB).

    Good luck!



  • I just got my hands on an Hitachi 4GB microdrive.  I happened to have bought an ipod mini and a seagate 8gb hard drive recently… So I upgraded the drive in the ipod mini and salvaged the Hitachi 4GB from that unit.  I'm going to test this Hitachi drive with pfsense.  If its able to boot from this drive then its simply an issue of FreeBSD not liking the Seagate drives.  If the Hitachi does indeed work then I have another Seagate 8GB coming in and another ipod to upgrade so i'll swap out both drives from our carp systems to Hitachi's and get rid of all the hacking I had to do to make the system work.



  • To find more better IDE-CF Adapter , you can visit http://www.soarland.com , the menufactory has low price and good quality.
    support 8G CF .



  • @matt518000:

    To find more better IDE-CF Adapter , you can visit http://www.soarland.com , the menufactory has low price and good quality.
    support 8G CF .

    Thanks for the advertisement, but the IDE-CF adapter has nothing whatever to do with the problem.  The BSD kernel fails to recognize the Seagate CF microdrive after the BIOS bootloader is finished.  (And I did try four different brands of IDE-CF adapter with identical results.)



  • so I was right, it was the Seagate drives all along.  I just tested the Hitachi 4GB microdrive I pulled from an ipod mini and it boots in my device fine.  FreeBSD recognizes it, although I have to turn off DMA for it to load successfully but it works fine in PIO mode.  So if you really want to go the microdrive route, your best bet is to stay away from Seagate drives and go with Hitachi.



  • I guess I don't see how it is the "fault" of the Seagate drive, which works perfectly with every other OS, including version 4 of FreeBSD.  It's only version 5 and 6 where the driver is borked for the Seagate.  Yes, it would be nice if everyone could wave a magic wand and their Seagate drives would magically become Hitachi.  But some folks (even folks writing this very message) already HAVE a number of Seagate drives and would dearly love to task them running pfSense walls.

    This is really at the feet of the FreeBSD team.  Unfortunately I don't see anyone busting it to get this bug fixed.  Maybe you should have put a higher priority on the bug when you reported it.  I don't quite understand why it was assigned with "low" priority.  It's pretty damned high priority if you can't get your firewall running, to my way of thinking.



  • Unfortunately at the time I submitted that message I figured that it wasnt that big of a deal and they would get to it eventually.. I didnt know that it would be completely ignored.  Is there a way I can change the priority or is it too late now?  I myself had 2 seagate microdrives and luckily I was able to swap out one with an hitachi at no cost but I have to eat the cost on the 2nd because I dont work for the company I deployed this at anymore.  I  want it to be as easy as possible for my old boss and replacement to maintain and upgrade.  I ordered another hitachi today and will go back in to swap the drive next week.

    Thanks



  • Well, you could probably help by working with them, probably on the freebsd-stable mailing list.  I'm pretty sure that the use of CF microdrives are an edge case and, as a result, not likely to receive any attention otherwise.



  • @joebarnhart:

    @matt518000:

    To find more better IDE-CF Adapter , you can visit http://www.soarland.com , the menufactory has low price and good quality.
    support 8G CF .

    Thanks for the advertisement, but the IDE-CF adapter has nothing whatever to do with the problem.  The BSD kernel fails to recognize the Seagate CF microdrive after the BIOS bootloader is finished.  (And I did try four different brands of IDE-CF adapter with identical results.)

    I think you must embed an Seagate IC , I use FreeBSD boot from CF too , It works well


Log in to reply