10.10から11.04にアップグレードしようとすると、再起動するまですべてうまくいくように見えました。このエラーメッセージが表示されます。
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
どうすれば修正できますか?
sudo apt-get install linux-image-generic
最新のものにアップグレードしますカーネル。
10.10から11.04にアップグレードしようとすると、再起動するまですべてうまくいくように見えました。このエラーメッセージが表示されます。
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
どうすれば修正できますか?
sudo apt-get install linux-image-generic
最新のものにアップグレードしますカーネル。
回答:
そのカーネルのinitramfsがありません。Ubuntuの[詳細オプション ]の[GRUB]メニューから別のカーネルを選択し、実行sudo update-initramfs -u -k version
してinitrdを生成します(などのカーネルバージョン文字列でversion
置き換えversion
ます4.15.0-36-generic
)sudo update-grub
。
Ubuntu System
または入力できませんRecovery Mode
。どうすればそのコマンドを実行して、機能するかどうかをテストできますか?
livecdで開始し、ターミナルを開きます
sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
そして今、あなたはupdate-initramfs
エラーなしでgrubを作成し、更新することができます。
update-initramfs -u -k 2.6.38-8-generic (or your version)
バージョンがわからない場合。つかいます:
dpkg --list | grep linux-image
そして、Grubを更新するだけです。
update-grub2
システムを再起動します。
sudo mount --bind /dev/pts /mnt/dev/pts
とsudo mount --bind /sys /mnt/sys
私の編集では、これがなければ、update-grub2
文句を言いました。
version
ますか?
ls /mnt/boot
は、最新のカーネルバージョンを探してみてください。それとも、それを適切に行いたい場合は、読んでmenuentry 'Ubuntu'
から/mnt/boot/grub/grub.cfg
initrd
から欠落していました/boot
。質問は次のとおりです。ファイルが単純に消えることはどのように可能ですか?危険そうなことは何もしませんでした。
私の状況では、問題は/boot
容量が100%であったため、最後の2つのカーネル更新が正常に完了しなかったため、GRUB2が最新のカーネルを選択したリブートで失敗しました。
インストール済みの最も古いカーネルを起動し、aptitudeを使用して未使用のカーネルを削除することで問題を解決しました。aptitudeを使用することにより、アンインストールが行われた後、dpkgは自動的に壊れたパッケージを構成しようとしましたが、今回は成功しました。
dpkg --configure -a
update-initramfsフックをトリガーし、壊れたカーネルを修正するには、実行するだけで十分でした。
/boot
パーティションがあったということですか?
sudo apt-get autoremove
で領域が不足した場合に使用して、古いカーネルを削除できます/boot
。
sudo apt-get autoremove
再度リブート(古いカーネル)し、次にを実行しましたsudo apt-get dist-upgrade
が、これは機能しました。これは私が持っている小さなテストマシンでした。しかし、同じ問題、100%/boot
カーネルブートメッセージは、使用できるディスクを示します
例えば、私の中であれば、テストのLinux 4.17の仮想マシンのセットアップ私は、正しいを交換root=/dev/vda
してroot=/dev/vdb
、最後のメッセージです。
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)-
ただし、上記の数行では、次のタイプのメッセージが表示されます。
VFS: Cannot open root device "vdb" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
fe00 524288 vda
driver: virtio_blk
これは、基本的vdb
には見つかりませんでしたが、ドライバー()が/dev/vda
原因で読み取ることができるものがあることを直接教えてくれます。virtio_blk
CONFIG_VIRTIO_BLK=y
Tomeuの指示に加えて、chrootの前に以下を行う必要がありました。
sudo mount --bind /dev /mnt/dev
さらに、chrootの後:
cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/
/dev
することについて言及してい/mnt/dev
ます。
サーバーをレスキューモードで起動し、grubのみを再インストールすることもできます
http://info.w3calculator.com/free-code/linux/recover-from-corrupted-boot-image/
/ bootパーティションがいっぱいで、カーネルの更新が失敗したため、この問題が発生しました。GRUBメニューで古いカーネルから起動することで、これを修正することができました。
ブートに成功したとき、古いカーネルのパージを開始しましたが、いくつかの依存関係の問題が発生したため、最初にlinux-serverパッケージをアンインストールする必要がありました
apt-get remove linux-server
apt-get update
apt-get -f install
apt-get upgrade
その後、再起動しましたが、すべて正常に機能していました!