Re: USB-Stick kann auf einmal keine "Longnames" mehr

From: <manfred.lotz(at)arcor.de>
Date: Fri, 01 Jun 2007 15:19:19 +0200

At Fri, 1 Jun 2007 11:42:44 +0200 (CEST),
Oliver Fromme wrote:
>
> Manfred Lotz wrote:
> > Wenn ich -l benutze funktioniert es mit den langen Dateinamen bei
> > mir. Nur hatte ich bisher -l nie benutzt und hatte dennoch lange
> > Dateinamen gehabt, was ich versuchte mit deiner Beobachtung in
> > Einklang zu bringen. :-)
>
> Wobei das Problem offenbar vom Datenträger und/oder dem
> Format abhängt.
>

Aber das kann doch nicht sein, oder? Ein Filesystem dürfte doch nichts
mit der Hardware zu tun haben, das müsste doch egal ob stick oder file
gleich sein.

> Ich habe einen USB-mp3-Player (1 GB), auf dem ich, wenn er
> leer ist (d.h. auch keine »versteckten« Dateien), mit Free-
> BSD keine langen Dateinamen anlegen kann, auch wenn ich ihn
> mit -l mounte. Sobald ich unter Windows mal einen solchen
> Dateinamen erzeugt habe (Dummy-Datei mit 0 Bytes genügt),
> geht es auch mit FreeBSD. Soweit ich mich erinnere, war
> das schon immer so, zumindest unter RELENG_6.
>
> Andererseits habe ich genau das umgekehrte Problem, wenn
> ich testweise ein Floppy-Image erstelle, FAT-formatiere und
> mounte: Ich kann problemlos lange Dateinamen anlegen, auch
> wenn ich es mit der Option -s mounte (die das laut Manpage
> eigentlich unterbinden sollte):
>
> # mdconfig -a -t swap -s 1440k
> md1
> # dd if=/dev/zero of=/dev/md1
> ..
> # newfs_msdos /dev/md1 fd1400
> /dev/md1: 2840 sectors in 355 FAT12 clusters (4096 bytes/cluster)
> bps=512 spc=8 res=1 nft=2 rde=512 sec=2880 mid=0xf0 spf=2 spt=18 hds=2 hid=0
> # mount -t msdos -o -s /dev/md1 /mnt
> # touch /mnt/laberfaselsuelz
> # ls -l /mnt
> total 0
> -rwxr-xr-x 1 root wheel 0 Jun 1 11:39 laberfaselsuelz
>
> Also, offenbar ist irgendwas mit den longnames-/shortnames-
> Optionen im Argen. Habe aktuell leider keine Zeit, mich da
> in den Source zu vergraben, da mein Workaround problemlos
> funktioniert.

Alles sehr verwirrend. Ich habe es mal selber gestestet mit einem USB
Stick und einer file und bei mir funktioniert es wie es sein soll.

Hier die Makefile:

<---------------- snip ------------------------>

MOUNTPOINT = /mnt/usbstick
MDNUM = 7

long:
        newfs_msdos /dev/da0
        mount -t msdos -o -l /dev/da0 $(MOUNTPOINT)
        touch $(MOUNTPOINT)/averylongnameisthis
        ls -l $(MOUNTPOINT)
        umount /dev/da0

short:
        newfs_msdos /dev/da0
        mount -t msdos -o -s /dev/da0 $(MOUNTPOINT)
        touch $(MOUNTPOINT)/averylongnameisthis
        ls -l $(MOUNTPOINT)
        umount /dev/da0

mdlong:
        dd if=/dev/zero of=mdtestfile bs=2k count=5k
        mdconfig -a -t vnode -s 10m -f mdtestfile -u $(MDNUM)
        newfs_msdos -f 1440 -c 1 -S 1024 /dev/md$(MDNUM) $(MOUNTPOINT)
        mount -t msdos -o -l /dev/md$(MDNUM) $(MOUNTPOINT)
        touch $(MOUNTPOINT)/averylongnameisthis
        ls -l $(MOUNTPOINT)
        umount /dev/md$(MDNUM)
        mdconfig -d -u $(MDNUM)
        rm mdtestfile

mdshort:
        dd if=/dev/zero of=mdtestfile bs=2k count=5k
        mdconfig -a -t vnode -s 10m -f mdtestfile -u $(MDNUM)
        newfs_msdos -f 1440 -c 1 -S 1024 /dev/md$(MDNUM) $(MOUNTPOINT)
        mount -t msdos -o -s /dev/md$(MDNUM) $(MOUNTPOINT)
        touch $(MOUNTPOINT)/averylongnameisthis
        ls -l $(MOUNTPOINT)
        umount /dev/md$(MDNUM)
        mdconfig -d -u $(MDNUM)
        rm mdtestfile

<---------------- snip ------------------------>
 

Bei der file habe ich nur ein FAT12 hinbekommenn (hingegurkt?). Ich
weis nicht, ob dies ein Einfluss auf lange und kurze Dateinamen haben
kann. Sollte wohl nicht.

Hier die Ergebnisse:

%make long
newfs_msdos /dev/da0
/dev/da0: 63840 sectors in 15960 FAT16 clusters (2048 bytes/cluster)
bps=512 spc=4 res=1 nft=2 rde=512 sec=64000 mid=0xf0 spf=63 spt=32 hds=64 hid=0
mount -t msdos -o -l /dev/da0 /mnt/usbstick
touch /mnt/usbstick/averylongnameisthis
ls -l /mnt/usbstick
total 0
-rwxr-xr-x 1 root wheel 0 Jun 1 14:55 averylongnameisthis
umount /dev/da0

%make short 14:54
newfs_msdos /dev/da0
/dev/da0: 63840 sectors in 15960 FAT16 clusters (2048 bytes/cluster)
bps=512 spc=4 res=1 nft=2 rde=512 sec=64000 mid=0xf0 spf=63 spt=32 hds=64 hid=0
mount -t msdos -o -s /dev/da0 /mnt/usbstick
touch /mnt/usbstick/averylongnameisthis
ls -l /mnt/usbstick
total 0
-rwxr-xr-x 1 root wheel 0 Jun 1 14:55 averylon
umount /dev/da0

%make mdlong
dd if=/dev/zero of=mdtestfile bs=2k count=5k
5120+0 records in
5120+0 records out
10485760 bytes transferred in 0.443601 secs (23637812 bytes/sec)
mdconfig -a -t vnode -s 10m -f mdtestfile -u 7
newfs_msdos -f 1440 -c 1 -S 1024 /dev/md7
/dev/md7: 2854 sectors in 2854 FAT12 clusters (1024 bytes/cluster)
bps=1024 spc=1 res=1 nft=2 rde=224 sec=2880 mid=0xf0 spf=9 spt=18 hds=2 hid=0
mount -t msdos -o -l /dev/md7 /mnt/usbstick
touch /mnt/usbstick/averylongnameisthis
ls -l /mnt/usbstick
total 0
-rwxr-xr-x 1 root wheel 0 Jun 1 14:56 averylongnameisthis
umount /dev/md7
mdconfig -d -u 7
rm mdtestfile

%make mdshort
dd if=/dev/zero of=mdtestfile bs=2k count=5k
5120+0 records in
5120+0 records out
10485760 bytes transferred in 0.301591 secs (34768156 bytes/sec)
mdconfig -a -t vnode -s 10m -f mdtestfile -u 7
newfs_msdos -f 1440 -c 1 -S 1024 /dev/md7
/dev/md7: 2854 sectors in 2854 FAT12 clusters (1024 bytes/cluster)
bps=1024 spc=1 res=1 nft=2 rde=224 sec=2880 mid=0xf0 spf=9 spt=18 hds=2 hid=0
mount -t msdos -o -s /dev/md7 /mnt/usbstick
touch /mnt/usbstick/averylongnameisthis
ls -l /mnt/usbstick
total 0
-rwxr-xr-x 1 root wheel 0 Jun 1 14:56 averylon
umount /dev/md7
mdconfig -d -u 7
rm mdtestfile

-- 
Gruss,
Manfred
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 01 Jun 2007 - 15:20:43 CEST

search this site