Linux en VFAT

  • Onderwerp starter Onderwerp starter jjge
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

jjge

Gebruiker
Lid geworden
29 aug 2007
Berichten
304
Hallo, *

ik probeer een backup op te zetten met rsync vanaf een e3fs naar een VFAT USB drive. Daarbij ontmoet ik een paar waarschijnlijk verwante problemen. Omdat zowel VFAT als ext3 lower en uppercase kunnen onderscheiden, zou dat gewoon moeten kunnen; overigens zou je in mijn toepassing de filename case ook gewoon kunnen negeren, maar die optie zit er niet (meer) op.

Ik heb na enig proberen ontdekt dat het waarschijnlijk niet in rsync zit, maar in VFAT.

Als ik het volgende stukje code uitvoer:

for f in *; do
g=`expr "xxx$f" : 'xxx\(.*\)' | tr '[A-Z]' '[a-z]'`
if [ "$f" != "$g" ];
then
# mv "$f" "$g"
TEMP=`tempfile` ;
echo "$f \> $TEMP \> $g"
mv "$f" $TEMP ;
mv $TEMP "$g";
fi
done

dan zullen de oplettende lezers onmiddellijk opmerken dat die TEMP overbodig is. Klopt. Als ik de uitgecommente regel gebruik krijg ik "F-0001.TIF and f-0001.tif are identical". Met die TEMP erbij kan ik wel een move uitvoeren, maar het gekke is dat alle TIF files na afloop nog steeds TIF heten en geen tif! En die F aan het begin is wel altijd klein, dus f-0001.TIF.
Kennelijk houdt iets in de software dat bij en weiger het aan te passen. En ik denk dat dat rsync in de war brengt.

Ik heb alle mount opties die vfat maar accepteert nu wel gehad, dacht ik. Raar is bijvoorbeeld dat posix zonder parameters wel geaccepteerd wordt, maar posix=0 of posix=1 (wat volgens de manpage zou moeten) niet. En check=[n|f|s] lijkt geen effect te hebben.
Ik draai slackware 12.1, voor het geval dat relevant is.
 
Er schieten me zo snel 2 dingen binnen:
1 er ergens een mount optie die ervoor zorgt dat lange bestandsnamen ondersteunt worden. Standaard heb je die 8 karakters + 3 voor de extensie. Als ik je goed begrijp blijft hij juist de extensie hardnekkig in hoofdletters zetten. dat zou daarmee te maken kunnen hebben
2 VFat heeft geen ondersteuning voor bestandseigenaar en groep en rechten. Misschien heeft rsync daar moeite mee. Lelijke oplossing misschien: draai rsync als root
 
Momenteel werk ik met
mount -t vfat -o utf8,shortname=mixed \
/dev/disk/by-label/Elements /mnt/tmp

Ik heb ook posix geprobeerd, dat hielp ook niet. En ik draai rsync al als root, maar hij zou helemaal geen chgrp moeten doen! Ik gebruik momenteel
rsync -rltDv --no-o --no-g --delete --modify-window=1 --progress -stats /museum/ /mnt/t
mp/backup/museum
en --no-o en --no-g zouden overbodig moeten zijn (want niet gespecificeerd in -rltD i.p.v. -a).
 
Opgelost is het nog niet, maar...

Ik heb rsync gepatcht (er zijn officiële patches op rsync.samba.org, en één ervan voegt een optie --ignore-file-name-case toe). Nu blijft in ieder geval de lange rij deletes gevolgd door weer toevoegen weg, en daardoor wordt rsync in ieder geval een stuk rustiger en sneller.
Voor chgrp messages heb ik nog niets gevonden, maar voorzover ik kan zien hebben die geen effect, ze vervuilen alleen je berichtenstroom. Maar het blijft onlogisch dat er überhaupt chgrp gebeurt met deze opties.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan