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
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.
pacman -Q linux && uname -r
.Warning
postado acima. No entanto, lembro que antes da última reinicialização executeiuname -r
e a versão do kernel de saída ainda era 4.18.xxx/
e/boot
são montados e, em seguida, reinstale o linux.