現在、ATA ドライバーで LBA を機能させようとしていますが、問題があります。
関数identify
が OK を返しword 83;bit 10
、返された識別データが設定されているため、デバイスは LBA48 をサポートしています。しかし、LBA48 セクター (構成ワード 100 ~ 103) の合計量を取得しようとすると、ゼロが返されます。仮想マシンには 1GB のディスク セットがありますが、このフィールドはまだゼロです。LBA28セクターの量も取得しようとしました=>それは正しいものです。
興味深いのは、出力するheads * cylinders * sectors_per_track
と、値が単語 60 ~ 61 にある合計 LBA28 セクターの値とほぼ同じになることです。2097152
合計LBA28用、2096640用ですh * c * s
。これら 2 つの値の差は です512
。
誰かが私が間違っていることを知っていますか? HDDのサイズを取得する他の方法はありますか?