Não é possível fazer uma inicialização PXE, erro “nenhum sistema de arquivos pode montar raiz”

1

Estou tentando fazer uma inicialização PXE com uma imagem que criei, mas depois de carregar a imagem e o kernel, recebo a seguinte mensagem de erro:

A principal mensagem de erro é esta:

No filesystem could mount root, tried: ext3 ext2 iso9668
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0
Pid: 1, comm: swapper not tainted 2.6.34.1 #4

Eu tentei procurar conselhos sobre isso online, mas o que eu achei foi que o hardware era incompatível, ou usar outro kernel. Estou confiante de que o hardware é compatível porque eu pude inicializar o mesmo kernel (um kernel personalizado que eu não criei, infelizmente) e sistema operacional (Scientific Linux 5) de um cartão SD sem problemas, então eu acho que isso A inicialização da rede também deve funcionar para o mesmo kernel e sistema. Para criar minha imagem SL5 para a inicialização da rede, copiei todos os arquivos exatamente do cartão SD (exceto aqueles em /sys e /proc ), mas ainda recebo essa mensagem de erro. Eu também só tentei copiar diretórios necessários, como /bin , /dev , /etc , /lib , etc. Mesmo com apenas esses diretórios, a imagem é de 2,6 GB ou mais, e eu ainda recebo esse erro mensagem.

Agora eu sinto que tenho duas opções para resolver: ou a imagem é muito grande para ser montada em ram0 (existe um limite de tamanho?), nesse caso eu deveria cortar o conteúdo dos diretórios; ou o sistema simplesmente não está reconhecendo ram0 , e há um problema com o processo initrd.

Aqui estão os conteúdos relevantes do meu arquivo pxelinux.cfg/default , também:

LABEL SL5
MENU LABEL SL5
KERNEL images/vmlinuz-2.6.34.1-32-v7805
APPEND initrd=images/SL5rootfs.gz root=/dev/ram0 ramdisk_size=3100000 rw ip=dhcp fastboot mem=3g
    
por Ted Desmond 26.05.2016 / 01:29

2 respostas

1

se você criou SL5rootfs.gz com base no initrd no seu SL ISO, então seu script init ainda tem o código para montar a raiz de um CD / ISO e é por isso que ele falha. Você deve entrar na cadeia de scripts de inicialização iniciando por / init e consertar a montagem raiz agora com base em uma partição raiz recuperada por rede, ou seja, um arquivo fsh squshd. Você pode fazer isso por CIFS, HTTP, NFS, etc. Se você quiser ver muitos exemplos sobre isso, você pode dar uma olhada no que Serva faz para o lote de inicialização do PXE de distribuições Linux. (Estou relacionado ao desenvolvimento da Serva)

Um ponto extra que você deve considerar é se o SL5rootfs.gz realmente tem suporte líquido ou não. se não tiver, você pode inicializá-lo do PXE, mas essa é a única coisa que você pode fazer porque não será capaz de recuperar qualquer outra coisa.

    
por 26.05.2016 / 09:02
0

Acontece que a imagem era de fato muito grande. Eu tinha uma imagem de 3 GB, com apenas 500 MB de RAM. Depois de redimensionar a imagem para 400 MB, consegui passar por essa tela de erro e também, eventualmente, inicializar minha imagem.

    
por 29.05.2016 / 10:09