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 🙂

← Previous post

Next post →

12 Comments

  1. Utilissimo tip, penso di applicarlo più in là 😀
    Grazie della dritta 😉

  2. A me é migliorato solo di 5 sec 🙁

  3. Certo, visto che anche i tuoi amici arcieri ne parlano:
    https://wiki.archlinux.org/index.php/E4rat

    🙂
    ciao,
    A presto

  4. @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

  5. A me con SSD mi stava 32.8″ con Ubuntu 11.04 adesso 33.5″ :(((
    ciao

  6. 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

  7. 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

  8. 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. 😉

  9. @Lazza
    scusa il ritardo, non riesco a seguire tutto. Mi piacerebbe sapere cosa intendi per “riadattare”. Ciao, Antonio

  10. 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. 🙂

  11. 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.