Portál AbcLinuxu, 21. května 2025 00:35
V jednom z minulých newsletterů Arch Linuxu jsem narazil na odkaz týkající se zrychlení startu Arch Linuxu. Rozhodl jsem se něco podobného také zkusit. Dnešní odpoledne jsem tedy strávil úpravou inicializačních skriptů a měřením rychlosti startu.
Pokusy jsem prováděl na svém starém notebooku (Pentium 4M 1,7 GHz, 256 MB RAM). Mám tu nainstalovaný aktuální Arch Linux doplněný o E17. Dosavadní nastavení systému týkající se startu zahrnovalo pouze spouštěštění většiny daemonů napozadí. Start tedy trval dohomady 75 vteřin, z toho 8 vteřin POST, 55 vteřin vlastní boot systému až k úvodní obrazovce Entrance a pak 12 vteřin start E17.
První úprava se týkala souboru /etc/rc.sysinit, podle výše uvedeného vlákna jsem se zaměřil na odstranění věcí týkajících se podpory šifrovaných souborových systémů, RAIDu a kontroly TIMEZONE. Můj notebook RAID mít nemůže a má paranoia ještě není tak velká, abych nasadil šifrování.
Výsledkem bylo až překvapivé zrychlení doby bootování do X11 z 55 na 42 vteřin.
Dále jsem se inspirován příspěvkem na blogu zmíňeném ve vlákně zaměřil na úpravu souboru /etc/rc.conf. Zkusil jsem odstranit automatické načítání jaderných modulů. Nejprve jsem si zjistil, jaké moduly jsou pro můj hardware potřeba a v jakém pořadí se mají načítat:
[nik@northwood ~]$ hwdetect --show-modules-order MODULES ORDER: ac battery button container dock fan processor thermal video wmi cdrom agpgart intel-agp intel-rng lp ppdev evdev joydev pcspkr psmouse serio_raw parport parport_pc pci_hotplug shpchp rtc-cmos rtc-core rtc-lib output crc-ccitt ac97_bus snd-mixer-oss snd-pcm-oss snd snd-page-alloc snd-pcm snd-timer snd-ac97-codec snd-intel8x0 soundcore pata_acpi ata_generic scsi_mod ata_piix eepro100 e100 irtty-sir sir-dev mii irda pcmcia_core rsrc_nonstatic yenta_socket usbcore ehci-hcd ohci-hcd sd_mod sr_mod
Některé z těchto modulů byly také explicitně zmíněny v poli modules souboru rc.conf, oproti vypsaným tam byl navíc modul acpi_cpufreq, který jsem zařadil nakonec seznamu. O spuštění ostatních modulů se staral autoload. Nyní jsem s pomocí Googlu a Mandlova blogu začal zjišťovat, k čemu jednotlivé moduly slouží, bohužel se mi to nepodařilo u všech, takže je možné, že se mi stále načítá několik modulů, které ve skutečnosti nepotřebuji (nevyužívám).
Pomocí ! jsem zakázal následující moduly: intel-rng (nevím, k čemu slouží, vracel ale při zkušebním spuštění Fatal Error), lp, ppdev (modem), serio_raw (externí myš nepoužívám), parport (paralelní port), parport_pc, shpchp, irtty-sir (infraport), sir-dev mii (infraport), irda (infraport), pcmcia_core (PCMCIA), rsrc_nonstatic (PCMCIA), yenta_socket(PCMCIA).
Pak jsem vypnul autoload a restartoval. Tentokrát už nebylo zrychlení tolik výrazné: ze 41 na 37 vteřin. Poznámka: Vypnutí autoloadu způsobí, že se nebudou načítat moduly pro zařízení připojená zaběhu, jako například flashky. Je tedy dobré všechna požadovaná zařízení před spuštěním příkazu připojit.
Posledním dnešním cílem byl soubor mkinitcpio.conf. Tady jsem trochu zápasil s nastavením, které by bylo spustitelné. Nakonec jsem z pole HOOKS odstranil pouze sata a scsi a ponechal base, udev, autodetect, pata, keymap a filesystems.
Na rychlosti startu se toto opatření už nijak neprojevilo, budu se muset na tento soubor zaměřit ještě jednou.
Celkově se mi tedy podařilo zkrátit start celého systému z minuty a čtvrt na něco málo pod minutu, což je nějakých 20%. Pro srovnání Windows XP bootovaly v defaultním nastavení po čerstvé instalaci dvě minuty. Na takto starém stroji jsem s Arch Linuxem velmi spokojen a právě jeho rychlost a vysokou konfigurovatelnost považuji za největší výhodu.
Tiskni
Sdílej:
Díky za nápad, odstranil jsem z rc.sysinit modprobe rtc_cmos (mám ho v jádře). Už mnš to štvalo delší dobu, ale vždycky jsem na to tak nějak zapomněl.
Taky jsem si změřil rychlost bootu. Takže samotný boot včetně initscriptů do bashe mi trvá přesně 20 s. Spuštění KDM dalších 10 s. Rychlost spuštění e16KDE jsem zapomněl změřit.
A pak taky samozřejmě kompilace jádra na míru.To bych udelal jako uplne prvni krok optimalizace. Dost velkou cast bootovani zabiraji celkem zbytecne veci jako detekce hardwaru, pokus zavest moduly na neexistujici zarizeni nebo jenom obycejny
depmod -a
pri kazdem bootu. Pokud clovek nemeni hardware jako ponozky, tak se to vyplati i pri zahrnuti casu na nastaveni a prelozeni jadra.
POST: 08:20 Systém: 20:04 X: 4:50 Výsledek: 32:74 sekund do plne funkcniho systému.Jinak komp mam slabej je to asi 5 let stara mozna i vic sestava je tam 256 RAM a nejakej hodne obranej celeron ktery o sobe tvrdi ze ma 2.4 GHz, ale kdyz jsem ho ruzne testoval tak stezi dosahoval vysledku pentia na kmitoctu 1.8 GHz.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.