推定1
HDDではないが、USBメモリで、unknown disk partitionの対策をしたページを見つけた。
http://blog.kmckk.com/archives/2846188.html
セクタ0をHDDからDMAで読み込み、キャッシュをinvalidateするが、キャッシュのラインサイズのアライメントが合っていないため、CPUがライト・バックして、DMA転送いたデータ(マジックナンバー)を上書き、このデータを参照したmsdos_partionが、マジックナンバー不正と判定し、check_partionに1を返し、unknown disk partitionとなっている様。
良くわからなかったので、[1]を読んでみた。
kernel sourceを読んでみようと調べた。
このとき、クロスコンパイルを簡潔にまとめたページがあったので貼っておく。[2]
ソースコードを読むのに、バージョン間比較、識別子へのハイパーリンクが貼られていて、便利なページがあった。[3] LXRというソフトを使っている様。
参考
[1]キャシュは諸刃の剣、DMA対応と言われたら、http://www.uquest.co.jp/embedded/learning/lecture.html
[2]
http://senta.s112.xrea.com/senta/Tips/000/8a/index.html
[3]
http://lxr.free-electrons.com/source/
0 件のコメント:
コメントを投稿