*Ubuntu potrebbe (?) rompere il tuo hard disk

HardDisk icon by everaldo.comC’è stata una piccola tempesta nei vari blog/siti 2.0/del.icio.us/newswine (…) relativo alla supposizione che *ubuntu possa portare a un logoramento prematuro degli hard disk.

Tutto è partito da un post di linux-hero (opportunamente amplificato da digg.com) che faceva riferimento al bug #104535 di Ubuntu: il riassunto del bug è che quando viene collegato alla batteria Ubuntu attiverebbe delle impostazioni che portano a un continuo arresto e riavvio dell’hard disk, cosa che da una parte aumenta l’autonomia del sistema, dall’altra causa uno stress meccanico che può accorciare la vita utile dell’hard disk.

Inizialmente il caos ha regnato e tutti hanno iniziato a incolpare Ubuntu della rottura del proprio hard disk. In realtà le cose sono un po’ più complicate di così (come ha segnalato Matthew Garrett — sviluppatore per Debian e lead developer per Ubuntu). Per sapere se il fantomatico bug vi affligge eseguendo il comando:

grep ENABLE_LAPTOP_MODE /etc/default/acpi-support

se vi viene restituito “false” allora non correte alcun pericolo.

laptop_mode è una variabile con cui si comunica al kernel Linux che si intendono attivare alcuni comportamenti che portano a un “miglioramento” del comportamento del sistema sui laptop (ad esempio bufferizzando le scritture su disco e scrivendole a burst, diminuendo così gli accessi all’hd e allungando conseguentemente la durata della batteria).

Tale variabile si può impostare modificando il file /etc/default/acpi-support . Il problema nasce dal fatto che quando viene alimentato dalla batteria, Ubuntu esegue il file /etc/acpi/power.sh , che contiene tra le altre cose il codice:

function laptop_mode_enable {...$HDPARM -S $SPINDOWN_TIME /dev/$drive 2>/dev/null

$HDPARM -B 1 /dev/$drive 2>/dev/null

}

Se vengono avviati, questi comandi cambiano le impostazioni del risparmio energetico dell’hard disk. Il primo comando riduce il tempo di spindown, cioè il tempo che deve passare dall’ultimo accesso prima che l’hard disk smetta di ruotare. Il valore di default, che si può leggere nel file /etc/default/acpi-support , è di appena 12 secondi. Questo continuo fermarsi e ripartire causa stress meccanico all’hard disk, accorciandone la vita utile. Il secondo comando invece imposta la politica di ACPI per l’hard disk al valore più aggressivo (eseguite man hdparm per ulteriori informazioni).

Ma questa funzione viene richiamata solo da un’altra funzione:

if [ x$ENABLE_LAPTOP_MODE = xtrue ]; then
    (sleep 5 && laptop_mode_enable)&
fi

Questo vuol dire che se la variabile ENABLE_LAPTOP_MODE allora verrà richiamata la funzione laptop_mode_enable riportata sopra. Di default, come si può controllare sempre nel file /etc/default/acpi-support , tale variabile è impostata a false, per cui l’odiatissimo codice che corrode gli hard disk non verrà abilitato.

Questo vuol dire che di default Ubuntu non modifica le impostazioni di risparmio energetico, e coloro che hanno osservato un aumento del valore di load_cycle_count (visualizzabile con sudo smartctl -A /dev/sda dove sda potrebbe cambiare e essere hda, hdb,… o sdb, sdc…) sono “vittime” delle impostazioni aggressive per il risparmio energetico impostate nel bios o nel firmware presente sui laptop. Ubuntu, di default, non modifica alcunché per questo aspetto.

Come osserva Matthew Garret, si potrebbe affermare che Ubuntu dovrebbe forzare politiche che non portino all’usura dell’hardware, ma del resto si suppone che il produttore del portatile ne sappia più degli sviluppatori di Linux su cosa quell’hardware possa o non possa fare.

One thought on “*Ubuntu potrebbe (?) rompere il tuo hard disk

  1. Nikola

    Sarà come dice Matthew Garret però sugli altri sistemi operativi evidentemente queste politiche vengono forzate, e gli harddisk preservati…

Leave a Reply