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にアップグレードしていました
更新が中止され、カーネルが更新中の場合、古いカーネルの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を再生成し、新しいカーネルを使用することもできます。
テキスト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を再作成して再起動できます。