Obtendo um ambiente chroot funcional para inicializar com o Grub2

2

Pergunta

Eu tenho um ambiente chroot funcional (inittab, fstab, init.d / rcS configurado), um kernel e o grub2 instalado. O que mais preciso para que meu sistema funcione?

Antecedentes / específicos

Para fins educacionais, eu me propus a montar um pequeno ambiente Linux no qual eu possa inicializar e ter um shell em execução.

Usando o Virtualbox, anexei uma máquina virtual a dois discos rígidos (com apenas uma partição cada). O primeiro tem o Debian instalado, e no segundo eu construí um pequeno ambiente chroot com o Busybox, usando este artigo . Eu também configurei inittab , fstab , init.d/rcS , e a maioria das outras coisas relacionadas ao sistema de arquivos conforme indicado no artigo, embora eu não tenha feito nada na segunda página relacionada a genfromfs e syslinux porque eu percebi que não estava fazendo um disquete inicializável.

Para descobrir como fazer o boot do meu sistema chroot, eu encontrei este post , e eu corri% código%. No final, ele disse que foi concluído sem erros.

Em seguida, criei uma nova máquina virtual, dessa vez com o segundo disco rígido como seu único disco rígido, e iniciei-a. Isso me deu um prompt grub, então eu pesquisei um pouco mais , e eu digitei , e eu digitei p>

set root=(hd0,msdos1)
linux /vmlinuz
boot

Eu tinha que initrd / initramfs é opcional , então decidi ignorá-lo por enquanto. Eu construí o kernel do Linux usando grub-install --root-directory=/mnt /dev/sdb e make defconfig e copiei sobre o bzImage sob o diretório x86 após a compilação.

No entanto, logo recebo uma tela:

[ 0.74.. ] md: autorun ...
[ 0.74.. ] md: ... autorun DONE.
[ 0.74.. ] Root-NFS: no NFS server address
[ 0.74.. ] VFS: Unable to mount root fs via NFS, trying floppy.
[ 0.74.. ] VFS: Cannot open root device "(null)" or unknown-block(2,0)
[ 0.74.. ] Please append a correct "root=" boot option; here are the avaialbe partitions:
[ 0.74.. ] 0800  ... sda driver: sd
[ 0.74.. ] 0801 ... sda1 ...
[ 0.74.. ] 0b00 .. sr0 driver: sr ..
[ 0.74.. ] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 0.74.. ] Pid: 1, comm: swapper/0 Not tainted 3.2.6 #1
[ 0.75.. ] Call Trae:
[ 0.75.. ]  [<c16..>] panic+0x57/0x157
[ 0.75.. ]  [<c18..>] mount_block_root+0x125/0x1a7
[ 0.75.. ]  [<c10..>] ? sys_mknod+0x27/0x30
.. a few more lines of call trace ...

Deixei alguns números e as últimas linhas para fora porque eu tinha que digitá-las manualmente, então se você precisar delas, me avise e eu as postarei.

    
por math4tots 20.02.2012 / 01:08

1 resposta

1

Você precisa especificar o parâmetro root= no grub. O kernel está procurando pelo dispositivo root errado, e você obtém o erro 'bloco desconhecido'. Eu posso ver corretamente o seu disco rígido, então no grub você deve usar uma linha como:

linux /vmlinux root=/dev/sda1
    
por 25.02.2012 / 05:26

Tags