mount usb flash drive - files inconsistent with amd64

Anton Shterenlikht mexas at bristol.ac.uk
Fri Sep 23 09:25:34 UTC 2011


I've got a usb flash drive, on which I recorded
some data on a Windows box. I'm trying to mount
in on FreeBSD now to read the data. I get a different
set of files, depending on whether I mount on amd64
or on sparc64.


On amd64 r220040:

The flash drive is identified as:

da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <Kingston DataTraveler II+ PMAP> Removable Direct Access SCSI-0 device 
da0: 40.000MB/s transfers
da0: 1967MB (4029440 512 byte sectors: 255H 63S/T 250C)

I get da0s1 device:

# ls -al /dev/da0*
crw-r-----  1 root  operator    0, 111 Sep 23 09:53 /dev/da0
crw-r-----  1 root  operator    0, 112 Sep 23 09:53 /dev/da0s1

I can mount it as MSDOS FS, and get my files:

# mount -t msdosfs /dev/da0s1 /mnt/
# df | grep mnt
/dev/da0s1     4021560   369072  3652488     9%    /mnt
# ls -al /mnt/
total 2148
drwxr-xr-x   1 root  wheel    4096 Dec 31  1979 .
drwxr-xr-x  24 root  wheel     512 Sep 23 00:16 ..
-rwxr-xr-x   1 root  wheel  394393 Apr  6 15:50 debbie.csv
-rwxr-xr-x   1 root  wheel  523776 Apr  6 15:49 debbie.xls
drwxr-xr-x   1 root  wheel   69632 Apr  7 16:52 x80-a01-190psi
drwxr-xr-x   1 root  wheel  102400 Apr  7 11:20 x80-t01-190bar
# du -sh /mnt/
160M    /mnt/

I cannont mount /dev/da0 itself:

# umount /mnt/
# mount /dev/da0 /mnt/
mount: /dev/da0 : Invalid argument
# mount -t msdosfs /dev/da0 /mnt/
mount_msdosfs: /dev/da0: Invalid argument


However, on sparc64 r216048, the situation is reversed.

The drive is identified exactly as on amd64:

da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <Kingston DataTraveler II+ PMAP> Removable Direct Access SCSI-0 device 
da0: 1.000MB/s transfers
da0: 1967MB (4029440 512 byte sectors: 255H 63S/T 250C)

But there is no da0s1 device:

# ls -al /dev/da0*
crw-r-----  1 root  operator    0, 109 Sep 23 09:59 /dev/da0

Instead I can mount da0 directly, and it's UFS, not msdosfs:

# mount /dev/da0 /mnt/
mech-anton240# df |grep mnt
/dev/da0     1949518       6  1793552     0%    /mnt

And the files I get are different:

# ls -al /mnt/
total 8
drwxr-xr-x   3 root  wheel     512 Aug 19 12:59 .
drwxr-xr-x  22 root  wheel     512 Aug  1 15:35 ..
drwxrwxr-x   2 root  operator  512 Aug 19 12:58 .snap
-rw-r--r--   1 root  wheel      17 Aug 19 12:59 zzz
# du -sh /mnt/
6.0K    /mnt/
#

What's going on?
Is this expected?
Or has this flash drive got corrupted somehow?

Many thanks
Anton

-- 
Anton Shterenlikht
Room 2.6, Queen's Building
Mech Eng Dept
Bristol University
University Walk, Bristol BS8 1TR, UK
Tel: +44 (0)117 331 5944
Fax: +44 (0)117 929 4423


More information about the freebsd-sparc64 mailing list