Faceți căutări pe acest blog

vineri, 24 iunie 2011

Boot-are rapidă

 Există diferite soluții pentru reducerea timpului de boot-are, în funcție de distribuția folosită și de cât de mult suntem dispuși să ”muncim” pentru așa ceva.
 În primul rând avem nevoie de o aplicație care să monitorizeze procesul de boot, astfel încât să avem datele referitoare la timpul de încărcare al sistemului.
 O aplicație utilă este bootchart. În primul rând instalăm bootchart și adăugăm în fișierul /boot/grub/menu.lst (pentru Grub legacy) sau în /boot/grub/grub.cfg (pentru Grub 2) liniei ce începe cu kernel (de exemplu: kernel /boot/vmlinuz26 root=/dev/sda7 ro vga=791) parametrul init=/sbin/bootchartd. Deci linia respectivă va arăta de forma:
kernel /boot/vmlinuz26 root=/dev/sda7 ro vga=791 init=/sbin/bootchartd

 Actualizare: în ultima vreme, în Arch Linux locația bootchartd este /usr/bin, deci vom înlocui init=/sbin/bootchartd cu init=/usr/bin/bootchartd...
 După repornirea sistemului, este suficient să dăm în consolă comanda bootchart-render pentru a se genera un grafic detaliat al procesului de boot, grafic care arată și timpul necesar încărcării sistemului.
 Parametrul vga=791 se referă la rezoluția framebuffer-ului terminalului, prin eliminare se mai câștigă 1-2 secunde, dar asta ar echiva cu folosirea tty cu o rezoluție standard  800x600, mult prea mică pentru gusturile mele. 

 Ar fi bine să rețineți că reducerea timpului de boot are tot felul de efecte negative, precum acea rezoluție sus pomenită, sau dispariția mesajelor din timpul încărcării sistemului, etc, deci priviți această optimizare a timpului de boot doar ca un exercițiu! La urma urmei nu boot-ăm din oră în oră, nu?

 Acum putem trece la reducerea acelui timp.
 Cea mai simplă și comodă posibilitate este prin adăugarea anumitor parametri kernelului. O listă cu parametrii kernelului găsiți aici: http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt.
 Exemple de parametri ce se pot folosi:
1-fastboot= sărim peste verificarea fsck;
2-noresume= dezactivează restaurarea partiției swap;
3- nosplash= dezactivează afișarea splash screen;
4-quiet= dezactivează majoritatea mesajelor log;
5- logo.nologo= nu se mai afișează logo-ul distribuției;
6- ipv6.disable=1= dezactivează ipv6;
7- rootdelay=1= util în eventualitatea că uneori primiți în timpul boot-ării mesaje de genul "Waiting 8s for device ...", astfel timpul de așteptare se reduce la 1 secundă.
 Folosind unii din acești parametri, plus rularea câtorva procese în background am reușit să micșorez timpul de boot de la 23 de secunde la 16 secunde pe Arch Linux (direct în Kde...), deci o micșorare a perioadei de încărcare cu 7 secunde, ceea ce mi s-a părut suficient.

 Alte mici ”trucuri” posibile ar fi rularea anumitor procese în background, rularea initscripts în mod asincron, nu într-o ordine prestabilită fixă, dezactivarea câtorva terminale tty nefolosite, folosirea altui terminal mai economicos (fgetty în loc de clasicul agetty), compilarea personală a unui kernel, folosirea unui script/ aplicație de tipul e4rat, quick-init, etc.
 Din experiența personală toate aceste metode dau rezultate similare sau sensibil egale, 14-16 secunde timp de boot, deci aș recomanda folosirea celei mai simple și sigure metode, adăugarea parametrilor sus-amintiți la kernel.

     


Niciun comentariu:

Trimiteți un comentariu

Back to top