vmlinuz et initrd introuvables après la construction du noyau?
9
Après avoir configuré et construit le noyau à l'aide de make, pourquoi n'ai-je pas vmlinuz-<version>-default.imget initrd-<version>.img, mais je n'ai obtenu qu'un énorme vmlinuxbinaire (~ 150 Mo)?
Tu as oublié de courir make bzImage? Avez-vous également créé un noyau monolithique? Utilisez-vous un système d'exploitation de type Debian? Si c'est le cas, et que vous n'effectuez pas de compilation croisée, il existe des moyens plus simples de créer un noyau.
Alexios
Je l'ai compilé dans OpenSUSE (cependant, j'ai téléchargé la dernière source depuis kernel.org). Après make menuconfig, j'ai tapé makeet je l'ai laissé faire.
Amumu
1
Vous devez make bzImagegénérer le noyau bzImage. Dites make helpvoir quelques brèves instructions. Consultez le Linux Kernel Howto pour obtenir des instructions détaillées. Si vous avez répondu à chaque make menuconfigquestion par Y (plutôt que M le cas échéant), vous avez essayé d'inclure chaque pilote dans le noyau proprement dit. C'est une très, très mauvaise idée et le noyau ne démarre pas car il est trop volumineux. L' initrdimage est générée par d'autres outils.
Alexios
Je viens de vérifier à nouveau la configuration. Il semble que je n'ai pas activé le support du module noyau chargeable. Je pensais que c'était par défaut. Je vais essayer de compiler à nouveau et je vous aviserai quand c'est fait.
Amumu
Beaucoup de commentaires ci-dessus me semblent être de bonnes réponses.
James Youngman
Réponses:
9
Les images compressées sont sous arch/xxx/boot/, où xxxest l'arc. Par exemple, pour x86et amd64, j'ai une image compressée sur /usr/src/linux/arch/x86/boot/bzImage, avec /usr/src/linux/vmlinux.
Si vous n'avez toujours pas l'image, vérifiez si elle bzip2est installée et fonctionne (mais je suppose que si c'était le problème, vous obtiendrez un message d'erreur descriptif, tel que "bzip2 not found").
De plus, la configuration du noyau vous permet de choisir la méthode de compression, de sorte que le nom de fichier réel et l'algorithme de compression peuvent différer si vous modifiez ce paramètre du noyau.
Comme d'autres l'ont déjà mentionné, les initrds ne sont pas générés par le processus de compilation linux, mais par d'autres outils. Notez que sauf si, pour une raison quelconque, vous avez besoin de fichiers externes (par exemple, vous avez besoin de modules ou d'udev pour identifier ou monter /), vous n'avez pas besoin d'un initrd pour démarrer.
make bzImage
? Avez-vous également créé un noyau monolithique? Utilisez-vous un système d'exploitation de type Debian? Si c'est le cas, et que vous n'effectuez pas de compilation croisée, il existe des moyens plus simples de créer un noyau.kernel.org
). Aprèsmake menuconfig
, j'ai tapémake
et je l'ai laissé faire.make bzImage
générer le noyau bzImage. Ditesmake help
voir quelques brèves instructions. Consultez le Linux Kernel Howto pour obtenir des instructions détaillées. Si vous avez répondu à chaquemake menuconfig
question par Y (plutôt que M le cas échéant), vous avez essayé d'inclure chaque pilote dans le noyau proprement dit. C'est une très, très mauvaise idée et le noyau ne démarre pas car il est trop volumineux. L'initrd
image est générée par d'autres outils.Réponses:
Les images compressées sont sous
arch/xxx/boot/
, oùxxx
est l'arc. Par exemple, pourx86
etamd64
, j'ai une image compressée sur/usr/src/linux/arch/x86/boot/bzImage
, avec/usr/src/linux/vmlinux
.Si vous n'avez toujours pas l'image, vérifiez si elle
bzip2
est installée et fonctionne (mais je suppose que si c'était le problème, vous obtiendrez un message d'erreur descriptif, tel que "bzip2 not found").De plus, la configuration du noyau vous permet de choisir la méthode de compression, de sorte que le nom de fichier réel et l'algorithme de compression peuvent différer si vous modifiez ce paramètre du noyau.
Comme d'autres l'ont déjà mentionné, les initrds ne sont pas générés par le processus de compilation linux, mais par d'autres outils. Notez que sauf si, pour une raison quelconque, vous avez besoin de fichiers externes (par exemple, vous avez besoin de modules ou d'udev pour identifier ou monter
/
), vous n'avez pas besoin d'un initrd pour démarrer.la source
Selon la documentation:
http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/kernel-custom.html
Quand vous faites:
faire bzImage
et alors:
cp bzImage vmlinuz
pour créer le fichier vmlinuz. C'est à dire, ce sont les mêmes fichiers :-).
la source