Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Mar 2020 15:39:33 -0600
From:      Gary Aitken <freebsd@dreamchaser.org>
To:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   SD card formatting
Message-ID:  <b7070f0e-a387-9c7e-945f-ab708f9f5a76@dreamchaser.org>

next in thread | raw e-mail | index | archive | help
11.3-RELEASE-p6 GENERIC  amd64

I'm having trouble reading SD cards formatted in my camera (Olympus EM1-MkII)
or on a Win 7 system.  When attempting to mount, I get the following:

$ mount -t msdosfs /dev/da0s1 /mnt/memstick
mount_msdosfs: /dev/da0s1: Invalid argument
$ mount -t ntfs /dev/da0s1 /mnt/memstick
mount: /dev/da0s1: Operation not supported by device

Cards used without formatting *usually* seem to work.

If I look at the cards which don't mount using gpart, I see:

Card formatted in camera:
$ gpart show -p /dev/da0
=>       63  120944577    da0  MBR  (58G)
          63      32705         - free -  (16M)
       32768  120911872  da0s1  ntfs  [active]  (58G)
$ gpart show -r /dev/da0
=>       63  120944577  da0  MBR  (58G)
          63      32705       - free -  (16M)
       32768  120911872    1  7  [active]  (58G)

If I look at cards that I know I can mount I see the following:

$ gpart show -p da0
=>      63  30375873    da0  MBR  (14G)
         63      8129         - free -  (4.0M)
       8192  15118336  da0s1  fat32lba  (7.2G)
   15126528  15249408         - free -  (7.3G)
$ gpart show -r /dev/da0
=>      63  30375873  da0  MBR  (14G)
         63      8129       - free -  (4.0M)
       8192  15118336    1  12  (7.2G)
   15126528  15249408       - free -  (7.3G)

or:

$ gpart show -p /dev/da0
=>       1  15633407    da0  MBR  (7.5G)
          1        31         - free -  (16K)
         32  15633376  da0s1  fat32  (7.5G)
$ gpart show -r /dev/da0
=>       1  15633407  da0  MBR  (7.5G)
          1        31       - free -  (16K)
         32  15633376    1  11  (7.5G)

I tried reformatting as follows:

# gpart delete -i 1 da0
da0s1 deleted
# gpart add -i 1 -a 4M -t "\!11" da0
da0s1 added
# gpart show -r da0
=>       63  120944577  da0  MBR  (58G)
          63       8129       - free -  (4.0M)
        8192  120930304    1  11  (58G)
   120938496       6144       - free -  (3.0M)
# newfs_msdos -F 32 /dev/da0s1
/dev/da0s1: 120900736 sectors in 1889074 FAT32 clusters (32768 bytes/cluster)
BytesPerSec=512 SecPerClust=64 ResSectors=32 FATs=2 Media=0xf0 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=120930304 FATsecs=14759 RootCluster=2 FSInfo=1 Backup=2

If I put this card in the camera, I get an error ("Card Error")
If I again format the card in the camera, I can't mount it.

I need to reformat these cards so I can use them in the camera and on
freebsd, and apparently neither the camera nor win7 does that, so...
What's the right way to lay out, format, and create a file system on an
SD card so it is usable by cameras and windoze?

Thanks,

Gary



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b7070f0e-a387-9c7e-945f-ab708f9f5a76>