Boot le plus rapide possible ( enlever initrd & autres )

Bonjour,

Avant tout, je tiens à préciser que j’ai cherché dans le T&A, mais je n’ai pas trouvé de tuto qui expliquait la mise en oeuvre d’un boot sans initrd.

J’ai plusieurs questions et quelques précisions vis à vis de quelques trucs qui permettent un démarrage plus rapide d’un système:

  • J’ai une install toute neuve d’une sidux ( 2.6.30-1.slh.3-sidux-686 #1 SMP PREEMPT Mon Jul 6 23:23:33 UTC 2009 i686 GNU/Linux )
  • J’ai viré kdm, avec autologin + startx, et j’utilise fluxbox
  • Lorsqu’on supprime udev et qu’on rend /dev statique, y a-t-il des séquelles ( genre créer les superblocks soi-même ) ? Et comment fait-on précisément pour virer udev?
  • Quelles options du .config faut-il mettre pour ne pas avoir à utiliser initrd?
  • Mettre tous les drivers utiles à son système “en dur” ( option “y”? ) accélère-t-il aussi le démarrage?
  • Utiliser des partitions étendues signifie-t-il qu’on utilise du LVM?
  • Que peut-on faire encore pour accélérer le démarrage de son pc?

Merci d’avance pour vos réponses,

L0u!$

PS: oui, je sais, ça fait beaucoup de questions, mais ça me fait peur tout ça.
N’hésitez pas à me mettre des liens vers des T&A, car je ne sais pas chercher :blush:

seul moyen c’est une compilation kernel
tu intègre les options de ta carte mère (pilotes ide sata…) et système fichiers (ext2 ext3…).

t&a =
viewtopic.php?f=8&t=22621

"Quelles options du .config faut-il mettre pour ne pas avoir à utiliser initrd?"
lsmod peux te renseigner sur les option à activer (connaitre le chipset ide, réseau, son …)

[quote=“dchost99”]seul moyen c’est une compilation kernel
tu intègre les options de ta carte mère (pilotes ide sata…) et système fichiers (ext2 ext3…).[/quote]

Mais il n’y aura pas de problèmes de boot?
En fait, initrd ne fait que charger des modules?

mon lsmod (modules) est vide
boot busybox 3,3 s
boot X entre 5 et 7 (avec Matchbox)

initrd est la pour charger les modules indispensables au démarrage
(reconnaitre le matériel disque, fichiers système pour root, charger le kernel et transmettre la main au kernel… si j’ai bien comris…)

[quote=“dchost99”]mon lsmod (modules) est vide
boot busybox 3,3 s
boot X entre 5 et 7 (avec Matchbox)

initrd est la pour charger les modules indispensables au démarrage
(reconnaitre le matériel disque, fichiers système pour root, charger le kernel et transmettre la main au kernel… si j’ai bien comris…)[/quote]

D’accord.

Il suffid donc, après avoir bien choisi les options, de ne pas mettre l’option --initrd à make-kpkg?

même dans les options kernel il me semble que tu as un truc genre
general, make without init support …?
et oui pas --initrd à make-kpkg

c’est quoi le modèle de ta carte mère?
si tu veux vraiment accélérer il faut aussi construire les modules en dur
garde le minimum (scsi, usb, désacive wifi si pas de wifi, …)

tu peux aussi prendre le .config que j’ai mis, repérer surtout les chipset ide et t’est parti pour 2-3 (au minimum) compilation avant de trouver ce qui convient
(à savoir: pas wifi, réseau ipv4, pas de chiffrage, pas de sécurité… et modifie que la partie drivers)

[quote=“dchost99”]même dans les options kernel il me semble que tu as un truc genre
general, make without init support …?
et oui pas --initrd à make-kpkg

c’est quoi le modèle de ta carte mère?
si tu veux vraiment accélérer il faut aussi construire les modules en dur
garde le minimum (scsi, usb, désacive wifi si pas de wifi, …)

tu peux aussi prendre le .config que j’ai mis, repérer surtout les chipset ide et t’est parti pour 2-3 (au minimum) compilation avant de trouver ce qui convient
(à savoir: pas wifi, réseau ipv4, pas de chiffrage, pas de sécurité… et modifie que la partie drivers)[/quote]

Bon, j’ai lancé la compilation.
En fait, tout ce que j’ai pu, je l’ai mis en * à la place de M dans menuconfig.
Je ne sais pas si c’est bien, enfin on verra.
J’ai viré tout ce qui ne me semblait pas nécessaire.
une compilation dure combien de temps environ? 1h-2h?

Beaucoup plus si ton cpu n’est pas un C2D au moins. Avec mon core duo datant de fin 2007 par exemple, j’ai droit à près de 6 h.

Ah ah … ah ah… ( toussote ) 1 Go de ram, 1 Coeur ** l0u!$ se pend **

La vitesse de compilation dépend de beaucoup de choses, le processeur oui, mais aussi la quantité de lignes de codes à compiler (qui est vaguement proportionnelle au nombre d’options sélectionnées dans le .config). Donc si tu fais un noyau minimal, ça devrait pas être si long que ça…

Pff j’ai eu une erreur de compilation sur un driver que je ne voulais pas… -_-

Allez hop on recommence en épurant encore.

Ah au fait effectivement, je n’avais pas vu l’option dans menuconfig pour initrd

[quote=“L0u!$”]

Pff j’ai eu une erreur de compilation sur un driver que je ne voulais pas… -_-
Allez hop on recommence en épurant encore.
Ah au fait effectivement, je n’avais pas vu l’option dans menuconfig pour initrd[/quote]

Les joies de la compil…

Hem…

Encore une erreur: Il me manque une librairie
"missing zlib.h"

Pourquoi y a-t-il ce genre d’erreurs sur un paquet officiel??

30 à 45 min sur un 500Mhz
jamais eu …
essaye
apt-get install zlib1g zlib1g-dev

make-kpkg clean (avant chaque recompil)
make-kpkg --append_to_verion=ma_énième_recompil kernel_image

Houla c’est à mon avis une mauvaise idée et tu vas avoir un noyau énorme.

Ce que tu veux est un boute rapide donc

  • Pas d’initrd (admettons)
  • Un noyau léger (quel intérêt de virer un initrd de 4M si c’est pour mettre un noyau énorme)

Le rôle de l’initrd est de monter la racine et de lancer /sbin/init. Pour ne pas l’utiliser, il faut que le noyau connaisse la racine (c’est c’est précisé dans grub ou lilo) et sache la monter. Il faut et il suffit que tu puisses monter ta racine. Pour cela il te faut mettre en dur ce qui correspond à ton disque dur et au système de fichier dessus (ext3, driver sata correpondant essentiellement, il faut tester).
Ton noyau doit être rapide à charger, donc le plus petit possible, ce qui n’est pas nécessaire doit être en module. Si tu mets tout en dur, ce sera ingérable avec un emploi mémoire énorme. Par ailleurs, certains systèmes marchent mal en dur (j’ai eu des soucis avec l’USB il y a longtemps, ça a peut être changé)
Tu veux te passer de udev, cela signifie que tu n’auras plus le «hotplug», en clair à l’insertion d’une clef USB par exemple, tu n’auras rien qui se passera et il faut au démarrage installer tous les périphériques (souris, clef USB, etc). Il te faut mettre les modules adequats dans /etc/modules ou en dur et gérer leur démarrage. Moi ça me parait stupide de virer udev sauf dans le cas d’une machine figée sur laquelle on ne branche rien (serveur par exemple), par contre c’est assez facile à faire:
apt-get remove --purge udev

Merci vos réponses.

Voila où j’en suis:
J’ai réussi à compiler, mais le problème qui se pose au boot c’est qu’il ne trouve pas mon firmware wifi ip2200-bss.fw ( il faut aussi le mettre en module? ) et, une minute après, lorsqu’il s’est rendu à l’évidence, il me dit la parition root “sda6” n’existe pas -_- alors que j’ai exactement les mêmes options pour mon autre noyau ( celui de l’install sidux ) sauf pour l’initrd.

Pour le prochain essai, je vais suivre ton conseil fran.b, mais pour l’instant, j’aimerais savoir si mon problème énoncé ci-dessus a un lien avec ce que tu as écrit, parce que des heures, il n’y en a que 24 dans une journée, donc j’aimerais éviter de perdre encore une heure de compilation.

Merci d’avance.

fran.b +1 (sauf pour le udev, moi je ne l’utilise pas et quand je branche une clé usb j’ai un raccourci pour monter et démonter la clé )
donc minimiser un max ça éviter une compil pendent des heures et donne un noyau léger

firmware c’est pas grave tu mets wifi en module c’est pas essentiel
par contre “parition root “sda6” n’existe pas” ça …
ton disque root n’existe pas
essaye de retrouver le nom de ton chipset sata, scsi activé, scsi disk (avec une * et non M)
et laisse udev le temps d’avoir un kernel qui démarre.

c’est complétement diffèrent un démarrage avec initrd et sans (tu peux pas te baser sur les option du kernel avec initrd)

Je ne me base sur rien, je regarde ce qu’est l’option ( “help” ) et si je pense que je n’en n’ai pas besoin ,je désactive.

Donne le lsmod et lspci -n de ta machine.

Pour usb/udev: je pense au branchement de webcam, de dongle Bluetooth, de SD carte, etc. Mais surtout je trouve que udev a été la meilleure ammélioration de linux depuis 5 ans (pour ClefAgreg, il y a un avant et un après udev!) et je le trouve léger et rapide mais bon, chacun ses choix.

$ lspci -n
00:00.0 0600: 8086:2590 (rev 03)
00:01.0 0604: 8086:2591 (rev 03)
00:1c.0 0604: 8086:2660 (rev 03)
00:1c.1 0604: 8086:2662 (rev 03)
00:1d.0 0c03: 8086:2658 (rev 03)
00:1d.1 0c03: 8086:2659 (rev 03)
00:1d.2 0c03: 8086:265a (rev 03)
00:1d.3 0c03: 8086:265b (rev 03)
00:1d.7 0c03: 8086:265c (rev 03)
00:1e.0 0604: 8086:2448 (rev d3)
00:1e.2 0401: 8086:266e (rev 03)
00:1e.3 0703: 8086:266d (rev 03)
00:1f.0 0601: 8086:2641 (rev 03)
00:1f.1 0101: 8086:266f (rev 03)
00:1f.2 0101: 8086:2653 (rev 03)
00:1f.3 0c05: 8086:266a (rev 03)
01:00.0 0300: 1002:5462
06:01.0 0200: 10ec:8139 (rev 10)
06:02.0 0280: 8086:4220 (rev 05)
06:04.0 0607: 104c:8031
06:04.2 0c00: 104c:8032
06:04.3 0180: 104c:8033
06:04.4 0805: 104c:8034
$ lsmod
Module                  Size  Used by
radeon                156224  0      
drm                   158688  1 radeon
michael_mic             2284  8       
arc4                    1676  4       
ecb                     2572  4       
lib80211_crypt_tkip     8812  2       
af_packet              17868  2       
ipv6                  284212  12      
ppdev                   7472  0       
lp                      9636  0       
parport                35500  2 ppdev,lp
acpi_cpufreq            8600  0         
cpufreq_stats           4272  0         
cpufreq_powersave       1356  0         
cpufreq_conservative     7136  0        
cpufreq_performance     1388  0         
cpufreq_ondemand        7200  1         
freq_table              4332  3 acpi_cpufreq,cpufreq_stats,cpufreq_ondemand
fuse                   54632  3                                            
ext2                   65332  1                                            
ext3                  127028  1                                            
jbd                    48800  1 ext3                                       
snd_intel8x0           29576  0                                            
snd_intel8x0m          13624  0                                            
snd_ac97_codec        101776  2 snd_intel8x0,snd_intel8x0m                 
snd_pcm_oss            39008  0                                            
ac97_bus                1548  1 snd_ac97_codec                             
snd_mixer_oss          16652  1 snd_pcm_oss                                
snd_pcm                73040  4 snd_intel8x0,snd_intel8x0m,snd_ac97_codec,snd_pcm_oss
snd_seq_dummy           2640  0                                                      
snd_seq_oss            28160  0                                                      
snd_seq_midi            6624  0                                                      
snd_rawmidi            21856  1 snd_seq_midi                                         
snd_seq_midi_event      7052  2 snd_seq_oss,snd_seq_midi                             
snd_seq                50448  6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
pcmcia                 29408  0                                                          
snd_timer              21140  2 snd_pcm,snd_seq                                          
snd_seq_device          7032  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
btusb                  12000  0                                                           
bluetooth              56900  1 btusb                                                     
ipw2200               140056  0                                                           
i2c_i801                9440  0                                                           
i2c_core               24032  2 drm,i2c_i801                                              
libipw                 28944  1 ipw2200                                                   
snd                    59236  11 snd_intel8x0,snd_intel8x0m,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
lib80211                6512  3 lib80211_crypt_tkip,ipw2200,libipw                                                                                                   
rng_core                4048  0                                                                                                                                      
soundcore               7296  1 snd                                                                                                                                  
snd_page_alloc          9076  3 snd_intel8x0,snd_intel8x0m,snd_pcm                                                                                                   
tifm_sd                 9684  0                                                                                                                                      
yenta_socket           23864  1                                                                                                                                      
psmouse                55236  0                                                                                                                                      
joydev                 10080  0                                                                                                                                      
pcspkr                  2284  0                                                                                                                                      
rtc_cmos               10220  0                                                                                                                                      
tifm_7xx1               5452  0                                                                                                                                      
rsrc_nonstatic         11724  1 yenta_socket                                                                                                                         
pcmcia_core            36192  3 pcmcia,yenta_socket,rsrc_nonstatic                                                                                                   
tifm_core               7752  2 tifm_sd,tifm_7xx1                                                                                                                    
rtc_core               16520  1 rtc_cmos                                                                                                                             
rtc_lib                 2828  1 rtc_core                                                                                                                             
battery                 6124  0                                                                                                                                      
container               3372  0                                                                                                                                      
button                  5212  0
processor              34688  2 acpi_cpufreq
evdev                   9632  20
serio_raw               5424  0
ac                      3084  0
ext4                  234700  1
mbcache                 7536  3 ext2,ext3,ext4
jbd2                   58884  1 ext4
crc16                   1836  1 ext4
dm_mod                 56708  0
usbhid                 37792  0
hid                    42656  1 usbhid
sg                     23132  0
sr_mod                 16068  0
cdrom                  35584  1 sr_mod
sd_mod                 28936  7
ahci                   32892  0
ata_generic             4560  0
usb_storage            52224  1
pata_acpi               3948  0
ata_piix               22992  4
uhci_hcd               22332  0
sdhci_pci               7148  0
8139too                23952  0
ehci_hcd               35224  0
sdhci                  17200  1 sdhci_pci
libata                172940  4 ahci,ata_generic,pata_acpi,ata_piix
scsi_mod              146480  5 sg,sr_mod,sd_mod,usb_storage,libata
8139cp                 20140  0
mii                     5164  2 8139too,8139cp
firewire_ohci          23184  0
firewire_core          44448  1 firewire_ohci
crc_itu_t               2220  1 firewire_core
mmc_core               52488  2 tifm_sd,sdhci
led_class               4112  1 sdhci
video                  18592  0
output                  2892  1 video
intel_agp              25980  0
usbcore               148848  6 btusb,usbhid,usb_storage,uhci_hcd,ehci_hcd
thermal                12712  0
fan                     3116  0

Bon, pour le /dev, je crois que je vais le laisser tel quel.