Ich habe einen Laptop mit einer SSD für das primäre Betriebssystem und eine große Drehscheibe für die Speicherung. Ich habe derzeit einen Alias, den ich verwende, um das Laufwerk manuell herunterzufahren, wenn ich es nicht verwende (natürlich nach umount):
sudo hdparm -y /dev/disk/by-id/ata-WDC_WD7500BPKX-80HPJT0_WD-WX31AB3N6985
Ist das sicher zu bedienen? Wird dies hdparm
abgelehnt, wenn das Laufwerk noch nicht synchronisiert wurde oder ich vergessen habe, es abzumelden? Wenn nicht, gibt es eine Möglichkeit hdparm
(oder eine andere Möglichkeit) zu prüfen, ob dies sicher ist?
UPDATE -
So sehr ich Ihre beiden Antworten auch schätze, sie helfen mir überhaupt nicht, da ich unzählige verschiedene Wertekombinationen für die Einstellungen für APM und Auslaufzeit ausprobiert habe, ohne dass Ergebnisse außer a) vor weniger als 10 Sekunden erzielt wurden Spin-Down b) kein Spin-Down, aber zufälliges Parken oder c) kein Spin-Down oder Parken. Ich habe auch versucht, im Internet nach meinem spezifischen Laufwerksmodell und den entsprechenden APM-Werten zu suchen, ohne Erfolg.
Die Richtung, in die ich gehen möchte, ist folgende: Ich muss einen Weg finden, um festzustellen, ob die Festplatte verwendet wird, damit ich einen systemd-Dienst schreiben kann. Der nächste lsof | grep /mnt/data
Punkt, zu dem ich bisher kommen kann, ist oder ein solcher Unsinn. Aber wie Sie sehen, ist das alles andere als ideal. Ich hätte gerne eine Methode, um dies zu erreichen, die nicht von einem vorher festgelegten Einhängepunkt oder den mehrfachen Aufrufen von lsof + D mntpoint in der Antwort abhängt, die ich mir selbst gegeben habe.
Schauen Sie sich meine Antwort unten an, um eine Vorstellung davon zu bekommen, was ich zu tun versuche
-S
Option, um ein kurzes Timeout einzustellen, damit das Gerät selbst entscheidet, wann es herunterfährt.Antworten:
Anstatt manuell zu versuchen, dies herauszufinden, verlassen Sie sich auf vorhandenes Material. Ich benutze HD-Idle auf meinem Dateiserver, es funktioniert großartig. Ich hänge meine Laufwerke auch nicht ab, weil es wirklich keinen Grund gibt, dies zu tun. Wenn ich auf eine Datei zugreifen möchte, werden die Datenträger hochgefahren. Nachdem die Zeit abgelaufen ist, werden sie wieder heruntergefahren.
Wenn Sie in Bezug auf die Datenintegrität äußerst paranoid sind, können Sie autofs verwenden , mit denen Ihre Dateisysteme bei Bedarf automatisch bereitgestellt und umgemountet werden können. Ich habe es selbst nicht benutzt, aber die ArchWiki-Seite bietet einige Informationen, die ziemlich brauchbar aussehen.
quelle
Du hast einen Alias! Vielleicht ist es besser, ein Skript zu haben, das das Synchronisieren / Aufheben der Bereitstellung vornimmt und dann hdparm aufruft. Fügen Sie das Skript der sudoers-Datei hinzu.
Das && stellt sicher, dass der vorherige Befehl erfolgreich beendet wurde, bevor der nächste ausgeführt wird.
Dann zu Sudoern hinzufügen. Das könnte funktionieren:
DanielB machte einen brillanten Vorschlag: Verwenden Sie autofs, um eine lokale Festplatte automatisch zu mounten / zu entmounten (ich habe nie daran gedacht, dies so zu tun, da ich normalerweise auf Servern arbeite und autofs traditionell für NFS war). Dann, wenn das eingerichtet ist (frag mich nicht wie;)), füge so etwas zu einem Cronjob hinzu:
Stellen Sie sicher, dass Sie DISK-DEV und MOUNTPOINT ersetzen (wenn Disk-dev über 0 oder 1 Partition verfügt, können Sie diese für MOUNTPOINT verwenden). Bitte beachten Sie: Ich kann dies nicht testen, da das einzige physische System, auf das ich Zugriff habe, ein RAID-Gerät ist und der Controller diese Befehle nicht unterstützt.
quelle
autofs
.Hinweis
Sie müssen die Partitionen nicht ummounten, um die Festplatte herunterzufahren. Es ist einfacher, wenn Sie nur ein Standby-Timeout festlegen (das nach einiger Zeit ausgelöst wird, wenn es nicht verwendet wird). Auf diese Weise wird die Festplatte bei Bedarf aktiviert (hochgefahren) und kann sofort verwendet werden, ohne dass die Partitionen erneut bereitgestellt werden müssen.
Befehlszeilenlösung
Verwenden
hdparm
Sie, wie @Nattgew für einen Kommentar vorgeschlagen hat, (sofern dies das von Ihnen bevorzugte Tool ist) die-S
Option, ein Standby-Zeitlimit festzulegen:Auf diese Weise wird die Festplatte automatisch heruntergefahren, wenn keine Aktivität stattfindet.
Um diese Änderung dauerhaft zu machen (dh nach einem Neustart), müssen Sie möglicherweise Änderungen an vornehmen
/etc/hdparm.conf
. Da Ihre Distribution heutzutage wahrscheinlich verwendet wirdsystemd
, müssen Sie möglicherweise eine Einheit erstellen:https://unix.stackexchange.com/a/89013/66295
Der einfachste Weg wäre wahrscheinlich, ein grafisches Tool zu verwenden ... (Ja, manchmal, wenn in Ihrem System bereits eine grafische Benutzeroberfläche aktiviert ist, ist dies der schnellste Weg.)
GUI-Lösung (GNOME)
Ich gehe davon aus, dass Sie über eine grafische Benutzeroberfläche verfügen. Bei GNOME-Distributionen gibt es ein Programm mit dem Namen "Disks":
Sobald Sie die Festplatte ausgewählt haben, die Sie in den Standby-Modus versetzen möchten, können Sie im Menü auf "Laufwerkseinstellungen" klicken (oder CTRL+ Ekann auch eine Verknüpfung sein):
Ändern Sie dann die Einstellungen für das Standby-Zeitlimit:
quelle
hdparm
auf vielen Laufwerken nicht ordnungsgemäß funktioniert und das Laufwerk nach Sekunden statt nach Minuten oder Stunden herunterfährt. Dies kann Ihre Festplatte zerstören.Hier ist mein Hack von einem Skript bis jetzt. Ich werde das offen halten, bis jemand eine bessere Lösung findet ...
Ich werde noch herausfinden müssen, wie ich dies in einen systemd-Dienst einbinden kann, der alle X Minuten ausgeführt wird. Offensichtlich wäre es besser, wenn es eine Alternative zu lsof und grep gäbe. Ich bin mir auch nicht sicher, ob dies mit lustigen Mount-Point-Zeichen funktionieren würde, da grep verwendet wird. Außerdem müsste es überarbeitet werden, wenn Sie mehr als 9 Partitionen hätten.
Bitte, wenn Sie irgendwelche Vorschläge haben, zögern Sie nicht.
quelle
-S
Option nicht (Standby, wenn sie nicht aktiv ist)?