[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Automatisches mounten USB-Geräten schlägt fehl



Hallo Michael,

Am Montag 07 Januar 2008 schriebst Du:
> Hallo Niels,
>
> Niels Jende wrote:
[...]
> Jan  7 16:31:34 MacMobil kernel: FAT: Unrecognized mount option "flush"
> or missing value
>
>
> Scheint also irgendetwas mit dem Mount-Aufruf nicht zu passen. Wo kann
> ich sehen welches Kommando er dazu absetzt?

Exakt. flush ist meiner Erinnerung nach eine Art relaxtes sync. Bei sync 
schreibt das Dateisystem jede Schreibanforderung gleich auf die Platte, 
bei async erst nach einer Weile. sync hört sich für USB-Sticks zunächst 
passend an, da man den ja jederzeit rausziehen kann und wenn dann Daten 
noch nicht gespeichert sind... Es ist jedoch gerade bei USB-Sticks keine 
gute Idee, die sync-Option zu verwenden, da dann für jede kleinste 
Änderung, in Zusammenhang mit atime für jeden Zugriff überhaupt, ein 
Schreibzugriff erfolgt und daher der USB-Stick ziemlich schnell futsch 
gehen kann.

Das FAT-Dateisystem im Deinem Kernel unterstützt diese Option offenbar 
(noch) nicht.

Wieso hal da jedoch bei Dir die Option flush verwendet ist mir ein Rätsel.

/etc/hal/fdi/policy/preferences.fdi

enthält bei mir - das ist jedoch mit XML-Kommentaren deaktiviert und die 
1GB-grenze erscheint mir auch arg willkürlich, es gibt mittlerweile schon 
USB-Sticks mit 4 GB oder vielleicht mehr:

<!--
  The following shows how to put sync and noatime on for devices smaller 
then
  1Gb and off for device larger then that. Note that the sync option can 
wear
  out device faster then you'd like too. See
  http://readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html 
for
  more info.
-->
<!--
  <device>
    <match key="block.is_volume" bool="true">
      <match key="volume.size" compare_lt="1000000000">
        <match key="@block.storage_device:storage.hotpluggable" 
bool="true">
          <merge key="volume.policy.mount_option.sync" 
type="bool">true</merge>
          <merge key="volume.policy.mount_option.noatime" 
type="bool">true</merge>
        </match>
        <match key="@block.storage_device:storage.removable" bool="true">
          <merge key="volume.policy.mount_option.sync" 
type="bool">true</merge>
          <merge key="volume.policy.mount_option.noatime" 
type="bool">true</merge>
        </match>
      </match>
      <match key="volume.size" compare_ge="1000000000">
        <match key="@block.storage_device:storage.hotpluggable" 
bool="true">
          <merge key="volume.policy.mount_option.sync" 
type="bool">false</merge>
          <merge key="volume.policy.mount_option.noatime" 
type="bool">false</merge>
        </match>
        <match key="@block.storage_device:storage.removable" bool="true">
          <merge key="volume.policy.mount_option.sync" 
type="bool">false</merge>
          <merge key="volume.policy.mount_option.noatime" 
type="bool">false</merge>
        </match>
      </match>
    </match>
  </device>
-->

Den einzigen Hinweis auf flush finde ich hier:

shambala> grep -ir "flush" /usr/share/hal/*
/usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi:      <append 
key="volume.mount.valid_options" type="strlist">flush</append>

Da scheint aber nur definiert zu sein, dass flush an sich eine gültige 
Mount-Option zu sein. Es könnte helfen, wenn Du eine Kopie der Datei 
anlegst und dann aus der Original-Datei diese Zeile entfernst. Vielleicht 
verwendet halt die Option flush dann nicht mehr. Das ist aber wirklich 
nur ganz grob geraten ;-) und fühlt sich für mich wie ein Workaround an.

Sonst finde ich da nix. Für mich ist da also nicht ganz transparent, wie 
hal die Mount-Optionen bestimmt.

Zwei Partitionen auf einer 60GB großen externen 2,5Zoll-Festplatte bindet 
hal via KDE 3.5.8 bei mir so ein:

shambala> grep "media" /proc/mounts
/dev/sdb2 /media/daten xfs rw,nosuid,nodev 0 0
/dev/sdb1 /media/austausch vfat 
rw,nosuid,nodev,noatime,uid=1000,fmask=0022,dmask=0022,codepage=cp850,iocharset=iso8859-1,utf8 
0 0

Da steht nicht explizit was von async oder sync. Das scheint mir für async 
zu stehen, da die interne Notebook-Platte von meinem IBM ThinkPad T42 
auch kein async stehen hat, aber sicherlich nicht mit sync gemountet sein 
sollte. In der Manpage zu mount finde ich da auf den ersten Blick keinen 
Hinweis auf die Standard-Einstellung.

Im syslog finde ich nur:

Jan  7 21:01:00 shambala hald: mounted /dev/sdb2 on behalf of uid 1000
Jan  7 21:01:00 shambala hald: mounted /dev/sdb1 on behalf of uid 1000

Einen USB-Stick mit 512MB mountet hal demnach jedoch offenbar auch nicht 
mit flush hier - da hätte ich etwas in der Art erwartet:

shambala> grep "media" /proc/mounts
/dev/sdb /media/USBSTICK vfat 
rw,nosuid,nodev,noatime,uid=1000,fmask=0022,dmask=0022,codepage=cp850,iocharset=iso8859-1,utf8 
0 0


Ich verwende eine lustige Mischung aus verschiedenen Debian-Versionen:

root@shambala:~ -> for I in etch stable lenny testing sid unstable 
experimental; do echo -n "$I: " ; apt-show-versions | grep $I | wc -l ; 
done
etch: 248
stable: 0
lenny: 29
testing: 4
sid: 2495
unstable: 0
experimental: 8

Und da folgendes hal:

root@shambala:~ -> apt-show-versions | grep hal
hal/sid uptodate 0.5.10-5
hal-device-manager 0.5.9.1-6 newer than version in archive
libhal1/sid uptodate 0.5.10-5
hal-info/sid uptodate 20071212-2
libhal-storage1/sid uptodate 0.5.10-5


Wenn er bei Dir versucht die Mount-Option flush, die meines Wissens 
bislang auch nur die FAT-Dateisysteme verstehen und das auch nur in 
neueren Kerneln, könnte das an einer hal-Version liegen.

Evtl. spielt die verwendete KDE-Version da auch mit rein, ich denke 
jedoch, dass die Version in Etch (3.5.5) schon auf hal zurückgreift. 
Früher war das mal anders.

Du kannst natürlich mal in /etc/hal und /usr/lib/hal und /usr/share/hal 
mal einen grep -ir "flush" * loslassen, um zu schauen, was da HAL bei Dir 
vielleicht macht.

Naja, genug Stöberei in System-Internas für heute. 

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: