Αυτόματη επαναρύθμιση του APM για HDD δίσκους μετά από suspend

Σε αυτόν το γρήγορο οδηγό θα σας δείξω πως θα επιλύσετε ένα πρόβλημα το οποίο όσοι χρησιμοποιείτε laptop πιθανότατα θα έχετε συναντήσει. Αν έχετε παρατηρήσει ότι ο HDD δίσκος σας κατά διαστήματα σταματάει για λίγο και ξεκινάει και πάλι (spindown), αυτό σημαίνει ότι ότι το APM στο δίσκο σας είναι “επιθετικά” ρυθμισμένο, ως μέσο για εξοικονόμηση ενέργειας.

Η απενεργοποίηση των spindowns στο Linux είναι πολύ εύκολη, και γίνεται δίνοντας την εξής εντολή στο τερματικό σας: sudo hdparm -B 255 /dev/sd* (όπου * είναι ο σκληρός δίσκος που χρησιμοποιείτε, π.χ. sda). Το -B στην εντολή χωρίς κάποιον αριθμό, δίνει την τιμή του APM. Οι τιμές που μπορούν να δοθούν είναι από 1 έως 255, όπου μέχρι το 254 ορίζεται η συχνότητα των spindowns. Η τιμή 255 απενεργοποιεί το APM.

Αν τρέξετε την παραπάνω εντολή, ο HDD σας θα λειτουργεί χωρίς spindowns μέχρι να κλείσετε τον υπολογιστή σας ή αν κάνετε suspend.

Για την αυτόματη επαναρύθμιση του APM, χρειάζεται να δημιουργήσετε μια υπηρεσία για το init system που χρησιμοποιείτε. Παρακάτω θα παραθέσω παραδείγματα για το systemd και το runit.

Για συστήματα με systemd

Οι παρακάτω οδηγίες δίνονται για τις διανομές που χρησιμοποιούν το systemd (Debian, Ubuntu, Arch, Fedora κλπ).

  1. Δημιουργούμε το αρχείο /etc/systemd/system/apm.service ως root.
  2. Στο αρχείο apm.service γράφουμε τα εξής:
[Unit]
Description=Local system resume actions
After=suspend.target hybrid-sleep.target hibernate.target

[Service]
Type=simple
ExecStart=/usr/bin/hdparm -B 255 /dev/sd*

[Install]
WantedBy=sleep.target

(Σημείωση: όπου * είναι το γράμμα του σκληρού δίσκου, π.χ. sda, sdb κλπ.)
3. Ενεργοποιούμε την υπηρεσία με την εντολή sudo systemctl start apm

(πηγή: Arch Wiki)

Για συστήματα με runit

Οι παρακάτω οδηγίες δίνονται για διανομές οι οποίες χρησιμοποιούν το runit (Artix, Void, Gentoo κλπ.)

  1. Δημιουργούμε το directory /etc/sv/apm
    (σημείωση: στο Artix δημιουργείτε το directory στο /etc/runit/sv. Για λεπτομέρειες όσον αφορά άλλες διανομές, ανατρέξτε στο documentation της διανομής σας.)
  2. Μέσα στο apm directory δημιουργούμε το αρχείο run ως root.
  3. Στο αρχείο run γράφουμε τα εξής:
#!/bin/sh
hdparm -B 255 /dev/sd*

(όπου * το γράμμα για το σκληρό δίσκο)

  1. Ενεργοποιούμε την υπηρεσία δημιουργώντας το εξής symlink:
    sudo ln -s /etc/sv/apm /var/service
    (στο Artix η εντολή είναι sudo ln -s /etc/runit/sv/apm /run/runit/service)

Με αυτόν τον τρόπο δεν θα έχετε spindowns μετά από το suspend του συστήματός σας.

8 «Μου αρέσει»

Να σημειώσω πως δεν πρόσθεσα κάποιο άλλο init system πέρα από το systemd και το runit, καθώς είναι τα μόνα στα οποία έχω κάποια εμπειρία.

Υπόψιν ότι όσοι έχετε GNOME μπορείτε απλά να το κάνετε μέσω του Gnome Disks

image

2 «Μου αρέσει»

Δε γνώριζα ότι υπήρχε GUI γι’ αυτό. Ίσως απλά θέλω να το κάνω με τον δύσκολο τρόπο :smiling_imp:

1 «Μου αρέσει»