Forum: PC Hard- und Software Linux: Festplatten gehen nicht mehr schlafen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Rangi J. (rangi)


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?

von Wladimir (vril_2023)


Lesenswert?

Linux Server mit grafischer Oberfläche?
Sowas gibt es doch eigentlich nur bei den Windows-Power-Administratoren 
😂😂😂

von Xanthippos (xanthippos)


Lesenswert?

Falls systemd direkt auf /sys/block/sda schreibt, brauchst du einen 
Hellseher mit magischen Fähigkeiten. Ein normaler Mensch blickt da nicht 
mehr durch.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Rangi J. schrieb:
> Also hab ich dann kurzerhand alles wieder deinstalliert.
> Das Verhalten ist leider immer noch nicht zum Ursprung zurückgekehrt.

Weil damit leider nicht alles weg ist. Du hast Dir damit ein paar 
Updates und systemd Services eingefangen.

von Daniel A. (daniel-a)


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.

von Rangi J. (rangi)


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?

von Daniel A. (daniel-a)


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.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Unter Umständen änderte ein Skript Eintragungen in einer 
Konfigurationsdatei, z.B. /boot/config-*-generic. Warning keep 
maintainers config y/n usw. wären Hinweise auf solche nicht so gängigen 
Herausforderungen.

von Steve van de Grens (roehrmond)


Angehängte Dateien:

Lesenswert?

Im Gnome Desktop von Debian gibt es das Programm "Laufwerke (Disks), da 
kann man so etwas einstellen. Funktioniert bei mir auch.

Vielleicht gibt es dieses Programm auch in Ubuntu.

von Daniel A. (daniel-a)


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.

: Bearbeitet durch User
von Lukey S. (lukey3332)


Lesenswert?

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

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

von Sheeva P. (sheevaplug)


Lesenswert?

Xanthippos schrieb:
> Falls systemd direkt auf /sys/block/sda schreibt, brauchst du einen
> Hellseher mit magischen Fähigkeiten. Ein normaler Mensch blickt da nicht
> mehr durch.

Naja, Du vielleicht nicht... :-)

von Rangi J. (rangi)


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

von G. K. (zumsel)


Lesenswert?

Rangi J. schrieb:

> Was könnte das sein? Wie kann ich rausfallen, wer hier das Schlafen
> verhindert? Gibt es andere Tools außer hdparm?

blktrace
fatrace

von Rangi J. (rangi)


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.

von Εrnst B. (ernst)


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

von Rangi J. (rangi)


Lesenswert?

Auch das funktioniert leider nicht:
sudo sh -c 'echo 10000 > /sys/block/sde/power/autosuspend_delay_ms'
sh: 1: echo: echo: I/O error

von Rangi J. (rangi)


Lesenswert?

Εrnst B. schrieb:
> Entweder mit "sudo -i" gleich eine root-shell starten

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

nee, sorry, geht auch nicht

von Εrnst B. (ernst)


Lesenswert?

Rangi J. schrieb:
> nee, sorry, geht auch nicht

Ja, gut möglich dass das Attribut für SATA-Platten nicht existiert. 
Lässt sich evtl. auch nicht auslesen.
Aber dann liegt's wenigstens nicht an fehlenden Root-Rechten.

von Daniel A. (daniel-a)


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

von Rangi J. (rangi)


Lesenswert?

Daniel A. schrieb:
> Steht power/control auf auto?

ja, bei allen 4 Platten

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Daniel A. schrieb:
> /sys/block/sde/power/autosuspend_delay_ms

Versuche mit sudo nano sys.... ob Du die Zahl über editieren ändern 
kannst.

: Bearbeitet durch User
von Herbert (herbyy)


Lesenswert?

hd-idle funktioniert bei mir unter Kubuntu prima.

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

herby

von Rangi J. (rangi)


Lesenswert?

Dieter D. schrieb:
> Versuche mit sudo nano sys.... ob Du die Zahl über editieren ändern
> kannst.

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

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


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.

von Rangi J. (rangi)


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?

von Herbert (herbyy)


Angehängte Dateien:

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.

von Frank L. (florenzen)


Lesenswert?

Das sollte bei Ubuntu 22.04 als Paket installierbar sein. Konfiguration 
über /etc/default/hd-idle.

Gruß,
f

von Rangi J. (rangi)


Lesenswert?

ja, apt-get hab ich verwendet

Herbert schrieb:
> Meine Conf-Datei hänge ich an.

Vielen Dank Herbert, ich werde mich da mal dransetzen und das noch 
eintragen.
Ich hab ich versucht, die symlinks (/dev/disk/by-partuuid etc.) zu 
verwenden. Funktioniert auch auf Anhieb.

Danke für die Hilfe

von Herbert (herbyy)


Lesenswert?

Danke für die Rückmeldung.
Freut mich, dass ich helfen konnte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.