Archlinux 부팅 실패 : ' tty에 액세스 할 수 없음 : 작업 제어 해제

다음에 문제가 발생했습니다. pacman -Syu를 통해 시스템을 업그레이드합니다.

업그레이드하는 동안 업그레이드 트랜잭션이 중단되는 파이썬 패키지 충돌이 발생했습니다. 그래서 충돌을 해결했습니다. pip uninstall pkg_name로 파이썬 패키지를 제거한 다음 pacman -Syu를 다시 시도했습니다. 이번에는 더 이상 오류가 없습니다.

그런 다음 시스템을 재부팅했는데 문제가 발생했습니다.

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] # 

BTW : 경고에서 알 수 있듯이 커널 4.18을 4.19로 업그레이드했습니다.

댓글

  • pacman -Q linux && uname -r의 출력으로 질문을 수정합니다.
  • @jasonwryan 할 수 없어서 ' 죄송합니다. 마지막 재부팅 이후로 더 이상 시스템에 로그인 할 수 없으며 위에 게시 된 Warning에 의해 차단되었습니다. 하지만 마지막으로 재부팅하기 전에 uname -r를 실행했고 출력 커널 버전이 여전히 4.18.xxx였습니다.
  • chroot해야합니다. //boot가 마운트 된 다음 Linux를 다시 설치합니다.

답변

업데이트가 중단되고 커널이 업데이트되는 중이라면 /boot 부팅을 방지 할 수있는 새 커널을 설치하는 동안. 이것은 /boot 파티션을 올바르게 마운트하는 것을 잊은 경우 새로 설치된 시스템에서도 발생할 수 있습니다.

이 문제를 해결하는 가장 쉬운 방법은 archlinux로 부팅하는 것입니다. 설치 미디어, chroot를 수행하고 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 

를 사용하여 커널을 다시 설치합니다.

수정해야하는 파일은 /boot/initramfs-linux.img/boot/initramfs-linux-fallback.img이므로 EFI 파티션을 마운트 할 필요가 없습니다.

어떤 이유로 pacman를 사용할 수없는 경우 mkinitcpio를 직접 실행하여 사용할 initramfs를 다시 생성 할 수도 있습니다. 새로운 커널

댓글

  • 답은 맞지만 사람들에게 iv id = “를 권하지 마십시오. 마세요 791fa1af48 “>

, 끔찍한 조언이며 파손으로이 끕니다 .

  • 정말 좋은 점, 수정 됨
  • @Fredszaq 답변 해 주셔서 감사합니다. 심각한 문제. 그래도 ' 내 경우에 무엇이 잘못되었는지 이해하지 못합니다. pacman -Syu 명령이 부팅 할 수 없기 전에 충돌없이 실행 되었기 때문입니다. . 내 설정에 문제가있을 수 있습니다. 가능하다면 내 pacman.log를 확인하여 ' 누락 된 것이 있는지 알려주시겠습니까? 가능한 경우 파일 링크 : ix.io/2s1w
  • 답변

    텍스트 can"t access tty: job control turned off는 작업 제어가 작동하지 않는다는 셸의 알림입니다. 즉, Ctrl + C 또는 Ctrl +로 프로그램을 중지 할 수 없습니다. Z .

    문제는 위의 줄에서 볼 수 있으며 해당 줄 위에있는 것은 다음과 같습니다.

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

    그것 커널 모듈을 찾을 수없고 ext4 모듈이없고 ext4 루트 파일 시스템을 마운트하지 않는 것 같습니다.

    대부분의 배포판은 새 커널에 문제가있는 경우 이전 커널을 삭제하지 않으므로 이전 커널로 부팅 해보십시오.

    그래도 작동하지 않으면 라이브 시스템을 부팅하고 일치하는 모듈이있는 이전 커널, 새 커널 또는 작동하는 커널을 설치합니다.

    initrd 파일 시스템 생성에 문제가있을 수도 있습니다. 는 어떤 이유로 포함되지 않았습니다. 이 경우 라이브 시스템을 부팅하고 ext4로 initrd를 다시 만든 다음 재부팅 할 수 있습니다.

    설명

    • Arch는 이전 커널을 제거 합니다. OP '의 문제는 업그레이드 중에 / boot가 마운트되지 않았으므로 ' 설치된 모듈이 커널과 일치하지 않는다는 것입니다.
    • @jasonwryan / boot가 마운트되지 않은 경우 일치하는 커널과 initrd가 루트 파일 시스템에 있어야하므로 여기에서로드 할 수 있어야합니다.
    • 반드시 그런 것은 아닙니다. 실제 / boot가 맨 위에 마운트되거나 initrd가 손상 될 수 있습니다. 유일한 안전한 방법은 chroot하고 수정하는 것입니다.

    답변

    아래 명령을 내려주세요.

    mdev -s 

    내 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 

    mdev -s /init 파일에 있습니다.

    도움이 되었기를 바랍니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다