USB-Festplatte + Standby = Problem

  • Hallo liebe Community,


    auch ich habe ein Problem mit meiner USB-Festplatte (1TB, Toshiba) und dem Standby-Modus. Allerdings geht meine Platte gar nicht (bei anderen war es ja umgedreht, dass sie zu schnell in den Standby geht) in den Standby Modus. Mit hdparm hab ichs versucht, da kommt folgende Fehlermeldung raus:


    Code
    /dev/sda:
    SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     drive state is:  standby


    Auch hd-idle hat keine Reaktion gezeigt.


    2 Sachen, die möglicherweise was damit zu tun haben könnten:
    - Auf der Platte befinden sich Ordner, die per Samba ins Netzwerk freigegeben werden -> ständiger Zugriff auf die Platte und deswegen kein Standby?
    - Die Platte hängt nicht an einem aktiven Hub sondern ist an eine Platine angeschlossen, die die Anschlüsse der Festplatte in USB und Strom aufdröselt. Vielleicht ist das der Grund?


    Schon mal im Voraus vielen Dank!
    Colibri


    P.S.: Ich benutze Raspbian

    Edited once, last by Colibri ().

  • Hallo zusammen,


    auch ich bin erst seit kurzer Zeit stolzer Besitzer meines Pi, die Begeisterung ist enorm und so tauchen auch Fragen auf, bei denen ihr mir hoffentlich weiterhelfen könnt.


    Ich habe meinen Pi als NAS aufgesetzt, Samba installiert und konfiguriert. Soweit alles gut.
    Aber leider tritt bei mir genau das gleiche Problem mit dem Standby der Festplatte auf.


    Ich versuche das Setup mal zusammenzufassen.


    - Raspbian “wheezy” Image vom 26.07.2013, RaspBerry Pi Rev. B, 512MB RAM
    -Externe Festplatte WD 500GB 3,5Zoll ist direkt an den PI angeschlossen und wird über UUID auf /nas gemountet, statisch in /etc/fstab eingetragen


    Code
    Auszug aus /etc/fstab:
    
    
    # USB Platte
    UUID=f79219db-8874-4f3d-b6a2-ad9d8e343e5b       /nas    ext4    defaults  0       0


    - /nas wird über Samba als Share freigegeben, das klappt auch super.


    - hdparm und sdparm funktionieren leider nicht:


    Code
    # sudo hdparm -S120 /dev/sdb
    
    
    /dev/sdb:
     setting standby to 120 (10 minutes)
    SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


    - hd-idle ausprobiert und die Platte testweise nach drei Minuten in den Stand-By gehen lassen


    Code
    Auszug aus /etc/default/hd-idle
    START_HD_IDLE=true
    ...
    HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/f79219db-8874-4f3d-b6a2-ad9d8e343e5b -i 180 -l /var/log/hd-idle.log"



    Das LogFile auf /var/log (nein, /var/log liegt nicht auf der USB Festplatte) wird immer dann geschrieben, wenn die Platte aus dem Standby wieder hochgedreht wird.


    Nach einem Reboot startet hd-idle auch erwartungsgemäß automatisch, so dass die Platte eigentlich in den Standby gehen sollte.


    Code
    # sudo pgrep hd-idle
    1909



    Laut Log soll die Platte im Standby gewesen sein, war sie aber leider nicht ;o(


    Code
    # sudo tail -f hd-idle.log
    date: 2013-08-16, time: 21:27:32, disk: sdb, running: 181, stopped: 522
    date: 2013-08-16, time: 21:33:16, disk: sdb, running: 182, stopped: 162
    date: 2013-08-16, time: 22:09:16, disk: sdb, running: 181, stopped: 72


    hd-idle geht also offensichtlich davon aus, dass die Platte im Stand-By war, obwohl sie munter vor sich hindrehte...


    Schließlich nochmal eine Übersicht meiner USB Geräte:


    Code
    # lsusb
    Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
    Bus 001 Device 004: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) 64MB QDI U2 DISK
    Bus 001 Device 005: ID 152d:2336 JMicron Technology Corp. / JMicron USA Technology Corp. Hard Disk Drive



    Irgendwie bin ich mit meinem Latein ein wenig am Ende...
    Habt ihr noch eine Idee, was ich falsch mache... Über eine Hilfe von Euch würde ich mich riesig freuen...

    Edited once, last by kriddler ().

  • So, es gibt ein kleines Update von mir:


    das Programm sg3-utils hat mir unter RaspBMC geholfen, die Festplatte herunterzufahren.
    Mit dem Befehl


    Code
    sudo /usr/bin/sg_start --stop /dev/sda


    ist die Platte in ihren wohlverdienten Ruhestand gegangen und ist dort auch erst bei Benutzung wieder rausgekommen.
    Als ich das gleiche unter Raspbian versucht habe, hat die Festplatte nur kurz aufgedreht. Also verursacht irgendwas auf Raspbian Traffic auf der Platte. Weiß jmd, wie ich herausfinden kann, was genau auf die Platte zugreift?


    Meine 2. Frage (die gehört zwar nicht hier rein aber vll kann mir ja trotzdem jemand helfen):
    Wie kann ich diesen Befehl in gewissen Zeitabständen immer wieder durchführen, sodass der Pi die Platte von selbst herunterfährt wenn kein Traffic entsteht? (unter RaspBMC)



    Schon mal Danke im Voraus,
    Colibri

  • Vielleicht hilft euch eines davon:
    http://www.tacticalcode.de/201…-mit-hdparm-und-udev.html


    Das müsste euch eigentlich helfen





    Ansonsten die Festplatte regelmässig beschäftigen, das könnte auch über einen " ls " in der Crontab geregelt werden.. -> crontab -e

    Code
    */10 * * * *	/bin/ls /festplatten/mount >/dev/null 2>&1


    ..wird alle 10 Minuten ausgeführt, aber wählt am besten ein Verzeichnis wo nicht soo viel drin is :)


  • Vielleicht hilft euch eines davon:
    http://www.tacticalcode.de/201…-mit-hdparm-und-udev.html


    Das müsste euch eigentlich helfen


    Leider nein, den hdparm zeigt ja oben genannten Fehlercode und kann die Festplatte nicht in den Standby schicken.

    Quote


    ro@pi:~# hdparm -C /dev/sda1


    /dev/sda1:
    SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    drive state is: standby


    Ich denke hdparm schafft es noch nicht einmal den Status korrekt auszulesen, geschweige denn diesen zu setzen.


    NFS und minidlna sind derzeit deaktiviert - brachte jedoch keine Verbesserung.


  • Dann beschäftige die hdd halt


    Er will die Platte in den Standby schicken, nicht wach halten!


    Ich habe dasselbe Problem, bei mir zeigt hdparm als Status immer standby, ob die Platte beschäftigt ist oder nicht.

  • Gibts eigentlich mitlerweile eine Lösung? Finde das eigentlich nicht gute wenn man eine Lösung gefunden hat und diese nicht postet.


    Habe übrigens auch das gleiche Problem -> HDD geht nicht in den Standby

  • Sorry! Meine "Lösung" war eine andere externe Festplatte zu nehmen. Diese geht nun automatisch in Standby. Lag denk am Controller.

  • Hallo zusammen,


    auch wenn das Thema schon ein wenig älter ist möchte ich es nochmal aufgreifen.


    Hat jemand mittlerweile eine Lösung? .. Genau wie beim TE funktioniert hdparm nicht und gibt die Fehlermeldung:


    /dev/sda1:
    setting standby to 240 (20 minutes)
    SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


    aus.


    Die HDD läuft über USB ohne Hub aber mit Netzteil (3,5"). Dienste die darauf zugreifen sind Samba und ein DAAPD (für iTunes).
    #edit Fast vergessen, minidnla läuft auch noch ^^

    Edited once, last by Trisi ().

  • Lösung !
    Ich hatte das gleiche Problem (SG_IO: bad/missing sense data), sorry fürs Leichen ausgraben.Aber der Link oben scheint nicht mehr existent zu sein.
    So gings bei mir auch nicht:
    Mit

    Code
    sudo apt-get install sg3-utils
    sudo /usr/bin/sg_start --stop /dev/sda


    geht meine alte 3,5"-USB-Platte kurz aus und gleich wieder an.
    Dachte erst vllt. liegt es daran, dass ältere Platten bzw. der USB-Controller kein Standby bzw. Advanced Power Management unterstützen. :angel:
    Stichwort : APM-level = not supportet
    Mit

    Code
    hdparm -Y /dev/sdx --idle-immediate


    geht die Platte auch nicht aus.


    Lösung des Problems:



    Aber mit hd-idle geht es:
    Runterladen mit:

    Code
    sudo apt-get install wget
    wget https://launchpad.net/~yavdr/+archive/ubuntu/main/+files/hd-idle_1.01.orig.tar.gz


    Dann entpacken, in den entpackten Ordner wechseln, make, make install aufrufen
    Die hd-idle im /scripts/debian/default-Ordner nach /etc/default kopieren,
    die hd-idle im /scripts/debian/init.d-Ordner nach /etc/init.d kopieren
    Mit

    Code
    sudo update-rc.d hd-idle defaults


    in den Autostart packen
    und die Datei /etc/default/hd-idle bearbeiten:

    Code
    START_HD_IDLE=true
    HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -i 600 -l /var/log/hd-idle.log"


    Die Option "-i 0" sorgt dafür, dass nur Platten abgeschaltet werden, welche unter "-a" aufgelistet sind.
    Statt der uuid könnt ihr natürlich auch z.B. /dev/sda angeben, besser ist aber by-uuid, falls die Platte mal in einen anderen Port eingestöpselt wird, -i 600 ist die Zeit in Sekunden bis zum abschalten, die Option -l ist für das Logfile.
    Nach einem Neustart sollte hd-idle autom. im Hintergrund laufen und nach 10 Min. die Platte ausschalten.
    Wie man sie wieder anschaltet, keine Ahnung :s, aber sie springt autom. an, wenn darauf zugegriffen wird.
    Wenn es geholfen hat, bitte rückmelden, wenn nicht, dann bitte auch.

  • Ich habe ein ähnliches Problem mit einer TrakStore USB Platte.
    Die Platte lässt sich mit hdparm in Standby schicken, aber nach 30 Sekunden fährt sie wieder an.


    Seltsam ist: Wenn die Platte nicht gemountet ist, mach sie den Spindown und bleibt auch im Standby.
    Ich habe die Partition mit LUKS verschlüsselt. Selbst wenn ich die Partition mit LUKS öffne (sprich das entschlüsselte virtuelle Device erzeuge) fährt die Platte immer noch wie erwartet in den Standby und bleibt auch im Standby.


    Erst nach dem Mounten bleibt sie aktiv und fährt auch nach erzwungenem Spindown kurz darauf (~30 Sekunden) wieder hoch =(


    Also deutet alles auf regelmäßige Zugriffe ins Dateisystem hin, wodurch der Spindown Timer ständig zurückgesetzt wird.


    Die Partition ist ext4 formatiert. Ich habe sogar bereits das Journaling deaktiviert und sie mit noatime gemountet. Ändert alles nichts. Sie bleibt einfach dauerhaft aktiv.
    Man bemerkt sogar (wenn man die Hand auf die Platte legt) dass alle paar Sekunden ein Zugriff stattzufinden scheint (man fühlt die kleine Vibration beim Ausrichten des Lesekopfs).


    Was könnte das sein?


    Edit:
    In dem Moment in dem die Platte wieder anfährt erscheint im dmesg Log folgendes:

    Code
    usb 1-1.2: reset high-speed USB device number 4 using dwc_otg


    Edit2:
    Ich habe jetzt weiterhin rausgefunden dass die Platte selbst etwa genau 30 Sekunden zum Anfahren braucht (also vom Signal bis zum Zeitpunkt an dem der Plattenmotor los läuft).
    Ergo: Die Platte bekommt SOFORT beim Aufruf von "hdparm -Y ..." wieder den Befehl zum Hochfahren. Aber wie gesagt, nur wenn die Partition gemountet ist. Ist sie nicht gemountet bleibt sie im Standby.
    Ich habe jetzt auch schon mit den Kernel Commandline Flags für dwc_otg rumgespielt. Das ändert jedoch alles nichts. Und da die Platte ohne mounten im Standby bleibt, scheint es weder am Festplatten-Controller, noch am USB-Controller vom Pi zu liegen, sondern an irgend einem Dienst der die Platte sofort wieder reaktiviert. :mad_GREEN:


    Edit3:
    Die Lösung ist wohl ganz einfach:
    Wenn man eine Partition mit ext4 schnell formatiert (default), wird danach erstmal die ganze Partition intialisiert. Gibt man beim Formatieren nicht an, dass das sofort beim Formatieren geschehen soll, ist die Formatierung zwar ruck-zuck durch, aber es wird dann ein Kernel-Daemon gestartet (ext4lazyinit) welcher das dann über Stunden und ggf. Tage (je nach größe der Partition) im Hintergrund macht :wallbash: :wallbash:
    Das verursacht dann natürlich kontinuierlich Plattenzugriffe und verhindert den Spindown... :denker:
    Da ich der Platte da immer frühzeitig den Saft abgedreht hab, ist das bisher wohl einfach noch nicht durchgelaufen.

    Edited once, last by smogm ().

  • Hi, habe auf meinem Pi3b+ auch das Problem, dass die USB3 Festplatte Dauerlauf macht. habe mich an die Lösung mit

    HD-Idle gemacht, komme aber irgendwie nicht weiter...

    .........................


    Dann entpacken, in den entpackten Ordner wechseln, make, make install aufrufen
    Die hd-idle im /scripts/debian/default-Ordner nach /etc/default kopieren,
    die hd-idle im /scripts/debian/init.d-Ordner nach /etc/init.d kopieren
    Mit

    Wie kann ich das denn machen? Also wie kann ich auf diese Ordner Zugreifen?



    wenn ich

    Code
    sudo update-rc.d hd-idle defaults

    eingebe kommt eine Fehlermeldung:

    update-rc.d: error: unable to read /etc/init.d/hd-idle



    Gebe ich den letzten Befehl ein lande ich bei


    >


    Kann mir da einer bei helfen?


    Danke und schöne Grüße

    PI 3 B+ mit Nextcloud

    Pi 4 - 4GB Ubuntu oder Raspbian

    Pi 400 Raspbian

  • Es gibt jetzt ein Tutorial dazu:

    hd-idle am Raspberry Pi installieren und einrichten


    Ich habe der einfachheithalber auch mal ein Script install_hd_idle.sh geschrieben:

    Mit nano install_hd_idle.sh öffnen und das reinkopieren:

    Bash
    #!/bin/bash
    cd /home/pi
    wget https://launchpad.net/~yavdr/+archive/ubuntu/main/+files/hd-idle_1.01.orig.tar.gz
    tar -x -v -f /home/pi/hd-idle_1.01.orig.tar.gz
    cd /home/pi/hd-idle-1.01/
    make && make install
    cp /home/pi/hd-idle-1.01/scripts/debian/default/hd-idle /etc/default
    cp /home/pi/hd-idle-1.01/scripts/debian/init.d/hd-idle /etc/init.d
    update-rc.d hd-idle defaults
    exit 0

    Speichern mit Strg+o und Enter.

    Ausführbar machen mit chmod 755 /home/pi/install_hd_idle.sh

    Durchlaufen lassen mit sudo /home/pi/install_hd_idle.sh und Enter, fertig.


    Oder manuell oder mit mc:

    Entpacken mit tar -x, aber am einfachsten ist, du installierst dir mc:

    Im Terminal sudo su eingeben, apt install mc eintippen, Enter drücken und evtl. bestätigen.


    mc aufrufen, dann kannst du mit Enter direkt in die hd-idle_1.01.orig.tar.gz reinsehen, die du dir zuvor mittels wget https://launchpad.net/~yavdr/+archive/ubuntu/main/+files/hd-idle_1.01.orig.tar.gz runtergeladen hast, mit der Pfeiltaste nach unten auf den Ordner hd-idle-1.01 und mit F5 und Enter den Ordner nach /home/pi kopieren.

    Mit der Tabulatortaste kannst du auf die andere Seite wechseln und mit Enter in den entpackten Ordner gehen.

    Mit Strg+o kommst du an den Hintergrund, dort tippst du make und drückst Enter, danach make install.

    Dann holst du den mc mit Strg+o wieder in den Vordergrund und wechselst in den Ordner /scripts/debian/default, die darin enthaltene Datei muss nach /etc/default/, mit Tab kannst du auf die andere Seite und das tar.gz verlassen, indem du auf /.. gehst und Enter drückst. Dann navigierst du nach /etc/default/

    und wechselst wieder mit Tab, gehst auf hd-idle und kopierst mit F5 die Datei rüber. Das gleiche mit der hd-idle im init.d Ordner, nur eben in den Ordner /etc/init.d kopieren.

    Dann kannst du mit nano /etc/default/hd-idle nach deinen Wünschen bearbeiten.

    Dann noch sudo update-rc.d hd-idle defaults und nach einem Neustart sollte hd-idle automatisch laufen.

    Es ist halt etwas verwirrend, dass alle 3 Dateien hd-idle heissen, eine hd-idle für defaults, wo man Autostart und Optionen eintragen kann, eine hd-idle für den Start-Stop-Dienst und das eigentliche Programm hd-idle, aber du kannst ja mit nano reingucken, dann siehst du welche hd-idle welche ist.

    Wenn du alles richtig gemacht hast, solltest du mit dem Befehl find /etc -name hd-idle 2 Dateien finden:

    /etc/default/hd-idle und /etc/init.d/hd-idle, die dritte Datei mit dem Befehl which hd-idle sollte /usr/sbin/hd-idle als Ausgabe bringen, die wurde mit make install automatisch dorthin kopiert.