後に問題が発生しましたpacman -Syu
を使用してシステムをアップグレードします。
アップグレード中に、Pythonパッケージの競合が発生し、アップグレードトランザクションが中止されました。そこで、競合を解決しました。pip uninstall pkg_name
でPythonパッケージを削除してから、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にアップグレードしていました
コメント
回答
更新が中止され、カーネルが更新中の場合は、/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 “>
、それはひどいアドバイスであり、破損につながるだけです。
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"
Itカーネルモジュールが見つからないため、モジュール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
ファイル内の
。
お役に立てば幸いです。
pacman -Q linux && uname -r
の出力で質問を編集します。Warning
によってブロックされ、システムにログインできなくなりました。ただし、最後の再起動の前にuname -r
を実行し、出力カーネルのバージョンがまだ4.18.xxxであったことを覚えています/
と/boot
がマウントされ、Linuxが再インストールされます。