Archlinux 시작 실패: tty에 액세스할 수 없습니다: 작업 제어가 꺼졌습니다.

Archlinux 시작 실패: tty에 액세스할 수 없습니다: 작업 제어가 꺼졌습니다.

시스템을 업그레이드한 후 이 문제가 발생했습니다 pacman -Syu.

업그레이드 프로세스 중에 업그레이드 트랜잭션이 중단되는 Python 패키지 충돌이 발생했습니다. 그래서 Python 패키지를 제거 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] #

참고: 경고에 표시된 대로 커널 4.18을 4.19로 업그레이드하고 있습니다.

답변1

업데이트가 중단되고 커널이 업데이트되는 중인 경우 /boot새 커널이 설치되는 동안 이전 커널의 initramfs가 계속 남아 있어 부팅이 되지 않을 수 있습니다. 파티션을 올바르게 마운트하는 것을 잊은 경우 새로 설치된 시스템에서도 이런 일이 발생할 수 있습니다 /boot.

이 문제를 해결하는 가장 쉬운 방법은 Archlinux 설치 미디어에서 부팅하고 chroot다음 명령을 사용하여 a를 실행하고 커널을 다시 설치하는 것입니다.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

수정해야 하는 파일은 EFI 파티션을 마운트할 필요가 없도록 하기 /boot/initramfs-linux.img위한 것 입니다./boot/initramfs-linux-fallback.img

어떤 이유로든 작동하지 않으면 수동으로 initramfs 재구축을 시작하여 새 커널을 사용할 pacman수도 있습니다.mkinitcpio

답변2

이 텍스트는 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

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

그래도 작동하지 않으면 라이브 시스템을 부팅하고 일치하는 모듈과 함께 이전 커널을 설치하거나 새 커널 또는 작동하는 커널을 설치하십시오.

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

답변3

다음 명령은 나를 풀어줍니다.

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.

도움이 되었으면 좋겠습니다.

관련 정보