2014-09-23 1 views
1

나는 간단히 내가이 컴퓨터에서 테스트왜 최신 컴퓨터에서 USB 드라이브로 부팅 할 수 없습니까?

nasm bootloader.asm -o bootloader 

dd if=bootloader of=/dev/sdb bs=512 count=1 

다음 않은 다음 부트 로더를

jmp $ 
times 510 - ($ - $$) db 0 
db 0x55 
db 0xaa 

했다. 나는 두 컴퓨터의 부팅 우선 순위를 USB로 설정했다. 인텔 펜티엄 M 공정 (레노버) USB 드라이브

에서 부트 로더로 부팅하지만 인텔 I5 과정 (레노버)와 신형 컴퓨터와

오래된 컴퓨터에 운영 체제가 없다는 것을 말한다.

(부팅 순서에 하드 디스크가있을 경우 USB가 깜박 여러 번 및 하드 디스크 드라이브에서 컴퓨터 부팅을 이끌었다. 부팅 순서에는 하드 디스크가 존재하지 않는 경우, 오류 운영 체제 누락이 발생합니다) 나는 우분투 유틸리티를 열

슈퍼 유저로 'Bless'를 호출하고/dev/sdb를 확인하십시오.

실제로 0x1fe와 0x1ff에는 0x55 0xaa가 있습니다.

왜 일부 컴퓨터에서 부팅 할 수 없는지 전혀 알 수 없습니다.

두 컴퓨터 모두 동일한 UEFI 설정, 부트 우선 순위, 암호 없음을가집니다.

도와주세요

답변

0

일부 BIOS는 쉽게는 USB와 파일 시스템을 식별 할 BPB 표준 코드를 추가해야합니다.

모든 BIOS에서 식별 할 수 있도록 코드 시작 부분에 추가 할 수 있습니다. 그리고 그들 중 대부분은 제대로로드합니다.

이 기능은 모든 유형의 미디어에서 사용할 수 있습니다. 플로피 및 HDD, USB 등
이렇게하면 드라이브에 인식 된 FAT12 파일 시스템이 추가됩니다.
osdev wiki을 확인하십시오.

;bits 16      ; we are in 16 bit real mode 
use16 
org  0     ; we will set regisers later 

start: jmp main     ; jump to start of bootloader 
;nop    ; Pad out before disk description 

; ------------------------------------------------------------------ 
; Disk description table, to make it a valid floppy 
; Note: some of these values are hard-coded in the source! 
; Values are those used by IBM for 1.44 MB, 3.5" diskette 

bpbOEM   db "My OS " ; Disk label 
bpbBytesPerSector:  DW 512 ; Bytes per sector 
bpbSectorsPerCluster: DB 1 ; Sectors per cluster 
bpbReservedSectors:  DW 1 ; Reserved sectors for boot record 
bpbNumberOfFATs: DB 2 ; Number of copies of the FAT 
bpbRootEntries:  DW 224 ; Number of entries in root dir 
; (224 * 32 = 7168 = 14 sectors to read) 
bpbTotalSectors: DW 2880 ; Number of logical sectors 
bpbMedia:  DB 0xf0 ;; 0xF1 ; Medium descriptor byte 
bpbSectorsPerFAT: DW 9 ; Sectors per FAT 
bpbSectorsPerTrack:  DW 18 ; Sectors per track (36/cylinder) 
bpbHeadsPerCylinder: DW 2 ; Number of sides/heads 
bpbHiddenSectors: DD 0 ; Number of hidden sectors 
bpbTotalSectorsBig:  DD 0 ; Number of LBA sectors 
bsDriveNumber:   DB 0 ; Drive No: 0 
bsUnused:  DB 0 
bsExtBootSignature:  DB 0x29;0x41 ; Drive signature: 41 for floppy 
bsSerialNumber:   DD 0xa0a1a2a3 ; Volume ID: any number 
bsVolumeLabel:   DB "MOS FLOPPY " ; Volume Label: any 11 chars 
bsFileSystem:   DB "FAT12 " ; File system type: don't change! 

maincode: 

jmp $ 
times 510 - ($ - $$) db 0 
db 0x55 
db 0xaa 

평소와 같이 nasm으로 컴파일하십시오. dd로 MBR로 설정하십시오.

관련 문제