SD cards and USB sticks are often used in things like cameras, stereos,
music players, TV,s etc. which have no mechanism (brought out to the user,
at any rate) for issuing an "eject" or "unmount" command (even should the
user actually want to do this which most of them don't, being completely
clueless about filesystems)

Additionally with Windows sometimes even right-clicking on the device and
telling it to eject results in the error "I'm still busy with this you can't
eject it right now you cretin"  (or something to this effect)

As a result I never use anything other than FAT or exFAT on this media since
you never know when you are going to have to force a manual ejection and
override the OS.

But the journaling thing did not occur to me at all.  That's even a better
reason not to use those filesystems on such media, wearing out the media
with excessive writes to a journal

Ted

-----Original Message-----
From: PLUG <plug-boun...@lists.pdxlinux.org> On Behalf Of John Jason Jordan
Sent: Wednesday, October 25, 2023 12:06 PM
To: PLUG <plug@lists.pdxlinux.org>
Subject: [PLUG] Formatting confusion SOLVED

I have a brand new 1TB SD card. When I first inserted it into the computer
(SparkyLinux) it was automatically mounted and appeared to be working fine.
However, it was formatted exFAT, which I didn't really want, so I fired up
GParted and proceeded to remove the partition, recreate it, and format it as
ext4, with the label 1TB-SD. The operations completed without error, but it
could not be mounted, with the error 'missing codepage or helper program, or
other error.'

I closed GParted and ran Gnome Disk Utility, which offered 'check
filesystem,' 'repair filesystem,' and 'format,' among other options. I
started with 'check,' but it gave the same error message as above. 'Repair'
completed without error, but it still could not be mounted, giving the same
error message. Finally, still in Gnome Disk Utility, I reformatted it as
exFAT and reapplied the label. After that it could be mounted and functioned
normally.

Still not happy I decided to move to the command line. This is what happened
there

sudo mkfs.ext4 -L "1TB-SD" /dev/mmcblk0
mke2fs 1.47.0 (5-Feb-2023)
Found a dos partition table in /dev/mmcblk0 Proceed anyway? (y,N) y
Discarding device blocks: done Creating filesystem with 262144000 4k blocks
and 65664000 inodes Filesystem UUID: 735301d6-e49f-4aa8-9222-8f621f57f7e1
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848 Allocating group tables: done Writing inode tables:
done Creating journal (262144 blocks): done Writing superblocks and
filesystem accounting information: done

$ sudo mkdir /media/jjj/1TB-SD
$ sudo mount /dev/mmcblk0 /media/jjj/1TB-SD
mount: /media/jjj/1TB-SD:
wrong fs type, bad option, bad superblock on /dev/mmcblk0, missing codepage
or helper program, or other error. dmesg(1) may have more information after
failed mount system call.

$sudo dmesg <sorry, hard to read this>
[442690.762650] EXT4-fs error (device mmcblk0p1): ext4_find_extent:936:
inode #8: comm pool-udisksd: pblk 131104767 bad header/extent: invalid magic
- magic 0, entries 0, max 0(0), depth 0(0) [442690.764359] EXT4-fs
(mmcblk0p1): Remounting filesystem read-only [442690.764363]
jbd2_journal_init_inode: Cannot locate journal superblock [442690.764365]
EXT4-fs (mmcblk0p1): Could not load journal inode [445844.987215] EXT4-fs
error (device mmcblk0): ext4_find_extent:936:
inode #8: comm mount: pblk 131104767 bad header/extent: invalid magic -
magic 0, entries 0, max 0(0), depth 0(0) [445845.991577]
jbd2_journal_init_inode: Cannot locate journal superblock [445845.991592]
EXT4-fs (mmcblk0): Could not load journal inode [445897.081747] EXT4-fs
error (device mmcblk0): ext4_find_extent:936:
inode #8: comm pool-udisksd: pblk 131104767 bad header/extent: invalid magic
- magic 0, entries 0, max 0(0), depth 0(0) [445897.083607] EXT4-fs
(mmcblk0): Remounting filesystem read-only [445897.083627]
jbd2_journal_init_inode: Cannot locate journal superblock [445897.083633]
EXT4-fs (mmcblk0): Could not load journal inode

Is it possible that the device was somehow manufactured so that it can only
be formatted exFAT? I could use some clues. Maybe someone can figure out
what the dmesg results mean. :)

Edit: Because PLUG was plugged up I posted on Ubuntu forums, where I found
the answer. It appears that SD cards don't appreciate journaling, so my
command worked after some edits:

        sudo mke2fs -t ext4 -O ^has_journal -L 1TB-SD /dev/mmcblk0

I'm don't know why mkfs.ext4 needed to change to mke2fs -t ext4, nor do I
understand the syntax of -O ^has_journal, but it worked, in spit


Reply via email to