需求描述:
自己的U盤是裝的有個slax系統,開機能自己啟動。
我估計就是這個原因,在我進入windows後,pqmagic識别不了我的優盤。而現在我有需求需要把U盤的fat32分區,
resize一下,就是想把U盤分成兩個區。
---------------------------------------------------我是華麗的分割線-------------------------------------------------------------
問題描述:
當時,就為了讓PQ能認我的U盤,我自己手動用,winhex把U盤的MBR給删除了,不過還好,我先把MBR拷貝了,不過不是
正常拷貝,而是拷貝的hex value,這個就導緻了我無法通過正常途徑恢複MBR。真是個悲劇阿。。。
---------------------------------------------------我是華麗的分割線-------------------------------------------------------------
解決途徑:
其實一開始,就有一個辦法,那就是用vim打開我儲存的MBR的16進制數值,然後看着它,一個一個的用winhex手動寫回U盤,
不過這個太慢了,太費眼睛了,也不是咱學計算機的幹的。
就在我寫這篇文章的時候,突然想起來,我真笨,可以編個C程式的,既然有了16進制的資料,用vim把每byte前面加個0x,
比如FA31,改為0xFA0x31,然後把這串資料直接write回去,就可以了...
好了,開始說自己用的方法。就是用winhex在U盤MBR的位置,随便寫幾個資料,然後copy,不過這次要正常copy,儲存為mbr。
然後用vim編輯mbr,轉換為16進制,然後儲存。然後再用ultraEdit編輯轉換後的mbr,用列編輯的方式,把之前自己儲存的MBR的16進制資料copy過去,然後儲存。接着再用vim打開mbr,下面就需要修改幾個位元組,不然轉換回去後,資料會多幾個位元組,這是因為用byte=0a的緣故,mbr裡有幾個byte是0a,當你用vim轉換回去的時候,0a就變成0d0a了,多出來個0d,你再轉換成16進制就會發現這個問題了。
解決這個小問題的方法就是先把0a改成一個數,我改成了31,也就是10進制的1。0a都改成31後,用vim轉換回去。然後再用winhex打開mbr,打開後,把31該回原來的0a,然後正常copy,再粘貼到MBR的位置就ok了。
---------------------------------------------------我是華麗的分割線-------------------------------------------------------------
此方法适用于不想程式設計解決。不知道别人能看懂不,說的有些羅嗦,不過感覺,還算清楚~
主要還是自己備忘~