Archlinux falhou ao inicializar: pode ' t acessar tty: controle de tarefa desativado

Eu me deparei com o problema depois atualizando meu sistema por meio de pacman -Syu.

Durante a atualização, encontrei um conflito de pacote python que causou a interrupção da transação de atualização. Portanto, resolvi o conflito: removendo o pacote python pip uninstall pkg_name e tentei novamente pacman -Syu. Desta vez, não há mais erros.

Então eu reiniciei meu sistema e o problema ocorreu:

Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring starting version 239 /dev/nvme0n1p2: clean, 968023/31227904 files, 27066236/124895569 blocks mount: /new_root: unknown filesystem type "ext4" You are now being dropped into an emergency shell, sh: can"t access tty: job control turned off [rootfs] # 

A propósito: Como o aviso indica, eu estava atualizando o kernel 4.18 para 4.19

Comentários

  • Edite sua pergunta com o resultado de pacman -Q linux && uname -r.
  • @jasonwryan Desculpe, não posso ' não conseguir. Desde a última reinicialização, não consigo mais fazer o login no meu sistema, bloqueado pelo Warning postado acima. No entanto, lembro que antes da última reinicialização executei uname -r e a versão do kernel de saída ainda era 4.18.xxx
  • Você precisa fazer o chroot in, certifique-se de / e /boot são montados e, em seguida, reinstale o linux.

Resposta

Se a atualização foi abortada e o kernel estava em processo de atualização, você provavelmente ainda tem o initramfs do kernel antigo em seu /boot enquanto tem o novo kernel instalado que pode impedir a inicialização. Isso também pode acontecer em um sistema recém-instalado se você se esquecer de montar corretamente a partição /boot.

A maneira mais fácil de corrigir isso seria inicializar com um archlinux mídia de instalação, execute um chroot e reinstale o kernel usando pacman

# mount /dev/yourrootdisk /mnt # mount /dev/yourbootdisk /mnt/boot # if needed # mount /dev/yourefipartition /mnt/boot/EFI # if you use EFI (optionnal) # arch-chroot /mnt # pacman -S linux 

Os arquivos que devem ser modificados são /boot/initramfs-linux.img e /boot/initramfs-linux-fallback.img, então você provavelmente não precisa montar a partição EFI

Se por algum motivo você não puder “t usar pacman, você também pode iniciar mkinitcpio manualmente para regenerar o initramfs para usar o novo kernel

Comentários

  • Sua resposta está correta, mas por favor não aconselhe as pessoas a -Sy $package, é um conselho terrível e apenas leva à quebra .
  • realmente bom ponto, editado
  • @Fredszaq Muito obrigado por sua resposta, ela me salvou de s sérios problemas. Ainda assim, não ' não entendo muito bem o que deu errado no meu caso, já que o comando pacman -Syu foi executado sem conflitos antes que eu não pudesse inicializar . Talvez haja algo errado com minha configuração. Se você puder, verifique meu pacman.log e me diga se ' estou perdendo alguma coisa? link para arquivo, caso você possa: ix.io/2s1w

Resposta

O texto can"t access tty: job control turned off é apenas uma notificação pelo shell de que o controle de trabalho não funciona, o que significa que você não pode interromper um programa com Ctrl + C ou Ctrl + Z .

O problema é visível nas linhas acima, e talvez no que está acima dessas linhas:

Warning: /lib/modules/4.19.1-arch1-1-ARCH/modules.devname not found - ignoring mount: /new_root: unknown filesystem type "ext4" 

É parece que os módulos do kernel não foram encontrados e, portanto, nenhum módulo ext4 e, portanto, nenhuma montagem do ext4 sistema de arquivos raiz.

A maioria das distribuições não exclui o kernel antigo no caso de haver algo errado com o novo, então tente inicializar o kernel anterior.

Se isso não funcionar, inicialize um sistema ativo e instale o kernel anterior com módulos correspondentes, ou o novo, ou qualquer kernel que funcione.

Também é possível que haja algo errado com a criação do sistema de arquivos initrd, que não foi incluído por alguns motivos. Nesse caso, você pode inicializar um sistema ativo, recriar initrd com ext4 e reinicializar.

Comentários

  • Arch remove o kernel antigo. O problema de OP ' é que / boot não foi ' t montado durante a atualização, de modo que os módulos instalados não correspondem ao kernel.
  • @jasonwryan Se / boot não foi montado, então o kernel e initrd correspondentes devem estar no sistema de arquivos raiz, portanto, deve ser possível carregá-los de lá.
  • Não necessariamente; O / boot pode ser montado por cima ou o initrd pode estar corrompido. A única abordagem segura é fazer o chroot e corrigi-lo.

Resposta

comando abaixo, liberte-me,

mdev -s 

meu comando qemu é

qemu-system-x86_64 \ -s \ -kernel bzImage \ -initrd initrd.img.gz \ -smp 4 \ -m 1024 \ -append "console=ttyS0 root=/dev/ram " \ -monitor vc -serial stdio \ -nographic 

e adiciono mdev -s no meu /init arquivo.

Espero que ajude.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *