Skip to main content


print("Our virtues and our failings are inseparable")

After upgrading the root SSD on my server from a lowly 240GB Corsair drive with no DRAM to a 500GB Samsung 870 QVO, I found myself wanting to do something interesting with the recently decomissioned corsair drive. I decided to plug it into a SATA to USB3 converter and hook it up to my FreeBSD-powered router so that I can try out ZFS (without having to install the ZFS kernel modules, which you would need on a Linux box).

Before creating a zpool, I figured I would mount the drive before any modifications. After all, I've never actually mounted a linux-formatted drive in FreeBSD before. First thing I did was to take a peak at dmesg:

`ugen1.2: <SABRENT SABRENT> at usbus1 umass0 on uhub0 umass0: <SABRENT SABRENT, class 0/0, rev 3.00/2.04, addr 1> on usbus1 umass0:  SCSI over Bulk-Only; quirks = 0x8100 umass0:5:0: Attached to scbus5 da0 at umass-sim0 bus 0 scbus5 target 0 lun 0 da0: <SABRENT  0204> Fixed Direct Access SPC-4 SCSI device da0: Serial Number YB4206942069G da0: 400.000MB/s transfers da0: 228936MB (468862128 512 byte sectors) da0: quirks=0x2<NO_6_BYTE> `

The dmesg output explains to me that a new SCSI device (da0) is being presented to the system by way of the USB mass storage kernel module. We should now have some new device nodes in /dev:

` root@router ~ $ ls /dev/da0* /dev/da0   /dev/da0s1 /dev/da0s2 `

Great! I see my ext4 data partition (da0s1) and a swap partition (da0s2). Now I should be able to mount my ext4 partition to a mount point:

` root@router ~ $ mount /dev/da0s1 /mnt mount: /dev/da0s1: No such file or directory `

This is a misleading error message, because as we can see from the above "ls /dev/da0*" command, /dev/da0s1 is a file. We're missing something... In FreeBSD, you need to specify the fstype to the mount command. But what fstype should we use for an ext4 disk?

` root@router ~ $ ls /usr/src/sys/fs autofs    cuse      devfs     fdescfs   fuse      nandfs    nfsclient nullfs    pseudofs  tmpfs     unionfs cd9660    deadfs    ext2fs    fifofs    msdosfs   nfs       nfsserver procfs    smbfs     udf `

FreeBSD supports ext2/3/4 through the ext2fs kernel module. If we specify the fstype, we can mount the disk:

` root@router ~ $ mount -t ext2fs /dev/da0s1 /mnt root@router ~ $ ls /mnt bin        dev        home       lib64      media      opt        root       sbin       sys        usr boot       etc        lib        lost+found mnt        proc       run        srv        tmp        var `

Now that I know I can mount my ext4 drive in FreeBSD, I'm going to umount it and follow along in the ZFS section of the FreeBSD handbook to create pools with "zpool" and start my journey into ZFS. I'm still not convinced that I would want to use ZFS instead of LVM, but the only way to find out is to learn more and try it for yourself. I may decide to post again with some useful ZFS information if I get a chance.