2012-03-31 17 views
1

OSをプログラミングするためのリソースとしてosdev wikiを使用しています。これまでは2段階のブートローダを用意していましたが、これは最小限の32ビット保護モードカーネルです。USB上のExt2ファイルシステム

しかし、ブートローダでは、特定のセクタに書き込んでいて、特定のセクタから読み込んでいます。私はこれを「正しい方法」にしてファイルシステムを使用することに決めました。 ext2ファイルシステム.Wikiにはドキュメントがあります。だから、私はext2でフラッシュドライブをフォーマットし、Ubuntu 11.10でgpartedを使い、lde(Linuxディスクエディタ)をつかんで、私のフラッシュドライブで走った。

問題は、ext2ページに記載されているテーブルが見当たらず、1024バイト(0x400)のバイトを見ていて、テーブルが見つからないようです。私はgpartedに戻ってきました。それはまだフォーマットされています。また、ext2と指定していても、 "認識できないファイルシステム"と表示されます。フラッシュドライブが標準のext2ファイルシステムを使用していないか、ファイルシステムが変更されてページに記載されているようなものになっていますか?

リンク:

Ext2ファイル - http://wiki.osdev.org/Ext2

OsDevウィキ - コメントで述べたようにhttp://wiki.osdev.org/Main_Page

+0

私は、安価なフラッシュドライブは、FATファイルシステムの内部空間を「内部」で使用しているため、他のファイルシステムを確実に使用することはできないと聞いています。しかし、私はそれらのデバイスが市場に出ていないことを願っています。 'debugfs(8)'はあなたのファイルシステムについて何を言いますか? – sarnold

+0

それは言う:ファイルシステムを開いている間にスーパーブロックで悪い魔法の数、そして彼らは恐ろしい音、ここでは問題ではないことを願っています。 – Codesmith

+0

ほとんどのスティックは分割されていません。パーティション化されていればどのようにツールを扱うのかはよく分かりませんが、 '/ dev/sdX'や'/dev/sdX1'を一貫して使用していることを確認してください。 – sarnold

答えて

1

、私は私の質問に答えました。私の問題は、私のフラッシュドライブのフォーマット、またはフラッシュドライブの使用方法、または技術的なものではありませんでした。問題は、私がディスクエディタを使用しているときに、ドライブ自体(/dev/sdb)を読むように指示したので、パーティション(/dev/sdb1)を使用する必要がありました。私がパーティションを見ると、0x400(スーパーブロックの始まり)を見て、スーパーブロックは本当にどこにあるのか分かりました。私はスーパーブロックと、いくつかの他のブロック/ iノードをハードドライブ上のものと比較しました。フォーマットは同じではありませんでしたが、期待されるデータはありませんでした。

関連する問題