Having opted to utilise the TO’s eMMC partition only as emergency fall-back I was left with two choices to run the OS off:
- an interior SSD, or
- an interior USB drive
Since u-boot as currently implemented has GPT not enabled and not wanting to partition the SSD with legacy MBR I was left with the USB drive option, also requiring an adapter to host the USB drive.
That said and having deployed this
Bus 001 Device 002: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x090c Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) idProduct 0x1000 Flash Drive bcdDevice 11.00 iManufacturer 1 SMI Technology iProduct 2 Intenso Micro Line iSerial 3 19041700008101 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 255 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 255
I have noticed that with prolonged, and quite extensive read/write operations due to frequent updates/rollbacks in the TOS developments branches, the disk I/O operations turned increasingly sluggish and at some point the node would fail to boot entirely.
Having searched the public domain it would appear that BTRFS and USB drives are not a particular good match in light of:
- BTRFS’s metadata (superblock) operations
- (cheap) USB hardware implementations
If the boot fails there is no way to revive the node other than via UART serial cable and restore to the default boot environment - that being the eMMC partition. From there then I reformatted the USB partition and restored a previously exported snapshot.