I wanted to copy some movies to an external disk in preparation for our summer vacation, and attached an external USB3 disk to our Dreambox satellite receiver.
Metadata
Nothing happened; the disk did not get automatically mounted. Manually mounting also failed. dmesg told me:
usb 10-2: new SuperSpeed USB device number 2 using xhci_hcd scsi2 : usb-storage 10-2:1.0 scsi 2:0:0:0: Direct-Access TOSHIBA External USB 3.0 0 PQ: 0 ANSI: 6 sd 2:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB) sd 2:0:0:0: [sdb] Write Protect is off sd 2:0:0:0: [sdb] Mode Sense: 43 00 00 00 sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdb: sdb1 sd 2:0:0:0: [sdb] Attached SCSI disk EXT4-fs (sdb1): couldn't mount RDWR because of unsupported optional features (400)
I formatted the disk on a Debian unstable (kernel 4.19), and it enabled the metadata checksum feature that is not supported by the DreamOS 2.6's kernel (3.4-4.0-dm7080). I had to disable that feature on the disk with my laptop:
$ e2fsck -f /dev/sdb1 $ tune2fs -O ^metadata_csum /dev/sdb1
Source: Couldn't mount RDWR because of unsupported optional features (400)
Journal
The next mount try also resulted in an error:
usb 10-2: new SuperSpeed USB device number 3 using xhci_hcd scsi3 : usb-storage 10-2:1.0 scsi 3:0:0:0: Direct-Access TOSHIBA External USB 3.0 0 PQ: 0 ANSI: 6 sd 3:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB) sd 3:0:0:0: [sdb] Write Protect is off sd 3:0:0:0: [sdb] Mode Sense: 43 00 00 00 sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdb: sdb1 sd 3:0:0:0: [sdb] Attached SCSI disk JBD2: Unrecognised features on journal EXT4-fs (sdb1): error loading journal
So kernel 4.19 also adds new journal data.
$ tune2fs -l /dev/sdb1 tune2fs 1.43-WIP (18-May-2015) Filesystem volume name: videos Last mounted on: /media/cweiske/videos Filesystem UUID: 7e07e565-99c7-4ea9-b2a3-1eb02ba23572 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 61054976 Block count: 244190208 Reserved block count: 12209510 Free blocks: 210555405 Free inodes: 61042713 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 965 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Fri Feb 15 20:05:55 2019 Last mount time: Sat Jul 13 10:51:53 2019 Last write time: Sat Jul 13 11:02:12 2019 Mount count: 0 Maximum mount count: -1 Last checked: Sat Jul 13 11:02:12 2019 Check interval: 0 (<none>) Lifetime writes: 121 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 32 Desired extra isize: 32 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 83196fde-051e-43c5-967c-7aa3935c571e Journal backup: inode blocks
Instead of finding out which journal feature I had to disable, I disabled the whole journal:
$ tune2fs -O ^has_journal /dev/sdb1
I could now finally mount the disk on the Dreambox.
Source: Debian User Forums: Boot failing: No init found
Reactivating the journal
Tom told me how to reactivate the journal:
$ tune2fs -O has_journal /dev/sdb1