Forum Linux.noyau Kernel Panic busybox et initramfs

Posté par .
Tags : aucun
0
23
nov.
2007
Bonjour,

Je tente de faire une installation de Gentoo sur une partition chiffrée. J'ai suivi le tutoriel http://gentoo-wiki.com/SECURITY_System_Encryption_DM-Crypt_w(...)

J'ai donc utilisé busybox pour faire mon initramfs (inclue dans le noyau), et lors du reboot, j'obtiens un kernel panic, et je n'arrive pas à en voir la cause.


Si quelqu'un a une idée et souhaite la partagée, j'en serais ravi ;)

Merci


896MB LOWMEM available.
Zone PFN ranges:
DMA 0 -> 4096
Normal 4096 -> 229376
HighMem 229376 -> 262128
early_node_map[1] active PFN ranges
0: 0 -> 262128
DMI 2.2 present.
Using APIC driver default
ACPI: RSDP 000E4010, 0014 (r0 OID_00)
ACPI: RSDT 3FFFFBD0, 002C (r1 OID_00 RSDT_000 30303030 _CSI 10101)
ACPI: FACP 3FFFFB20, 0074 (r1 INSYDE FACP_000 100 _CSI 10101)
ACPI: DSDT 3FFFB1F0, 4928 (r1 INSYDE KENORAA3 1004 MSFT 2000001)
ACPI: FACS 3FFFFFC0, 0040
ACPI: BOOT 3FFFFBA0, 0026 (r1 INSYDE SYS_BOOT 100 _CSI 10101)
ACPI: PM-Timer IO Port: 0x1008
Allocating PCI resources starting at 50000000 (gap: 40000000:bffc0000)
Built 1 zonelists. Total pages: 260081
Kernel command line: root=/dev/hda3 initrd_util=gpgfile:/dev/sda1:vfat:/root_key.gpg initrd_devices=/dev/hda3 initrd_dmnames=root cfg_kmap=fr-latin9-i386.bin
console=ttyS0,9600
Local APIC disabled by BIOS -- you can enable it with "lapic"
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 1699.851 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1001220k/1048512k available (4028k kernel code, 46640k reserved, 689k da
ta, 30696k init, 131008k highmem)
virtual kernel memory layout:
fixmap : 0xffdf6000 - 0xfffff000 (2084 kB)
pkmap : 0xff800000 - 0xffc00000 (4096 kB)
vmalloc : 0xf8800000 - 0xff7fe000 ( 111 MB)
lowmem : 0xc0000000 - 0xf8000000 ( 896 MB)
.init : 0xc0206000 - 0xc2000000 (30696 kB)
.data : 0xc255d000 - 0xc260952c ( 689 kB)
.text : 0xc2000000 - 0xc23ef049 (4028 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 3401.36 BogoMIPS (lpj=17006833)
Mount-cache hash table entries: 512
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
SMP alternatives: switching to UP code
Freeing SMP alternatives: 18k freed
ACPI: Core revision 20070126
Parsing all Control Methods:
Table [DSDT](id 0001) - 598 Objects with 57 Devices 172 Methods 24 Regions
tbxface-0587 [02] tb_load_namespace : ACPI Tables successfully acquired
ACPI: setting ELCR to 0200 (from 0c00)
evxfevnt-0091 [02] enable : Transition to ACPI mode successful
CPU0: Intel(R) Pentium(R) M processor 1.70GHz stepping 06
SMP motherboard not detected.
Local APIC not detected. Using dummy APIC emulation.
Brought up 1 CPUs
NET: Registered protocol family 16
ACPI: bus type pci registered
bios32_service: base:000e8000 length:000006d5 entry:00003900
general protection fault: 0000 [#1]
SMP
Modules linked in:
CPU: 0
EIP: 0060:[] Not tainted VLI
EFLAGS: 00010006 (2.6.22-hardened-r8 #3)
EIP is at check_pcibios+0x51/0x160
eax: 0000b101 ebx: 00000000 ecx: c2417000 edx: 00003900
esi: 0000b101 edi: c2542188 ebp: 000000e8 esp: c2fc1ef4
ds: 00e8 es: 0068 fs: 00d8 gs: 0000 ss: 0068
Process swapper (pid: 1, ti=c2fc0000 task=c2fb2a50 task.ti=c2fc0000)
Stack: c2f90f70 00000246 00000021 00008124 c25b9954 00000206 00003900 c2ea0806
c2ea0809 00000000 00000256 c234116c 00000000 00000000 c2fc1f48 00000000
c25380bb 00000000 ffffffff c00e8050 c02135f4 c2340a2b 00000001 00000001
Call Trace:
[] pci_conf1_read+0xac/0x100
[] pci_find_bios+0xab/0xf0
[] 0xc1ff0fe5
[] 0xc1ff0fa5
[] 0xc1fcbca0
[] 0xc1fcbad6
[] get_inode_number+0x3b/0x70
[] proc_register+0x20/0xc0
[] create_proc_entry+0x63/0xb0
[] register_irq_proc+0x9c/0xc0
[] proc_mkdir_mode+0x42/0x60
[] 0xc1fcbca0
[] 0xc1fcbd02
[] kernel_thread_helper+0x7/0x10
=======================
Code: c0 85 d2 0f 84 9c 00 00 00 8b 44 24 18 bf 88 21 54 c2 a3 88 21 54 c2 9c 8f
44 24 14 fa be 01 b1 00 00 bd e8 00 00 00 89 f0 8e dd <36> ff 1f fc 16 1f 72 02
30 e4 89 5c 24 1c 89 ce 89 c5 89 d7 ff
EIP: [] check_pcibios+0x51/0x160 SS:ESP 0068:c2fc1ef4
Kernel panic - not syncing: Attempted to kill init!
  • # Init

    Posté par (page perso) . Évalué à 2.

    Le problème vient d'ici

    Kernel panic - not syncing: Attempted to kill init!


    Ton init s'est fait tuer avant la fin, donc le problème vient soit des paramètres init= du noyau, ou du fichier initrc ou init selon ce qu'il y a dedans.

    Et donc il faut des informations supplémentaires sur l'init.
    • [^] # Re: Init

      Posté par . Évalué à 1.

      Mon init est un copier / coller de celui-ci : http://wiki.tuxonice.net/EncryptedSwapAndRoot?action=AttachF(...)

      J'ai beau chercher dans ce script, je ne vois pas ce qui peux le tuer si rapidement. Et il doit bien etre appelé, puisque je n'ai pas de "No init found".

      Pour les paramètres passés au noyau : root=/dev/hda3 initrd_util=gpgfile:/dev/sda1:vfat:/root_key.gpg initrd_devices=/dev/hda3 initrd_dmnames=root cfg_kmap=fr-latin9-i386.bin

      J'ai tenté de rajouter initrd_shell=1 pour avoir un shell le plus tot possible, supprimer les paramètres initrd* ...

      Mon schema de partitionnement est :
      /boot -> hda1
      / -> hda3
      mes cles de déchiffrements sont sur sda1.

      Et j'ai pris la config du noyau du liveCD qui marchait, compilé tout les drivers selectionné directement dans le noyau pour ne pas avoir de problèmes de modules non trouvé a temps ...

      Concernant mon initrd, sa structure reprends celle de la doc, a savoir : http://gentoo-wiki.com/SECURITY_System_Encryption_DM-Crypt_w(...)

      Mais la, j'avoue que j'ai plus trop d'idée :(


      Merci
      • [^] # Re: Init

        Posté par . Évalué à 1.

        ce que je constate (mais je peux me tromper)

        parametre de boot :

        root=/dev/hda3 initrd_util=gpgfile:/dev/sda1:vfat:/root_key.gpg initrd_devices=/dev/hda3 initrd_dmnames=root cfg_kmap=fr-latin9-i386.bin


        parametre de ton disque dur :

        /boot -> hda1
        / -> hda3


        1°) tu cherches un initrd sur /dev/hda3 ce qui correspond à /
        il me semble que l'initrd se met habituellement dans le meme dossier que le noyau, soit dans /boot (/dev/hda1) chez toi.

        2°) les clefs gpg sont sur /dev/sda1, ce peripherique est-il accessible des le boot, en gros le driver USB/SATA pour ce peripherique est-il en dur dans le noyau, ou en module dans le initrd, afin d'etre chargé au boot ?

        pcq sinon,
        tu bootes un kernel present dans /boot, tu lui demandes de prendre un initrd qui est sur un partition chiffrée (/) à partir d'un cle gpg qui ne sera dispo qu'apres avoir chargé le initrd...
        • [^] # Re: Init

          Posté par . Évalué à 1.

          En fait dans ce cas ci, d'apres ce que j'ai compris de la documentation, l'initrd est dans le noyau (d'ailleur ca se sent sur sa taille).
          Pour le paramètre root, j'avoue que j'ai ete septique en lisant la doc, mais en mettant hda3 ou hda1, ca ne change rien, surtout que je n'ai pas de message indiquant qu'il n'a pas trouvé l'initrd.

          Le script d'init se charge de monter ma clé usb, de me demander la passphrase et de déchiffrer mon / et de le monter comme il le faut.

          Existe t il un moyen de vérifier que l'initrd est correctement construit ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.