<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            用fdisk重建dos硬盤主引導記錄

            時間:2024-06-17 03:03:44 理工畢業論文 我要投稿
            • 相關推薦

            用fdisk重建dos硬盤主引導記錄

            硬盤主引導記錄遭到破壞,使硬盤無法正常工作,這是硬盤最常見的故障之一。這種情況的出現,主要是由于病毒感染、人為的錯誤操縱或系統忽然掉電等意外情況引起的。
            目前,硬盤已經成為微機系統最重要的硬件資源。假如硬盤主引導記錄遭到破壞,會給用戶帶來極其嚴重的損失。因此,研究一種為用戶所接受的,能迅速、安全、有效地重建硬盤主引導記錄的方法是十分必要的。
            一、主引導記錄的結構和功能
            1.主引導記錄的結構
            ms-dos操縱系統,其硬盤主引導記錄是由fdisk.com在給硬盤分區時創建的。一個完整的硬盤主引導記錄共有512個字節,在硬盤中占一個扇區,該扇區位于硬盤的0面0道1扇區。該記錄分為主引導程序區、硬盤分區表和硬盤賦權標識三個部分。前1bdh字節為主引導程序區。現在的主引導程序一般占用dah左右字節,后面為零字節。這主要是兼顧到其它操縱系統、多個操縱系統共存以及為將來擴展留有余地。從1beh~1fdh為硬盤分區表,可建四個分區表,每個表16個字節,記載每個分區的信息,最后兩個字節存放硬盤賦權標志-a
            a55h。
            2.分區表的結構
            分區表的組成見分區表的內存布局及填寫示例。除相對扇區和實用扇區占4個字節外,其余均為1個字節。自舉標志和系統標志是記錄分區性質的參數。當某一分區被指定為激活分區時,該處標志為80h,而其它分區的該標志為00h。四個分區表內只能有一個80h標志。系統標志說明該分區操縱系統的類型。不同系統有不同的代碼,dos系統標志說明有四個,三個是分區代碼(01h,04h,06h代表不同dos版本),一個是擴展分區代碼(05h)。
            @@07a08300.gif;附表 分區表的內存布局及填寫示例@@
            3.主引導記錄的功能
            主引導記錄主要提供硬盤賦權標識、硬盤分區信息、系統主引導程序三種功能。
            用硬盤啟動系統時,主引導記錄的三種功能全部提供,而用軟盤啟動時,僅提供前兩種功能。
            二、重建主引導記錄的原理和方法
            1.目前重建主引導記錄的方法及其缺點
            目前使用較廣泛的重建主引導記錄的方法有以下幾種。
            (1) 預先備份主引導記錄,當主引導記錄被破壞后,直接重建。這種方法簡單、方便,但對沒有預先備份的用戶是行不通的。
            (2) 從相同型號及具有相同分區的硬盤上讀取主引導記錄,寫到被破壞的硬盤上,達到重建的目的。這種方法也比較簡單、方便,但相同型號的硬盤特別是具有相同分區的主引導記錄很不輕易找,而且對有多個分區的硬盤來說,假如用戶忘記每個分區的大小,就不能重建。
            (3) 用手工計算的方法重建主引導記錄。這種方法靈活性大,適應范圍廣,但非常麻煩,輕易出錯,而且對于不太熟悉硬盤主引導記錄結構、對操縱系統本身不是非常熟悉的用戶來說,使用起來也非常困難。
            2.用fdisk.com重建主引導記錄的原理和實現
            當硬盤的主引導記錄被破壞以后,很多用戶采用fdisk.com重建主引導區,但在重建的過程中,會徹底破壞硬盤的原有數據。這是由于在創建過程中,對dos分區的dos引導區、fat表區以及文件目錄區進行了格式化和寫零操縱,以確保format.com能順利進行dos系統格式化。因此,在fdisk.com創建主引導區的過程中,假如能阻止其對dos主引導區和fat表以及文件目錄區進行格式化和寫零操縱,就可以在不破壞原來硬盤數據的情況下,重建dos主引導記錄。
            根據上面的要求,可以用一段駐留程序實現。它的具體功能是攔截13h號中斷,取消所有對硬盤格式化操縱和除對硬盤主引導區(0面0道1扇區)以外的所有寫操縱。
            ch13.asm程序:
            code segment
            assume cs:code,ds:code,es:code
            org 100h
            start:jmp begin
            int-13:db 04h dup(0)
            recei:cmp ah,05h
            jnz chk1
            chan:mov ah,00h
            chk1:cmp ah,03h
            jnz pass
            cmp ax,0301h
            jnz chan
            cmp cx,0001h
            jnz chan
            cmp dx,0080h
            jnz chan
            pass:pushf
            call cs:dword ptr[int-13]
            iret
            begin:jmp begin1
            disp1:db 0dh,0ah,''程序駐留成功!'', 0dh,0ah,24h
            disp2:db 0dh,0ah,''程序已經駐留!'', 0dh,0ah,24h
            begin1:mov ax,3513h
            int 21h
            cmp bx,offset recei
            jnz load
            mov ax,es
            cmp ax,100h
            jl load
            mov ax,cs
            mov ds,ax
            mov es,ax
            mov ah,09h
            lea dx,disp2
            int 21h
            int 20h
            load:mov cs:word ptr[int-13],bx
            mov ax,es
            mov cs:word ptr[int-13 02h],ax
            cli
            mov ax,cs
            mov ds,ax
            lea dx,recei
            mov ax,2513h
            int 21h
            sti
            lea dx,disp1
            mov ah,09h
            int 21h
            int 27h
            code ends
            end start
            三、重建的具體操縱
            1.程序的天生
            將ch13.asm程序用masm編譯并連接天生exe文件,再用exe2bin將其轉化為com文件,將它拷到一張帶dos引導系統的軟盤上,dos版本最好與硬盤原來的dos版本相同,同時,再拷進該版本下的fdisk.com文件和chkdsk.com文件。
            2.主引導區的重建
            用該軟盤啟動微機,運行chkdsk.com,該程序會駐留內存并給用戶提示。然后,就可以用fdisk.com重建主引導區。
            (1) 單個分區的主引導區的重建
            運行fdisk.com文件,把硬盤分成一個盤即可。
            (2) 有dos擴展分區的主引導區的重建
            對于有dos擴展公區的硬盤,用戶若記得每個分區的大小,可直接運行fdisk.com文件分盤,若用戶不知道分區大小,那么需將整個硬盤分成一個盤,然后運行chkdsk.com文件,得到原來dos主分區(即c盤大小),然后運行fdisk.com文件正確分盤。
            下面用一個具體例子說明。一臺386微機,硬盤大小為200mb,操縱系統為dos6.2,硬盤分為c盤(80mb)、d盤(80mb)、e盤(40mb),由于忽然斷電,丟失主引導記錄,且分區大小不知道。重建按以下幾步進行。
            (1) 預備一張dos6.2的系統引導盤,并在該盤中拷進fdisk.com,chkdsk.com(6.2版)和ch13.com文件。
            (2) 用該盤啟動微機,先運行chk13.com文件,再運行fdisk.com文件,把整個硬盤分成一個盤(c盤200mb)。
            (3) 重新用該盤啟動微機,啟動后可進進c盤。
            (4) 運行chkdsk.com,檢查c盤大小,可查出c盤原來的大小為80mb。
            (5) 運行ch13.com文件,再運行fdisk.com,刪除c盤,重新建立一個80mb的c盤,再將剩下的120mb分成dos擴展分區,并全部分給邏輯d盤(不必再分e盤)。這樣,丟失的硬盤(c盤、d盤、e盤)就全部恢復。
            留意:
            (1) 對有些較低的dos版本,其fdisk.com文件分盤時,是按磁道數分盤的,用戶可按照下面的公式來計算多個分區的磁道數。
            分區所占磁道數=總磁道數

            【用fdisk重建dos硬盤主引導記錄】相關文章:

            基于IDE硬盤的大容量語音記錄儀03-20

            DOS用戶界面的設計03-20

            DOS下DSP播音的編程03-03

            基于Perl的DoS工具設計與實現03-10

            基于嵌入式操作系統VxWorks的SCSI硬盤高速記錄系統03-18

            在 DOS 下使用Windows *.WAV 文件03-03

            淺論硬盤維修方法03-18

            DOS界面下通用圖形編輯軟件的設計03-06

            硬盤系統在播出領域的應用03-18

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看