Boot più veloce in Ubuntu Natty con e4rat (Ext4 – Reducing Access Times)

Le prestazioni del boot delle ultime versioni di Ubuntu hanno risentito del passaggio a ext4. Sul mio portatile per esempio, forse anche a causa dei diversi programmi che installo, ci vuole più di un minuto per arrivare al desktop.

Su questa guida sono venuto a conoscenza di e4rat (Ext4 – Reducing Access Times) un tool che lavora sulla riallocazione dei blocchi occupati dai programmi caricati all’avvio.

Prima di procedere, ho rimosso i servizi in upstart e le applicazioni di avvio in gnome, arrivando a quanto visibile in queste immagini:

Per poter capire se effettivamente c’è un guadagno di tempi d’avvio, ho concentrato l’attenzione su alcune righe di ‘dmesg‘, piu o meno quelle relative al boot del sistema e al caricamento di gdm, queste sono quelle prima della modifica (62 secondi per arrivare alla wlan):

[ 26.243112] vboxpci: IOMMU not found (not registered)
[ 53.793160] EXT4-fs (sda6): re-mounted. Opts: errors=remount-ro,commit=0
[ 62.878439] wlan1: authenticate with 00:1c:cf:xx:xx:xx (try 1)

Per installare e4rat, scaricato da qui, vanno rimossi ureadahead e ubuntu-minimal.

Il primo passaggio è di aggiungere una sola volta a grub e4rat-collect che nel tempo di 120 secondi accoderà nel file /var/lib/e4rat/startup.log i dati che verranno rielaborati da e4rat-realloc.

La prima modifica riguarderà il file /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="init=/sbin/e4rat-collect quiet splash"

aggiorniamo grub e riavviamo in modalità single (ripristino)

sudo update-grub

al prompt di root in single mode (runlevel 1) useremo

e4rat-realloc /var/lib/e4rat/startup.log

Finito questo passaggio possiamo inserire la riga per rendere permanente il boot veloce, editiamo il file /etc/default/grub e aggiorniamo

GRUB_CMDLINE_LINUX_DEFAULT="init=/sbin/e4rat-preload quiet splash"

sudo update-grub

Al riavvio finale i tempi si sono dimezzati, incredibile ma vero.

[ 21.480143] vboxpci: IOMMU not found (not registered)
[ 27.185180] EXT4-fs (sda6): re-mounted. Opts: errors=remount-ro,commit=0
[ 32.864596] wlan1: authenticate with 00:1c:cf:xx:xx:xx (try 1)

Enjoy 🙂

12 thoughts on “Boot più veloce in Ubuntu Natty con e4rat (Ext4 – Reducing Access Times)

    1. @Luca
      Credo che dipenda da alcuni fattori, il “collect” e il preload, dovrebbe essere fatto almeno due volte e appena si apre gnome, lanciare i programmi soliti che rientrino nei 120 secondi (tempo che può essere impostato in /etc/e4rat.conf
      Considera però che dipende dal kernel in uso e da quanti servizi vengono caricati all’avvio 😉
      ciao,
      Antonio

    1. scusa, ma il filesystem è ext4? il file /var/lib/e4rat/startup.log contiene i riferimenti ai blocchi? cerca di capire se ci sono servizi attivi prima di fare il test 😉
      Ciao,
      Antonio

      1. il file system e’ in ext4 senza journaling , il comando ls /var/lib/e4rat/ mi da’ startup.log , quindi ok. I servizi attivi non gli ho modificati.
        Ciao

  1. Ho dovuto un po’ riadattare le istruzioni per Ubuntu 12.04, ma a quanto pare ha funzionato. 🙂 I secondi precisi non li saprei dire, paradossalmente il wireless si carica dopo in dmesg, però complessivamente mi sembra più veloce l’avvio, e anche il caricamento di Unity. 😉

    1. Se non ricordo male qui “aggiorniamo grub e riavviamo in modalità single (ripristino)” hai dimenticato di dire che prima ci vuole un riavvio “normale” così il software raccoglie i dati, e poi un altro riavvio per andare in modalità testuale. Io comunque non ho usato la modalità single perché mi dava problemi, ho optato per andare in tty. 🙂

  2. A dire il vero, essendo passato qualche mese, non ricordo e forse hai ragione tu, potrei aver scritto male.
    Anche se mi pare che il collect dei dati “init=/sbin/e4rat-collect” passato come parametro a grub al boot avviene comunque. Rimane il fatto che questa strada non è stata percosa finora anche se, secondo me, apporta lievi vantaggi.
    ciao,
    Antonio

Leave a Reply