tft每日頭條

 > 科技

 > 新硬盤分區mbr改guid

新硬盤分區mbr改guid

科技 更新时间:2024-07-30 04:16:01

  這是寫于2007年的日志,現發布出來,供有需要的參考。

  目的:通過修改MBR代碼,實現在電腦開機的時候,選擇不同硬盤分區上的操作系統。

  實現方法:需要一個安裝程序,該安裝程序實現提取硬盤分區信息,并将操作系統信息寫入到啟動代碼裡,然後将修改後的代碼寫入到硬盤的0磁頭0磁道2到3扇區内。

  對MBR的修改(下面代碼不包含對MBR的修改):探測到Ctrl或alt或shit按下時,将自定義選擇與啟動代碼從0磁頭0磁道2到3扇區裡讀出,加載到内存0000:7C00處執行。

  以下為自定義的啟動代碼(0磁頭0磁道2到3扇區):加載之後,将自身從0000:7C00處搬到0000:0600處運行,根據選擇的啟動分區的參數,将啟動分區的第一扇區讀取到0000:7C00處,然後跳轉到0000:7C00處啟動相應的操作系統。

  如果是linux操作系統的話,需要将linux操作系統的啟動管理器安裝到某個分區上,而不能安裝到MBR(該啟動管理器安裝後,會破壞原始的MBR,會導緻linux啟動不了)。

  [780]啟動條數(1-N)(通過安裝程序,将啟動分區信息與提示信息寫入到這裡。)

  [781]當前顯示行

  [782]當前所選擇的行

  [783]字串顯示顔色

  [900]歡迎信息起始地址

  [940]操作說明起始地址

  [990]讀盤錯誤提示起始地址

  :7C00 FC CLD

  :7C01 BE007C MOV SI,7C00

  :7C04 BF0006 MOV DI,0600

  :7C07 B90004 MOV CX,0400

  :7C0A F3 REPZ

  :7C0B A4 MOVSB (搬動自身到0000:0600處)

  :7C0C E9008A JMP 060F(跳轉到新地址運行)

  :060F B81200 MOV AX,0012

  :0612 CD10 INT 10(将顯示更改到采色模式)

  :0614 BE0009 MOV SI,0900

  :0617 B002 MOV AL,02

  :0619 A28307 MOV [0783],AL

  :061C E8F700 CALL 0716

  :061F B001 MOV AL,01

  :0621 A28107 MOV [0781],AL

  :0624 A28207 MOV [0782],AL

  :0627 E8A600 CALL 06D0

  :062A BA0119 MOV DX,1901

  :062D B402 MOV AH,02

  :062F B700 MOV BH,00

  :0631 CD10 INT 10

  :0633 BE4009 MOV SI,0940

  :0636 B00E MOV AL,0E

  :0638 A28307 MOV [0783],AL

  :063B E8D800 CALL 0716

  :063E B400 MOV AH,00

  :0640 CD16 INT 16

  :0642 80FC48 CMP AH,48#up

  :0645 740C JZ 0653

  :0647 80FC50 CMP AH,50#down

  :064A 741D JZ 0669

  :064C 80FC1C CMP AH,1C#enter

  :064F 7431 JZ 0682

  :0651 EBEB JMP 063E

  :0653 A08207 MOV AL,[0782]

  :0656 3C01 CMP AL,01

  :0658 7404 JZ 065E

  :065A FEC8 DEC AL

  :065C EB03 JMP 0661

  :065E A08007 MOV AL,[0780]

  :0661 A28207 MOV [0782],AL

  :0664 E86900 CALL 06D0

  :0667 EBD5 JMP 063E

  :0669 A08207 MOV AL,[0782]

  :066C 8A1E8007 MOV BL,[0780]

  :0670 38D8 CMP AL,BL

  :0672 7404 JZ 0678

  :0674 FEC0 INC AL

  :0676 EB02 JMP 067A

  :0678 B001 MOV AL,01

  :067A A28207 MOV [0782],AL

  :067D E85000 CALL 06D0

  :0680 EBBC JMP 063E

  :0682 A08207 MOV AL,[0782]

  :0685 FEC8 DEC AL

  :0687 B110 MOV CL,10

  :0689 F6E1 MUL CL

  :068B 05000A ADD AX,0A00

  :068E 89C6 MOV SI,AX

  :0690 B442 MOV AH,42

  :0692 B280 MOV DL,80

  :0694 CD13 INT 13

  :0696 80FC00 CMP AH,00

  :0699 7402 JZ 069D

  :069B 7503 JNZ 06A0

  :069D E96075 JMP 7C00

  :06A0 BA0114 MOV DX,1401

  :06A3 B402 MOV AH,02

  :06A5 B700 MOV BH,00

  :06A7 CD10 INT 10

  :06A9 BE9009 MOV SI,0990

  :06AC B004 MOV AL,04

  :06AE A28307 MOV [0783],AL

  :06B1 E86200 CALL 0716

  :06B4 EB88 JMP 063E

  :06D0 A08107 MOV AL,[0781]

  :06D3 3A068007 CMP AL,[0780]

  :06D7 7606 JBE 06DF

  :06D9 B001 MOV AL,01

  :06DB A28107 MOV [0781],AL

  :06DE C3 RET

  :06DF 0401 ADD AL,01#第2行

  :06E1 88C6 MOV DH,AL

  :06E3 B220 MOV DL,20

  :06E5 B402 MOV AH,02

  :06E7 B700 MOV BH,00

  :06E9 CD10 INT 10

  :06EB A08107 MOV AL,[0781]

  :06EE 3A068207 CMP AL,[0782]

  :06F2 7504 JNZ 06F8

  :06F4 B305 MOV BL,05

  :06F6 EB02 JMP 06FA

  :06F8 B308 MOV BL,08

  :06FA 881E8307 MOV [0783],BL

  :06FE FEC8 DEC AL

  :0700 B110 MOV CL,10

  :0702 F6E1 MUL CL

  :0704 059007 ADD AX,0790

  :0707 89C6 MOV SI,AX

  :0709 E80A00 CALL 0716

  :070C A08107 MOV AL,[0781]

  :070F FEC0 INC AL

  :0711 A28107 MOV [0781],AL

  :0714 EBBA JMP 06D0

  :0716 AC LODSB

  :0717 3C00 CMP AL,00

  :0719 740A JZ 0725

  :071B B40E MOV AH,0E

  :071D 8A1E8307 MOV BL,[0783]

  :0721 CD10 INT 10

  :0723 EBF1 JMP 0716

  :0725 C3 RET

新硬盤分區mbr改guid(用1024字節實現一個操作系統啟動管理器)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved