e4rat – Accélérez votre temps de démarrage

Plop les bovins !!!

Aujourd’hui je vais vous parler d’un outil que j’utilise tous les jours, il s’agit de e4rat (prononcez : i-fort-ratte). E4rat est un utilitaire qui permet d’accélérer le temps de boot sur les systèmes de fichiers EXT4. Le principe est extrêmement simple:

En fait, pendant le processus de démarrage, ni le disque, ni le CPU ne sont utilisés (ou alors très peu), e4rat va donc intervenir à ce niveau-là pour utiliser ces deux éléments, afin de précharger les outils que vous utilisez le plus, plutôt pratique non? :)

Bon, il y a un petit bémol cependant, les possesseurs de SSD ne pourront pas bénéficier des avantages de e4rat. En effet, les SSD ne disposent pas de pièce « mobile » au sein du disque dur, donc le problème de latence d’accès aux données ne se pose pas (petits chanceux ! :D).
Le système de fichier EXT4 est également indispensable, en effet e4rat signifie: ext4 reduce access time (réduire le temps d’accès pour ext4).

Bon, si ca vous intéresse toujours, voila comment on va procéder:

Dans un premier temps, on va faire un premier démarrage pour collecter les données relatives aux logiciels que vous voulez utiliser.

Dans un second temps, nous allons prendre ces données collectées et les réallouées pour qu’elles soient compréhensibles par e4rat.

Enfin, nous allons précharger ces données durant le processus de démarrage.

 Avertissement

Il faut savoir que ces manipulations touchent au processus de démarrage et pourraient entrainer le non-accès à votre système. Utilisez ces commandes en connaissance de cause, la-vache-libre ne pourrait être tenu pour responsable en cas de dommage de votre système ou du non-accès à vos données.

Installation

Archlinux

le paquet e4rat est disponible dans [Community], l’installation se fait simplement en entrant la commande suivante:

pacman -S e4rat

Vous pouvez également installer le paquet de e4rat-preload-lite disponible sous [AUR] que nous utiliserons de manière alternative, son installation n’est donc pas nécessaire. Pour ce faire, entrez la commande :

yaourt -S e4rat-preload-lite

Ubuntu

Sous ubuntu, l’installation se fait en téléchargeant le paquet .deb du projet, qui est disponible ici. Le paquet est disponible pour les architectures i386 et amd64. Puis installer le paquet de manière graphique via Gdebi ou par la console en tapant :

sudo dpkg -i /chemin/vers/votre/fichier/e4rat_0.2.3_<architecture>.deb

La dernière version disponible est la 0.2.3 qui est la même que celle disponible sous Archlinux.

Procédons à présent aux différentes étapes décrites ci-dessus.

Collecte des données

Le but de cette étape est de permettre de précharger les applications que vous utilisez le plus. Il est à noter que plus vous déployez d’applications durant cette phase, plus le temps de démarrage sera long. Il est donc conseillé en général de ne déployer que le strict minimum (pour éviter que le processus de démarrage soit plus long que ce qu’il n’est actuellement), le couple environnement de bureau/navigateur internet est un bon exemple d’un déploiment classique. C’est d’ailleurs celui-ci que j’ai choisi.

Regardons sans plus attendre comment procéder. Il suffit pour cela d’éditer le fichier de configuration de votre bootloader. Dans les exemples suivants, nous allons prendre le cas de Grub2 qui est, il me semble, celui qui est le plus utilisé. Il faudra donc adapter votre fichier de configuration si vous utilisez autre chose.
Éditons donc le fichier : /etc/default/grub

dans la partie GRUB_CMDLINE_LINUX , il faut ajouter la formule suivante : /sbin/e4rat-collect , la ligne ressemblera donc à quelquechose comme ceci :

GRUB_CMDLINE_LINUX="init=/sbin/e4rat-collect"

Pour que cette commande soit prise en charge, il faut mettre à jour le fichier de config propre à Grub2 durant la phase de boot, il faut donc taper la commande (attention les droits root sont exigés) :

grub-mkconfig -o /boot/grub/grub.cfg

Durant cette étape, il faut également vérifier que le système d’init utilisé est bien conforme à celui du système, pour cela, il faut vérifier directement dans le fichier de configuration de e4rat, qui se trouve ici: /etc/e4rat.conf
Il faut vérifier la ligne correspondante au init process, par défaut, le système d’init SysV est utilisé, changez-le alors pour celui que vous utilisez, si c’est systemd, il faudra mettre :

; path to init process binary (DEFAULT: /sbin/init)
init /bin/systemd

Et si c’est upstart, ce sera :

; path to init process binary (DEFAULT: /sbin/init)
init /bin/upstart

Vous pouvez également en profiter pour changer le temps que le logiciel mettra à collecter les données. Par défaut, ce temps est de 120 secondes, ce qui peut sembler trop long (ou trop court :P) suivant la machine utilisée. Pour le modifier, repérez la ligne qui correspond dans le fichier : /etc/e4rat.conf, elle devrait ressembler à ceci :

; timeout after collector will stop when started as init process (DEFAULT: 120)
timeout 120

Vous pouvez donc remplacer le chiffre 120 par celui que vous voulez, veillez toutefois à ne pas mettre un chiffre trop petit car l’interface graphique ne sera pas complétement chargée sinon. Pour ma part, j’ai mis 100 secondes.
Il est également possible de tuer le processus pendant la collecte de données , pour cela, il suffit de taper la commande :

e4rat-collect -k

ou

pkill e4rat-collect

tout ceci avec les droits root bien sûr.

Note : Après que ce temps se soit écoulé, un fichier startup.log est créé dans le répertoire /var/lib/e4rat.

D’autres options sont disponibles si vous voulez paramétrer plus finement la collecte d’informations.
Bon, à présent, la configuration de la collecte d’information est terminée, vous pouvez redémarrer votre ordinateur

Réallocation des données

Si vous êtes arrivés à cette étape, je suppose que le redémarrage et la collecte des données se sont bien passés. Vérifiez tout de même que le fichier /var/lib/e4rat/startup.log est bien présent sur votre machine car il est essentiel pour la suite des événements.

À ce niveau là, deux choix s’offrent à vous :
Soit vous décidez de faire l’optimisation classique de votre temps de boot en effectuant la collecte de donnée sur votre environnement classique.
Soit vous optimisez la réallocation de données en passant par un environnement de secours.

En effet, on remarque que si l’on choisit la deuxième solution, le processus de réallocation fonctionne mieux car certains blocs ne sont pas libres lors de l’utilisation d’un environnement multi-utilisateurs. À vous de voir donc, de toutes facons, j’expliciterai les deux solutions en précisant à chaque fois s’il s’agit de la solution (1): réallocation classique ou la deuxième (2): réallocation par environnement de secours.

(1) Pour effectuer la réallocation, il suffit de se placer dans le init 1. Pour cela, rien de plus simple, il suffit d’entrer la commande :

sudo init 1

Ensuite, il faut utiliser la fonction : e4rat-realloc avec le fichier startup.log généré (d’où son importance), tapez donc la commande:

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

Cette phase peut prendre du temps, suivant le nombre de données que vous avez à réallouer.

(2) Pour réallouer les données, placez-vous tout d’abord dans l’environnement dit rescue (environnement de secours), sous systemd, il suffit de faire un :

sudo systemctl rescue

Je ne décrirai pas ce qu’il faut faire sous upstart (Ubuntu donc) car je ne le sais pas (tout simplement), si ca vous intéresse, je vous propose la lecture de la documentation de Upstart sur la documentation officielle de Ubuntu-fr, ainsi que la lecture du manuel upstart qui est disponible par la commande :

man upstart

Il suffit ensuite de procéder comme pour la manière classique, à savoir, utiliser la commande e4rat-realloc sur le fichier startup.log généré, donc :

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

Là encore, cette phase dépend de la quantité de données à réallouer.

Après l’exécution de cette phase, ne redémarrez pas l’ordinateur, car sinon, l’ordinateur recollectera les données et rechargera le fichier startup.log, toute cette phase n’aura donc servi à rien :/

Préchargement des données

Bon, récapitulons donc, nous avons dans un premier temps collecté les données qui nous intéressent, nous les avons réallouées afin qu’elles soient traduisibles pour e4rat, il reste maintenant à les précharger.
Durant cette phase, deux nouvelles possibilités s’offrent à nous :
La première consiste à utiliser le préchargement classique de e4rat.
La deuxième concerne les utilisateurs de Archlinux. Rappelez-vous, je vous ai dit plus haut que l’on pouvait installer e4rat-preload-lite comme un paquet optionnel, eh bien c’est là qu’il intervient !! :D En effet, ce paquet offre certains avantages par rapport à la commande classique e4rat-preload.

Parmi ces avantages, on peut citer :

Le fait qu’il ne soit écrit qu’en C et qu’il ne dépende d’aucune bibliothèque externe (ce qui diminue le nombre de link qui ont tendance à ralentir le processus).

Le fait de précharger les 100 premiers fichiers avant le processus d’init, ce qui diminue par la suite le nombre de fichiers à charger.

Personnellement, je dirais que c’est du cas par cas. Pour ma part, il m’a fait gagner un peu plus d’une seconde mais d’autres disent que ca ne change absoluement rien comparé au classique e4rat-preload.

Bref, quelle que soit votre décision, voila comment procéder :

Pour e4rat-preload

Il suffit là encore, d’éditer le fichier de configuration de Grub2 (ou de votre bootloader correspondant). Éditons donc à nouveau le fichier /etc/default/grub en modifiant la ligne :

GRUB_CMDLINE_LINUX="init=/sbin/e4rat-collect"

En la remplacant par :

GRUB_CMDLINE_LINUX="init=/sbin/e4rat-preload"

Une fois éditée, sauvegardez et quittez le fichier, puis mettez à jour le fichier de configuration du boot en tappant :

grub-mkconfig -o /boot/grub/grub.cfg

Pour e4rat-preload

Il suffit là encore, d’éditer le fichier de configuration de Grub2 (ou de votre bootloader correspondant). Éditons donc à nouveau le fichier /etc/default/grub en modifiant la ligne :

GRUB_CMDLINE_LINUX="init=/sbin/e4rat-collect"

Et remplacez la par :

GRUB_CMDLINE_LINUX="init=/usr/sbin/e4rat-preload-lite"

Une fois éditée, sauvegardez et quittez le fichier, puis mettez à jour le fichier de configuration du boot en tappant :

grub-mkconfig -o /boot/grub/grub.cfg

Voilà, vous pouvez redémarrer votre machine et profiter d’un temps de démarrage plus rapide.
J’ai pu ainsi gagner une dizaine de secondes sur mon PC actuel, en passant de 15 à 5 secondes.

En espérant que cela vous aura servi :)
Wiki Archlinux Documentation Ubuntu

Moo !!!


Articles similaires



  • http://www.la-vache-libre.org/ Regis Hamann

    Salut Lei00 :D, bon et bien je vais essayer ca ce weekend…Sinon suis-je le seul à ne pas voir les images ? Le serveur d´ici semble bloquer les images provenants de  »
    http://pix.tdct.org » pour des raisons de « Media Sharing not allowed » :(.

    Je ne sais pas si c´est voulu mais à la fin du billet pour le même titre à part « e4rat-preload-lite » rien n´est différent.

    • Lei Xirer

      Salut Régis !

      Je n’ai pas le problème que tu décris à propos de pix.tdct.org, peut-être était-ce juste temporaire, c’était le cas en tous cas avec toile-libre.

      Si le problème persiste, je vais utiliser l’hébergement Google :(

      Sinon pour le e4rat-preload-lite c’est tout à fait normal, les étapes sont les mêmes, il y a juste l’emplacement : /usr/sbin/e4rat-preload-lite au lieu de /sbin/e4rat-preload qui change.

      J’ai repris le même paragraphe car je me suis dit que les gens qui vont lire le détails sur e4rat-preload-lite ne vont peut-être pas vouloir lire le détail de e4rat d’où la présence de quasi le même paragraphe :)

      • http://www.la-vache-libre.org/ Regis Hamann

        Pour le problème de l´image ca ne vient pas de pix…mais du firewall d´ou je lis le billet. Peut-être d´autre lecteurs rencontrent le même soucis…
        Si c´est juste pour moi tu peux ne pas changer d´hébergement pour tes images ;)

        • Lei Xirer

          La question de Vinm a tendance à me rassurer sur ce sujet :)
          Mais tu utilises quoi comme Firewall ? Peut-être est-ce l’occasion de poser la question sur le Forum :)

      • http://la-vache-libre.org/ noireaude

        J’avais donc raison pour le -lite Régis. Heureusement que je n’ai pas édité :)

        Sinon pour les image vous vous cassez la tête pour rien, un compte gmail et vous avez 5 gigas disponilbes. Ça tourne bien et ça passe partout.

        Si vous voulez on en discute et on ouvre un compte Gmail dédié utilisable par les posteurs.

        Moo !!!

  • Vinm

    Super ton thème ! c’est quoi ?

  • noireaude

    Sacré pavé, merci :)

    • Lei Xirer

      C’est un plaisir :)

Top