Você não forneceu muitas informações com logs e assim por diante, mas acho que provavelmente esse erro está ocorrendo porque o kernel está confuso por uma unidade IDE / SATA. Fazer uma pesquisa rápida no Google me levou ao link 1 , link 2 , link 3
Provavelmente, um dos problemas mais comuns (mas depois de resolvido, você provavelmente nunca mais o verá):
Unable to mount root fs on unknown-block(0,0)
ou
VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
sda driver: sd
sda1 sda2
Os dígitos 0,0ou 8,3podem ser diferentes no seu caso - refere-se ao dispositivo que o kernel tenta acessar (e que falha). De um modo geral, pode-se dizer que, se o primeiro dígito for 0, o kernel não conseguirá identificar o hardware. Se tiver outro dígito (como 8), não poderá identificar o sistema de arquivos (mas poderá acessar o hardware).
O problema aqui é que o kernel que você está inicializando não pode converter o root=/dev/...parâmetro que você forneceu (dentro da configuração do gerenciador de inicialização) em um sistema de arquivos real e acessível. Vários motivos podem resultar em tal falha:
- faltam na configuração do kernel drivers para o seu controlador de disco rígido (casos 1, 4, 5)
- faltam na configuração do kernel drivers para o barramento usado pelo seu controlador de disco rígido
- faltam na configuração do kernel drivers para o sistema de arquivos que você está usando
- o dispositivo foi identificado incorretamente no seu parâmetro root = (casos 2, 3)
Resolver o problema é fácil se você souber qual é o motivo. Você provavelmente não, então aqui está uma verificação rápida.
Abra o assistente de configuração do kernel (a parte make menuconfig ) para que você possa atualizar a configuração do kernel adequadamente.
- Verifique se você incorporou (e não como um módulo) suporte para o barramento / protocolo usado pelo seu controlador de disco rígido.
- Provavelmente, este é o suporte PCI, suporte SATA (abaixo do suporte ao dispositivo SCSI), ...
- Verifique se você incorporou (e não como um módulo) suporte para o controlador HDD que você usa. Um dos casos mais frequentes: você selecionou o suporte para o protocolo do seu controlador de disco rígido (IDE, SATA, SCSI, ...), mas esqueceu de
selecionar o próprio driver do controlador de disco rígido (como o Intel PIIX). Tente
executar o seguinte comando lscpi e cole sua saída em
http://kmuto.jp/debian/hcl/ . O site mostrará quais drivers do kernel você precisa selecionar para o seu sistema. No menu menuconfig,
você pode digitar "/" para abrir a função de pesquisa e digitar o
nome do driver para descobrir onde ele reside.
# lspci -n
- Verifique se você incorporou (e não como um módulo) o suporte para os sistemas de arquivos que você usa.
- Digamos que seu sistema de arquivos raiz use btrfs (o que eu definitivamente não recomendo), mas você não o selecionou ou o selecionou para ser construído como um
módulo, então você receberá o erro que vê. Verifique se o
suporte ao sistema de arquivos está embutido no kernel.
Verifique se o parâmetro do kernel root=está apontando para a partição correta.
Isso não é tão estúpido quanto parece. Quando você é inicializado com um kernel, ele pode listar seus discos como sendo / dev / sda, enquanto seu kernel (configurado) espera que seja / dev / hda. Isso não ocorre porque os kernels são inconsistentes entre si, mas por causa dos drivers usados: drivers mais antigos usam a sintaxe hda, sda mais recente.
Tente alternar hda com sda (e hdb com sdb e ...).
Além disso, os kernels recentes oferecem uma visão geral das partições encontradas no dispositivo. Caso isso aconteça, poderá ajudá-lo a identificar se você selecionou incorretamente uma partição (no exemplo dado no início desta seção, apenas duas partições são encontradas, enquanto o kernel foi instruído a inicializar a terceira). Caso contrário, é mais provável que o kernel não conheça o dispositivo (portanto, não pode tentar exibir partições).
Verifique se o kernel que está sendo inicializado pelo carregador de inicialização é o kernel correto. Eu tenho visto pessoas que, depois de construir um primeiro kernel (que não inicializa), esquecem que precisam montar /bootantes de sobrescrever o kernel por um novo. Como resultado, eles copiam o kernel no sistema de arquivos raiz ( /) enquanto o carregador de inicialização ainda espera que a imagem do kernel esteja na /bootpartição.