ZFS install on SG-2220 fails
I'm losing SG-2220s in the field left and right because they're in factory environments where power comes and goes constantly. UFS just can't take the frequent unclean shutdowns, and the devices eventually brick themselves. So… I'm taking an early look at 2.4 and ZFS.
So far, not so good. I grabbed pfSense-CE-memstick-ADI-2.4.0-BETA-amd64-latest.img this morning and installed it on my dev SG-2220.
The first sign of trouble is that it hangs on reboot at the end of the installation:
Jan 23 20:32:46 reboot: rebooted by root Jan 23 20:32:46 Waiting (max 60 seconds) for system process `vnlru' to stop… done Waiting (max 60 seconds) for system process `bufdaemon' to stop... done Waiting (max 60 seconds) for system process `syncer' to stop... Syncing disks, vnodes remaining... 0 0 0 done All buffers synced. Uptime: 5m14s
I've left it there for >10min… nothing.
So, hit the reset button and it doesn't boot:
Solaris: NOTICE: Cannot find the pool label for 'zroot' Mounting from zfs:zroot/ROOT/default failed with error 5. Loader variables: vfs.root.mountfrom=zfs:zroot/ROOT/default Manual root filesystem specification: <fstype>: <device>[options] Mount <device> using filesystem <fstype> da0 at umass-sim0 bus 0 scbus6 target 0 lun 0 and with the specified (optional) option list. da0: <generic ultra="" hs-combo="" 1.98="">Removable Direct Access SCSI device eg. ufs:/dev/da0s1a da0: Serial Number 000000225001 zfs:tank da0: 40.000MB/s transfers cd9660:/dev/cd0 ro (which is equivalent to: da0: 3648MB (7471104 512 byte sectors) mount -t cd9660 -o ro /dev/cd0 /) da0: quirks=0x2 <no_6_byte>? List valid disk boot devices . Yield 1 second (for background tasks) <empty line=""> Abort manual input mountroot></empty></no_6_byte></generic></fstype></device></device></fstype>
I'm open to suggestions here, either with getting 2.4 installed over ZFS or (off topic for this forum) hardening 2.3.
It looks like I just need to insert a delay… da0 is showing up just slightly too late and mountroot has already given up.
kern.cam.boot_delay=10000 in loader.conf.local did the trick.