[問題] MBR 的問題

看板C_and_CPP作者 (地板別打我!>"<)時間14年前 (2009/12/02 10:37), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) MBR 中的 partition table 的問題。 就是在 MBR 中我們都知道前 446 bytes 是用來開機用的。 接著就是 64 bytes 的 partition table。每個 table 16 bytes。 以下是直接從我電腦弄出來的某一個 partition table: 80 01 01 00 07 fe ff ff 3f 00 00 00 72 a1 a9 03 -- -------- -- -------- ----------- ----------- 其中,(1) 01 01 00 是 starting CHS。 (2) fe ff ff 是 ending CHS (3) 72 a1 a9 03 是 sectors size in this partition。 照理說 (3) = (2) - (1) 的,但此例子中明顯不是,主要原因是(2)的值。 我在 google上查詢的結果只找得到這段話: For partitions which begin or end beyond the 1024th cylinder, the three CHS bytes should always be filled with: FE FF FF。 我第一個問題就是…我還是看不懂在什麼時機下(1)或是(2)會被填成 fe ff ff?? 還是有機會(1)和(2)同時被填 fe ff ff 嗎?? 第二個問題就是如果被填成fe ff ff,如果(3)的值遺失了或怎麼樣,反正我必須藉由 (1)和(2)去算出來,那這時候該怎麼算?? 希望有人能給點指引~~ 任何資訊都好,感謝~ 希望得到的正確結果: (1) + (2) = (3)。 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) linux。 有問題的code: (請善用置底文標色功能) 補充說明: 因為我看了看板的分類好像沒似合問這個問題的地方, 然後這又是我最近在coding時遇到的問題所以…就貼在這了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.64.47

12/02 11:00, , 2F
你只要看這個標題"MBRs and disk partitioning"
12/02 11:00, 2F

12/02 12:44, , 3F
抱歉,m大,這個網頁我之前就看過了,到現在頁面還沒關掉
12/02 12:44, 3F

12/02 12:46, , 4F
裡面的內容無法解決我的問題說~~能麻煩m大再撥空解釋一下
12/02 12:46, 4F

12/02 12:46, , 5F
嗎??感謝~~
12/02 12:46, 5F

12/03 21:31, , 6F
一.(1)和(2)有可能同時被填fe ff ff, 只要partition的位置
12/03 21:31, 6F

12/03 21:32, , 7F
超過 8.4G
12/03 21:32, 7F

12/03 21:33, , 8F
二. 如果(3)的值遺失,在超過8.4G的區域,是不能由(1)和(2)
12/03 21:33, 8F

12/03 21:33, , 9F
算回來的.
12/03 21:33, 9F

12/10 19:54, , 10F
嗯~~感謝~p大的解說,多謝了!!
12/10 19:54, 10F
文章代碼(AID): #1B5TC1_K (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B5TC1_K (C_and_CPP)