カーネルパニック - 非同期: VFS: ルート fs をマウントできない - LFS

カーネルパニック - 非同期: VFS: ルート fs をマウントできない - LFS

私はLFS(最初からLinux)を作成しました。すべてのファイルはセカンダリハードドライブにあります。つまり。 /dev/sdb には sdb1 や sdb2 などのパーティションはありません。ルートとブートはどちらも同じ/dev/sdbにあります。私のホストシステムは/ dev / sdaにインストールされているLinux Mintです。 Grubは/ dev / sdaにもインストールされます。オンラインチュートリアルに従いましたが、これはパーティショニングを台無しにしました。考えられる解決策はありますか?私はhd0をhd1と他のすべての可能なパーティションに調整して、グルーブ構成を変更してみました。何も失うことなく、別のライブディスクを使用して新しいパーティションを作成し、すべてを移動できますか?それとも、より良い解決策がありますか?

ベストアンサー1

チュートリアルに正確に従うと、/dev/sdaLFSがインストールした新しいブートローダーでブートローダーを上書きしました。

パーティショニングは/dev/sda大丈夫でしょう。 Mintインストールを復元するには、一部のLive Linux ISOからシステムを起動し、rootおよび/bootファイルシステムをマウントし、/dev/sda*Mintインストールにchrootして実行しますgrub-install /dev/sda。 MintインストールのGRUB構成ファイルは影響を受けないため、Mintインストールを完全に機能している状態に復元するのに十分です。

新しいブートローダはオペレーティングシステムのカーネルをロードしようとし、/dev/sdb実際に成功します。Kernel Panicメッセージは、ブートローダではなくLFSインストールされたカーネルから来ます。

(ブートローダは次の場所にインストールされます。ビデオチュートリアル第11章時間は15:30から始まります。 )

存在する11章 時間 16:12チュートリアルでは、生成について/boot/grub/grub.cfg説明し、次の行があります。

linux /boot/vmlinuz-4.7.2-lfs-7.10 root=<something> ro

あなたの場合は、これが<something>必要です/dev/sdb。誤って入力するとエラーが発生する可能性があります。存在する11章時間 18:20このチュートリアルでは、この問題を解決する方法について説明します。 GRUB起動メニューが表示されたら、キーを押して起動時にe起動オプションを編集します。上記と同じ行が表示され、一時的に変更してLFSのインストールを開始できます。

別の考えられるエラーは、ルートファイルシステム用のドライバをLFSカーネルにコンパイルしないことです。これはカーネル構成フェーズで指定されます。11章時間14:32しかし、チュートリアルではこれについてほとんど説明しません。

つまり、カーネル設定メニューのFile systemsサブメニューからその行をとして選択するのではなく(アスタリスクで表示)として選択する必要がThe Extended 4 (ext4) filesystemあります。この手順を見逃しても、起動オプション行で正しいオプションを設定することは役に立ちません。この場合、最良のオプションはMintインストールを復元し、それを使用してLFSカーネルを再構成して再コンパイルし、再コンパイルされたカーネルファイルのディレクトリを削除し、最後にLFSのGRUBを再インストールします。YMroot=/dev/sdbvmlinuz-4.7.2-lfs-7.10/boot/dev/sdb


ですが、チュートリアルが/dev/sdbそもそも分割しないことで根本的なミスを犯したと思います。代わりに、単一のファイルシステム(mkfs /dev/sdb= "superfloppy"構成)にディスク全体を使用してください。これにより、GRUB2をインストールできなくなります/dev/sdb。 GRUB2は通常、パーティション化されたディスクでは使用されませんが、「スーパーフロッピー」のファイルシステムの先頭を上書きするMBRの後にいくつかのディスクブロックが必要です。その結果、彼らはブートローダをインストールする必要があり/dev/sda、それによってMintホストのインストールプロセスが中断されました。

私が行う最小限の変更は次のとおりです。

  • /dev/sdb大きなパーティション()を作成/dev/sdb1し、ここにファイルシステムを作成します。
  • /dev/sdb1それ以外の/dev/sdb場合は、Exceptコマンドの代わりに使用してください。grub-installgrub-install /dev/sdb
  • LFSでは、/boot/grub/grub.cfgGRUBルートデバイスをとして指定set root=(hd0,1)し、Linuxルートファイルシステムの起動オプションをとして指定する必要がありますroot=/dev/sdb1。これはBIOSの異常な点によるものです。 BIOSレベルで起動することを選択したディスクは、Linux用で(hd0)も通常GRUBに使用されます。/dev/sdb

これらの変更により、Mintインストールのブートローダがクラッシュするのを防ぎ、VirtualBoxの起動メニューを使用してMintまたはLFSから起動するインストールを選択できます。また、/dev/sda構成から完全に削除し(新規構成の/dev/sdb作成/dev/sda/boot/grub/grub.conf、LFSのみを変更して、新しいLFSインストールを完全に独立して実行できることを証明できる必要があります。


現在の状況を保存する方法は?

/dev/sdaまず、Mintブートローダを復元するためにlive-Linux ISOを使用します。この問題が解決したら、Mintで起動してインストールして/dev/sdbパッケージ化します。すべてtar.bz2パッケージに入れてください:

mount /dev/sdb /mnt
cd /mnt
tar jcvf /somewhere/with/plenty/of/space/LFS-recovery.tar.bz2 *
cd /
umount /mnt

その後、パーティションを分割して/dev/sdbext4ファイルシステムを作成し、マウントして/dev/sdb1すべて/dev/sdbを復元します。

fdisk /dev/sdb
<set up one partition to cover the whole disk>

mkfs -v -t ext4 /dev/sdb1
mount /dev/sdb1 /mnt
cd /mnt
tar xvf /somewhere/with/plenty/of/space/LFS-recovery.tar.bz2

次のステップは、次のように必要な準備とLFS環境へのchrootです。チュートリアル 6章 2:40-4:05しかし、今ディレクトリがそこにあります。その後、前述のようにブートローダを/ dev / sdbにインストールできます。

おすすめ記事