web-dev-qa-db-ja.com

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にアップグレードしていました

2
streethacker

更新が中止され、カーネルが更新中の場合、古いカーネルのinitramfsが/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を再生成し、新しいカーネルを使用することもできます。

4
Fredszaq

テキスト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が何らかの理由で含まれていない可能性もあります。この場合、ライブシステムを起動し、ext4を使用してinitrdを再作成して再起動できます。

0
RalfFriedl