6

Linux カーネル用のダミー (RAM ディスク) ブロック デバイス ドライバーを作成しました。ドライバーがロードされると、/dev/mybd として表示されます。

dd コマンドを使用してデータを正常に転送でき、コピーされたデータを正常に比較できます。

問題は、その上に ext2/3 ファイルシステムを作成するときに、mount コマンドで -o loop オプションを使用する必要があることです。それ以外の場合、マウントは次の結果で失敗します。

マウント: fs タイプが正しくない、オプションが正しくない、mybd のスーパーブロックが正しくない、コードページまたはヘルパー プログラムがない、またはその他のエラー

何が問題なのですか?助けてください。

ありがとう。

4

4 に答える 4

3

うーん、それが動作し-o loop、それなしでは動作しない場合、悪いニュースがあります: あなたの「デバイス」は実際には /dev 内の単純なファイルです。何がls -l /dev/mybd表示されますか? ファイルサイズがゼロでない場合、それは通常のファイルであり、ドライバーとは何の関係もありません。

mknod必要に応じて、デバイス ファイルを自分で作成するために使用します。

于 2010-06-07T05:07:10.503 に答える
1

もう一度やり直しているようです。以前の試みについての簡単なメモとして、デバイスが/ devにキャラクターではなく、ブロックデバイスとして表示されていることを確認しましたか?

于 2010-04-26T16:31:07.407 に答える
0

ループ デバイスは、ブロック デバイスとしてエミュレートする Linux ファイルシステムにブロック スペシャル ファイルをマウントするために使用されます。したがって、マウントはエラーをスローします。

于 2010-04-20T11:23:02.040 に答える
0

デバイスをマウントする前に、デバイスにファイルシステムを作成します。

mkfs -t ext2 /dev/mybd

また

mke2fs /dev/mybd
于 2010-03-17T12:23:13.970 に答える