# [gelöst] USB2.0-stick _schneckenlangsam_

## Martux

Hallo!

Habe mir einen USB2.0-stick gekauft. Beim lesen ist auch alles ok > 12-16MB/s, aber beim schreiben darauf kommt er nur auf ca. 40 kb/s. Das kann doch nicht sein...

Habe mich beim einrichten eigentlich an das USB-howto gehalten.

Weiß jemand Rat?

----------

## SvenFischer

Wenn noch nicht geschehen, schließe den USB-Stick ohne einen USB-Hub direkt an den PC an.

Vielleicht stimmt auch etwas mit dem Dateisystem nicht: Neuformatierung (Fat32, kein NTFS). Geht überhaupt ein anderes Dateisysdtem außer FAT32?

----------

## Martux

 *Quote:*   

> 
> 
> Wenn noch nicht geschehen, schließe den USB-Stick ohne einen USB-Hub direkt an den PC an. 
> 
> 

 

Häää??? Habe das Teil direkt in die Mainboard-Rückseite gepluggt... Meinst Du das?

 *Quote:*   

> 
> 
> Vielleicht stimmt auch etwas mit dem Dateisystem nicht: Neuformatierung (Fat32, kein NTFS). Geht überhaupt ein anderes Dateisysdtem außer FAT32?
> 
> 

 

Habe das Teil gerade neuformatiert... Was anderes als Fat32 geht leider nicht, ist halt der kleinste gemeinsame Nenner...

(Die meisten Leute benutzen halt leider kein Gentoo...)

----------

## rteichmann

Probier mal den USB-Stick ohne die Option "sync" einzuhängen (siehe /etc/fstab). Bei mir war die Schreibgeschwindigkeit danach wieder in Ordnung.

----------

## Martux

Shit...habe gerade die Kernel-Konfiguration nochmal gegengecheckt.

Es ist alles genau so eingestellt wie in der usb-guide beschrieben (http://www.gentoo.org/doc/en/usb-guide.xml#postkern).

Es hat ca. 40 Min gedauert 100 Mb auf den stick zu kopieren  :Sad:   :Sad:   :Sad: 

Was kann ich tun???

Leider geht unter winklo(tm) alles in "normaler" Geschwindigkeit...

ARGHHH!!!

----------

## Martux

 *Quote:*   

> 
> 
> Probier mal den USB-Stick ohne die Option "sync" einzuhängen (siehe /etc/fstab). Bei mir war die Schreibgeschwindigkeit danach wieder in Ordnung.
> 
> 

 

WOWWW!!!

Du hast vollkommen recht...jetzt rockts! Das Problem ist, ich lasse das Teil eigentlich von /hal/ivman automatisch mounten. Nachdem ich es aber mal von Hand vermittels

```

mount -t vfat -o rw,users,umask=0 /dev/sda1 /mnt/test/

```

gemountet habe, zieht es echt ab!!!

Danke danke für den Tipp. Aber wie kann ich das mit hal/ivman machen???

Die 2 nerven mich eh total ab, weil ich cdrom/usb-Laufwerke zwar als user mounten - aber nicht meht unmounten kann.

Was bedeutet denn das "sync"???

----------

## firefly

wegen ivman einfach ivman deaktivieren  :Wink:  das langt  :Wink: 

die sync option bewirkt das jede schreib-operation auf das gerät nicht erst gechached, sondern gleich auf das gerät geschrieben wird.

um die option zu deaktivieren probier mal folgendes

erstelle unter /usr/share/hal/fdi/ einen ordner 95userpolicy

in diesem ordner erstellst du die datei storage-policy.fdi mit folgendem inhalt:

```
<!-- Use noatime and sync options for all hotpluggable or removable

               volumes smaller than 2GB -->

          <match key="volume.size" compare_lt="2147483648">

            <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">true</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">true</merge>

            </match>

          </match>
```

das sollte den original eintrag in /usr/share/hal/fdi/policy/10osvendor/10-storage-policy.fdi überschreiben.

gruß

firefly

----------

## Martux

@firefly:

Dazu brauche ich ein wenig Zeit...

Melde mich wieder, wenn ich das probiert habe.

Danke, 

Marcus

----------

## Martux

 *Quote:*   

> 
> 
> wegen ivman einfach ivman deaktivieren 
> 
> 

 

Gibts dafür nen bestimmten Grund??? Finde es eigentlich ganz angenehm, wenn cdroms/usb automatisch gemountet werden...

```

<!-- Use noatime and sync options for all hotpluggable or removable 

               volumes smaller than 2GB --> 

          <match key="volume.size" compare_lt="2147483648"> 

            <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">true</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">true</merge> 

            </match> 

          </match>

```

funktioniert bei mir irgendwie gar nicht. Nach neustarten des service und ein-und-ausstöpseln des sticks geht immer noch alles schneckenlahm.

Irgendwelche Ideen??[/code]

----------

## SvenFischer

... teste mal einen anderen Stick.

Das mit dem sync macht gerade bei Sticks wirklich Sinn. Klaro wird das durch das zwischenspeichern schneller, aber wenn Du dann umount machst, wartest Du eben genausolange wie vorher. Das bringt nur etwas, wenn Du den Stick längere Zeit eingebunden lässt.

----------

## Martux

 *Quote:*   

> 
> 
> ... teste mal einen anderen Stick.
> 
> 

 

Wie? Habe leider nur den einen... :Rolling Eyes:  Wenn ich von Hand mounte mit:

```

mount -t vfat -o rw,users,umask=0 /media/usbdisk/usbdisk1 /mnt/test 

```

passt ja alles... Mein Ärger beginnt irgenwie mit hal/ivman...

Will eigentlich _NUR_ den usbstick automagisch _als user_ an und abziehen können  :Twisted Evil:  :Twisted Evil: 

----------

## rteichmann

Siehe:

http://readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html

und hier:

https://bugs.gentoo.org/show_bug.cgi?id=99039

----------

## Martux

 *Quote:*   

> 
> 
> Siehe: 
> 
> http://readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html
> ...

 

 :Shocked:  Das sind ernsthafte Probleme! 

Danke für den Hinweis!!!

Geholfen hat mir, eine Datei anzulegen: 

/usr/share/hal/fdi/95userpolicy/storage-policy.fdi  

und in dieser

```

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">

  <device>

      <!--  stop Hal from mounting fat/vfat with sync -->

      <match key="volume.fstype" string="vfat">

        <merge key="volume.policy.mount_option.sync" type="bool">false</merge>

      </match>

      <match key="volume.fstype" string="fat">

        <merge key="volume.policy.mount_option.sync" type="bool">false</merge>

      </match>

  </device>

</deviceinfo>

```

Weg ist die _böse_ sync-Option!!! Jetzt muß ich den Kram zwar weiter von Hand unmounten, wird aber die Lebensdauer des Gerätes deutlich verlängern!!

Dank an rteichmann für den Tipp!

----------

## firefly

tja ich hatte sogar mal das problem, das  ich unter windows auf nen USB-Stick was kopiert habe ihn einfach abgesteckt(nachdem er nichtmehr gezeigt hatte das er noch was schreibt/liest).

Nur nach dem Neuanstecken waren die Dateien, die ich vorhin kopiert hatte weg  :Sad: . 

Deshalb mache ich auch unter Windows ein saubers entfernen bevor ich den stick abstecke.

gruß

firefly

----------

## Martux

Habe eine Lösung gefunden, damit man den stick als user über media:/ "sicher entfernen" kann:

(entdeckt hier: https://forums.gentoo.org/viewtopic-t-331378-highlight-hal+fdi.html?sid=391b9020852ae64ee1bcabd846772b43)

Fazit: In der Datei /usr/share/hal/fdi/90defaultpolicy/storage-policy.fdi 

```

<merge key="storage.policy.default.mount_option.user" type="bool">true</merge>

```

in 

```

<merge key="storage.policy.default.mount_option.users" type="bool">true</merge>

```

umändern... (user in users)

Und siehe da, keine sync-Option mehr und außerdem prima vom user unmountbar!

----------

## GenYetiToo

 *SvenFischer wrote:*   

> ... teste mal einen anderen Stick.
> 
> Das mit dem sync macht gerade bei Sticks wirklich Sinn.

 

Nicht wirklich. Man will nicht, daß jeder Sektor direkt und mehrfach geschrieben wird. USB-Sticks haben Flash-Speicher und 'sync' kann deren Lebensdauer drastisch verkürzen!

M

----------

## pir187

 *Quote:*   

> Nicht wirklich. Man will nicht, daß jeder Sektor direkt und mehrfach geschrieben wird. USB-Sticks haben Flash-Speicher und 'sync' kann deren Lebensdauer drastisch verkürzen!

 

Ich glaube nicht, daß die 

```
sync
```

 -Option beeinflußt, wo genau auf dem Flash-Speicher geschrieben wird. Sie sagt lediglich, ob das Geschriebene/Gelesene vom System gecached wird, bevor es "auf der anderen Seite" ankommt.

Die Lebensdauer wird nicht geändert, wenn man sync benutzt bzw. es nicht benutzt. Die Lebensdauer wird bei Flash-Speichern durch das Benutzer  :Surprised:  gekürzt.

Ich kann mich auch irren, aber vielleicht auch nicht.

Schönes WE, pir187

----------

## GenYetiToo

 *pir187 wrote:*   

> Ich glaube nicht, daß die 
> 
> ```
> sync
> ```
> ...

 

Nicht wo, aber wie oft.

 *Quote:*   

> Flash-Speicher geschrieben wird. Sie sagt lediglich, ob das Geschriebene/Gelesene vom System gecached wird, bevor es "auf der anderen Seite" ankommt.

 

Und das genau ist das Problem. Das Dateisystem hat z.B. Blöcke von der Grösse 1kB, auf dem Flash sind die Sektoren aber (von mir aus) 4 MB gross. Schreibt man einen Flash-Sektor mit sync voll, wird der Flash-Sektor entsprechend oft neu geschrieben (==gelöscht), lässt man sync weg, 'sammelt' das System so viel wie möglich, ehe es in den Flash geschrieben wird. Evtl. wird sogar erst beim umounten geflasht.

 *Quote:*   

> Die Lebensdauer wird nicht geändert, wenn man sync benutzt bzw. es nicht benutzt. Die Lebensdauer wird bei Flash-Speichern durch das Benutzer  gekürzt.

 

Du meinst 'durch das Benutzen'?

Bei Flash-Speicher bedeutet 'benutzen' idR. Löschen bzw. Schreiben.

Lesen kostet nix.

Markus

----------

## nightmarez

sync braucht man laut "man mount" nicht für v/fat/32:

 *Quote:*   

> 
> 
> The  following  options
> 
>               apply to any file system that is being mounted (but not every file system actually honors them -
> ...

 

----------

## Anarcho

 *nightmarez wrote:*   

> sync braucht man laut "man mount" nicht für v/fat/32:
> 
>  *Quote:*   
> 
> The  following  options
> ...

 

Das war wohl mal, aber da scheint die manpage von mount nicht mehr ganz aktuell zu sein. So wie es aussieht ist sync seit dem 2.6.12er Kernel auch für vfat verfügbar:

http://readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html

Also besser rausnehmen.

----------

## firefly

das hauptproblem mit der sync-Option in zusammenhang mit vfat(fat16/32) ist der, das beim jeden schreiben/löschen/ändern einer datei jedesmal etwas in der FAT(File Allocation Table) geschrieben/gelöscht wird.

Da sich die Fat am anfang der Speichermediums befindet, wird dadruch recht schnell die maximalen schreibzyklen dieses Blocks überschritten und dadurch wird der Teil unbrauchbar-> der Stick ist dann schrott..

gruß

firefly

----------

## SvenFischer

@ marc@amarok:

kannst Du uns bitte mal die komplette  /usr/share/hal/fdi/95userpolicy/storage-policy.fdi von Dir geben, denn Deine Wunderzeile passt nicht so recht zu der hier veröffentlichten Datei.

Danke

----------

