Linux: Festplatten gehen nicht mehr schlafen

OP #7562478
Lesenswert?

Hallo Forum, ich habe hier einen Linux-Server Ubuntu 22.04.3 LTS laufen. Darin werkeln 4 Festplatten welche aus Stromspargründen und Wärme in Standby oder Sleep geschickt werden sollen. Das habe ich bislang mit hdparm gemacht. Einfach beim starten mit -S die Spindownzeit eingestellt. Das ganze hat super funktioniert bis ich letztens die grafische Oberfläche brauchte. Zuvor habe ich alles über die Konsole erledigen können. Deshalb habe ich lightdm, ubuntu-desktop, kde-plasma-desktop und konqueror installiert. Hat auch funktioniert, bis auf das Schlafen der Festplatten. Also hab ich dann kurzerhand alles wieder deinstalliert. Das Verhalten ist leider immer noch nicht zum Ursprung zurückgekehrt. Und zwar ist das jetzt so: wenn ich die Platten per Hand (hdparm -y) herunterfahre, bleiben sie auch aus, bis jemand wirklich darauf zu greift. Allerdings gehen sie nach der eingestellten Spindownzeit nicht von allein wieder aus. Auch mehrfaches schreiben der Zeit (hdparm -S 60) hat keinen Effekt. Was könnte das sein? Wie kann ich rausfallen, wer hier das Schlafen verhindert? Gibt es andere Tools außer hdparm?

#7562537
Lesenswert?

Hast du mit "apt-get remove" oder mit "apt-get purge", bzw. "apt-get autoremove" / "apt-get autopurge" deinstalliert?

Nur die purge varianten entfernen auch die Configs, vielleicht geistert da noch eine rum. Im Internet findet man das hier zum endgültig purgen:

1
sudo apt-get autopurge $(dpkg -l | grep '^rc' | awk '{print $2}')

Es gibt auch irgend einen speziellen Query den man "apt-get purge" direkt mitgeben könnte, aber den hab ich vergessen.

Vielleicht findest du auch in /usr/lib/udev/rules.d/ oder /etc/udev/rules.d/ noch was.

Vielleicht kannst du auch mit Powertop noch was einstellen / analysieren.

OP #7562554
Lesenswert?

Daniel A. schrieb:

Hast du mit "apt-get remove" oder mit "apt-get purge", bzw. "apt-get autoremove"

Ja, mit purge und hinterher autoremove.

wenn ich mir alles mit "lsof | grep /mnt/backup" ansehe, ist hier keine Datei offen. Ist ja auch komisch, das die Platten nicht von alleine anspringen, was ja der Fall wäre, wenn irgendwer hier zyklisch zugreifen würden. Irgendwer oder was verhindert den Timer, der runterzählt. Ist dieser Timer eigentlich in Software im Linux oder läuft der in der jeweiligen Platte?

#7562571
Lesenswert?

Rangi J. schrieb:

Daniel A. schrieb:

Hast du mit "apt-get remove" oder mit "apt-get purge", bzw. "apt-get autoremove"

Ja, mit purge und hinterher autoremove.

Hm, autoremove statt autopurge...

Rangi J. schrieb:

Ist dieser Timer eigentlich in Software im Linux oder läuft der in der jeweiligen Platte?

Es gibt Powersave Einstellungen im Kernel. z.B. /sys/block/sda/power/* so Sachen gibts für so ziemlich alles "find /sys -iname power". Darum auch der Verweis auf udev, damit kann man die auch setzen. Und Vermutlich kann man die auch mit sysctl (/etc/sysctl.d/) setzen.

#7562654
Lesenswert?

Dieter D. schrieb:

z.B. /boot/config-*-generic

Ubuntu liefert normalerweise vorkompilierte Kernels.

Man kann sich natürlich die Sourcen runterladen, die /boot/config mit make oldconfig kopieren, den Kernel neu bauen und installieren, und das System neu starten, um Einstellungen zu ändern, und man kann das auch mit einem Skript automatisieren.

Aber die Wahrscheinlichkeit, das hier soetwas gemacht wurde, dürfte ziemlich genau 0 betragen.

OP #7562853
Lesenswert?

Daniel A. schrieb:

Es gibt Powersave Einstellungen im Kernel. z.B. /sys/block/sda/power/*

Es gibt hier tatsächlich eine passende Einstellung: autosuspend_delay_ms Ich wollte das mal für eine Platte testen. Allerdings kann ich hier nicht lesen und auch nicht schreiben. sudo echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: /sys/block/sde/power/autosuspend_delay_ms: Permission denied

OP #7562862
Lesenswert?

Lukey S. schrieb:

Schau dir das mal an, vielleicht ist das bei dir da konfiguriert:

https://wiki.archlinux.org/title/udisks#Apply_ATA_settings

Hier steht was, dass tatsächlich passen könnte:

5.3 Broken standby timer The udisks daemon polls S.M.A.R.T. data from drives regularly. Hard drives with a longer standby timeout than the polling interval may fail to enter standby. Drives that are already spun down are usually not affected. There seems no way to disable polling or change the interval as for udisks2 by now. See [6], [7]. However, Standby timeout applied by udisks2 seems to be unaffected. To set standby timeout via udisks, see #Apply ATA settings. Other possible workarounds could be setting the timeout below the polling interval (10 minutes)

Allerding funktioniert der Workaround leider nicht. Selbst bei 5 Sekunden Spindown macht die Platte keinen Anzeichen eines Abschaltens.

#7562864
Lesenswert?

Rangi J. schrieb:

Allerdings kann ich hier nicht lesen und auch nicht schreiben. sudo echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: /sys/block/sde/power/autosuspend_delay_ms: Permission denied

sudo bezieht sich immer nur auf einen Befehl.

Du wendest sudo auf "echo 60000" an. Das Echo braucht aber keine Root-Rechte. Die Umleitung in das sysfs-device läuft mit Userrechten, bräuchte aber root.

Entweder mit "sudo -i" gleich eine root-shell starten, oder

1
echo 60000 | sudo tee /sys/block/sde/power/autosuspend_delay_ms
#7562900
Lesenswert?

Rangi J. schrieb:

root@wallie:~# echo "60000" > "/sys/block/sde/power/autosuspend_delay_ms" -bash: echo: write error: Input/output error

Dann wird die Option dort wohl einfach nicht unterstützt. Irgendwo gibt es noch Ordner für usb / sata / etc. Controller, die auch jeweils solche Einstellungen haben, vielleicht geht es da.
Mit "realpath /sys/block/sde siehst du den ganzen Pfad, mit allen Bussen un Controlern usw. drin."

Steht power/control auf auto? https://www.kernel.org/doc/Documentation/usb/power-management.txt

(Firma: Hobbytheoretiker) #7562988
Lesenswert?

Rangi J. schrieb:

Nein, geht auch nicht, kann nicht lesen und nicht schreiben.

1
sudo file  /sys/block/sda/power/*
2
/sys/block/sda/power/autosuspend_delay_ms:   ERROR: cannot read `/sys/block/sda/power/autosuspend_delay_ms' (Input/output error)
3
/sys/block/sda/power/control:                ASCII text
4
/sys/block/sda/power/runtime_active_time:    ASCII text
5
/sys/block/sda/power/runtime_status:         ASCII text
6
/sys/block/sda/power/runtime_suspended_time: ASCII text

Stimmt. Das geht so nicht mehr zuzugreifen.

OP #7563127
Lesenswert?

Herbert schrieb:

hd-idle funktioniert bei mir unter Kubuntu prima.

https://sourceforge.net/projects/hd-idle/

herby

Das Tool scheint zu funktionieren, habs mir mit -d Debug angesehen, zählt artig runter, wenn es keine Zugriffe gibt und schaltet dann die Platten aus. Mir ist noch nicht so ganz klar, wie man es verwendet. Läuft es automatisch im Hintergrund? Ohne root-rechte geht es nicht? Wo hast du es gestartet?

#7563166
Lesenswert?

Ich habs so installiert:

apt install hd-idle /etc/default/hd-idle editieren Zeile unten einfügen: HD_IDLE_OPTS="-a /dev/sdb1 -i 900 -a /dev/sdc1 -i 900 -l /var/log/hd-idle.log systemctl start hd-idle.service systemctl enable hd-idle.service

Ab hier läuft alles im Hintergrung, auch nach Neustart.

Meine Conf-Datei hänge ich an.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren