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.
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
- Digikam disponible en version 3.2.0
- Surveillez facilement vos connexions réseau sur GNU/Linux grâce à Netactview
- Qtiplot - Un outil de retranscription et d'analyse sympa pour les scientifiques
- SMPlayer 0.8.5 disponible
- Synfig Studio 0.64.0 - L'animation vectorielle 2D qui roxe du poney

