Kernel Panic - não está sincronizando: VFS: Não é possível montar o fs raiz - LFS

1

Eu criei um LFS (linux do zero). Todos os arquivos estão em um disco rígido secundário. ie. / dev / sdb Não há partição em que, como sdb1 ou sdb2. Tanto o root quanto o boot estão no mesmo / dev / sdb. Meu sistema host é o linux mint instalado em / dev / sda. O Grub também está instalado em / dev / sda. Eu segui um tutorial online, mas isso atrapalhou meu particionamento. Existe alguma solução possível? Eu já tentei alterar a configuração do grub alterando o hd0 para hd1 e todas as outras partições possíveis. Sem perder nada, posso criar uma nova partição e mover tudo de acordo com outro disco ativo? Ou alguma solução melhor?

    
por Susmith 08.02.2018 / 10:44

1 resposta

1

Se você seguiu esse tutorial exatamente, então você já substituiu o gerenciador de inicialização em /dev/sda com o novo gerenciador de inicialização de sua instalação do LFS.

O particionamento em /dev/sda deve ficar bem: se você quiser restaurar a instalação do Mint, você só precisará inicializar o sistema a partir de algum ISO live-Linux, montar os sistemas de arquivos root e / boot em /dev/sda* , chroot para a instalação do Mint e execute grub-install /dev/sda . Como os arquivos de configuração do GRUB da instalação do Mint não foram tocados, isso deve ser suficiente para restaurar a instalação do Mint para uma ordem de trabalho completa.

O novo gerenciador de inicialização tenta carregar o kernel do sistema operacional a partir de /dev/sdb e é realmente bem-sucedido nisso: a mensagem Kernel Panic está vindo do kernel da instalação do LFS, não do gerenciador de inicialização.

(A instalação do gerenciador de inicialização é descrita em Capítulo 11 do vídeo tutorial no horário 15: 30 em diante.)

Em Capítulo 11, tempo 16:12 o tutorial fala sobre a criação de /boot/grub/grub.cfg e existe uma linha:

linux /boot/vmlinuz-4.7.2-lfs-7.10 root=<something> ro

No seu caso, o <something> deve ser /dev/sdb . Se você entendeu errado, isso pode ter causado o erro. No Capítulo 11, hora 18:20 , o tutorial discute como corrigir isso: quando você vê o No menu de inicialização do GRUB, pressione e para editar as opções de inicialização no momento da inicialização. Você verá a mesma linha mencionada acima e poderá fazer alterações temporárias para fazer a inicialização da instalação do LFS.

Outro erro possível é não ter o driver do seu sistema de arquivos raiz compilado no seu kernel LFS: isso seria especificado na fase de configuração do kernel em Capítulo 11, hora 14:32 , mas o tutorial dá uma boa olhada.

Em outras palavras, nos menus de configuração do kernel, no sub-menu File systems , a linha The Extended 4 (ext4) filesystem deve ser selecionada como Y (representada como um asterisco), não como M . Se você errou esta etapa, ter a root=/dev/sdb correta na linha de opções de inicialização não ajudará: nesse caso, sua melhor opção seria recuperar a instalação do Mint, usá-la para reconfigurar & recompile seu kernel LFS e, em seguida, coloque o arquivo vmlinuz-4.7.2-lfs-7.10 recompilado no diretório /boot em /dev/sdb e, finalmente, reinstale o GRUB do LFS.

Dito isto, na minha opinião o tutorial cometeu um erro fundamental de não particionar /dev/sdb no começo. Em vez disso, eles usaram todo o disco para um único sistema de arquivos ( mkfs /dev/sdb = a configuração "superfloppy"). Isso impossibilita a instalação do GRUB2 em /dev/sdb : o GRUB2 precisa de alguns blocos de disco após o MBR, que normalmente não são usados em um disco particionado, mas sobrescreveria o início do sistema de arquivos em um "superfloppy". Como resultado, eles são forçados a instalar o gerenciador de inicialização em /dev/sda , interrompendo a instalação do host Mint no processo.

As alterações mínimas que eu teria feito:

  • crie /dev/sdb uma única partição grande ( /dev/sdb1 ) e crie um sistema de arquivos nela
  • faça todo o resto usando /dev/sdb1 em vez de /dev/sdb , exceto o comando grub-install : isso seria grub-install /dev/sdb .
  • em /boot/grub/grub.cfg do LFS, o dispositivo raiz do GRUB deve ser especificado como set root=(hd0,1) e a opção de inicialização do sistema de arquivos raiz do Linux deve ser root=/dev/sdb1 . Isso se deve a uma peculiaridade do BIOS: qualquer disco que você selecionar para inicializar no nível do BIOS normalmente será (hd0) para o GRUB, mesmo que seja /dev/sdb para o Linux.

Com essas mudanças, você evitaria quebrar o carregador de inicialização da instalação do Mint e deveria poder usar o menu de inicialização do VirtualBox para selecionar de qual instalação você pode inicializar: o Mint ou o seu LFS. Ele também deve permitir que você remova completamente o /dev/sda da configuração (transformando /dev/sdb o novo /dev/sda ) apenas com alterações em /boot/grub/grub.conf do LFS, para provar que a nova instalação do LFS é totalmente capaz de manter operação sozinha.

Como salvar sua situação atual?

Eu primeiro trabalharia na recuperação do gerenciador de inicialização Mint em /dev/sda usando um ISO do live-Linux. Uma vez que isso seja corrigido, eu iria inicializar no Mint, montar /dev/sdb e empacotar tudo nele em um pacote tar.bz2:

mount /dev/sdb /mnt
cd /mnt
tar jcvf /somewhere/with/plenty/of/space/LFS-recovery.tar.bz2 *
cd /
umount /mnt

Em seguida, participo /dev/sdb , crie um sistema de arquivos ext4 em /dev/sdb1 , monte-o e restaure tudo o que estava em /dev/sdb :

fdisk /dev/sdb
<set up one partition to cover the whole disk>

mkfs -v -t ext4 /dev/sdb1
mount /dev/sdb1 /mnt
cd /mnt
tar xvf /somewhere/with/plenty/of/space/LFS-recovery.tar.bz2

Os próximos passos seriam os preparativos necessários e o chrooting no ambiente LFS, bem como Capítulo 6 2: 40-4: 05 do tutorial mas agora os diretórios já devem estar lá. Então o bootloader pode ser instalado em / dev / sdb, como descrito anteriormente.

    
por 09.02.2018 / 10:15