다스 U-부트는둘 다1단계 및 2단계 부트로더는 IBM-PC의 FSBL로서 1단계에 적합해야 합니다.446바이트(또는 그 이하) 첫 번째 섹터의 MBR 앞에 위치합니다.
FSBL 코드를 사용하여 디스크에서 31,744바이트를 읽고 해당 위치로 점프하는 1.5단계 부트로더도 있습니다(DOS 호환 첫 번째 파티션은 섹터 63에서 시작할 수 있으므로 섹터 1~62). 나는 U-Boot가 그렇지 않다고 생각합니다.
저는 UEFI나 kexec를 찾고 있지 않습니다. 오히려 coreboot나 다른 부트로더 코드가 필요하지 않기를 바랍니다.읽다가능하지만 아무도 방법을 말할 수 없습니다.
어떤 구성을 사용해야 합니까? 크롬북 링크 또는 에디슨? MBR에 넣을 446바이트 블록을 생성합니까? 섹터 1~62에 뭔가를 넣어야 할까요? 1.5 스테이지에는 맞지 않는 것 같은데 디스크에서 나머지는 어떻게 찾나요?
답변1
U-Boot는 x86을 지원하지만하드웨어, x86 BIOS에 대한 지원은 포함되지 않습니다.펌웨어.
따라서 기존 x86 PC에서 U-Boot를 사용하는 첫 번째 단계는 BIOS를 U-Boot 1단계가 포함된 사용자 정의 펌웨어로 교체하는 것입니다.
이 작업이 완료되면 이전 BIOS 부팅 규칙(예: 첫 번째 하드 드라이브의 블록 0에서 446바이트의 부팅 코드 로드)이 더 이상 적용되지 않으며 대신 U-Boot의 규칙이 사용됩니다.
물론 BIOS를 교체하려면 사용자 지정 펌웨어가 먼저 시스템 칩셋 초기화를 처리하고 콜드 부팅 후 RAM을 테스트하고 활성화할 수 있어야 합니다. PC 하드웨어에서는 칩셋 프로그래밍 문서가 모든 PC 칩셋에 쉽게 적용되지 않을 수 있으므로 예상보다 더 큰 문제가 될 수 있습니다.
U-Boot는 BIOS 호환 부트로더도 아니고 단순히 BIOS를 대체하는 것도 아닙니다. 문서에 x86을 지원한다고 나와 있는 것은 U-Boot가 통합된 맞춤형 하드웨어에서 x86 프로세서를 사용하는 하드웨어 프로젝트에 쉽게 사용될 수 있다는 의미일 뿐입니다. .
GRUB 레거시 관련 용어(1단계, 2단계, 1.5단계)를 부트로더의 보다 일반적인 시스템 설계 용어와 혼동하고 있는 것 같습니다.
시스템 설계 관점에서 Linux 실행을 목표로 하는 기존 x86 PC에서는바이오스는 1단계 부트 로더입니다. ROM(또는 플래시 EEPROM)에 배열되어 있으며 콜드 리셋 후 프로세서가 가장 먼저 수행하는 작업입니다. 이 작업은 필요한 하드웨어를 초기화하고 고정 또는 . 그렇지 않으면 위치를 삭제하세요.
시스템 설계 관점에서 전체 GRUB는 두 번째 단계 부트 로더가 됩니다. GRUB 레거시도 "단계"라는 구성 요소로 구분되지만 이는 레거시 BIOS 제한 사항을 해결하기 위해 설계된 GRUB의 내부 구분일 뿐입니다. GRUB 단계는 시스템 설계와 다릅니다.1단계/2단계 부트로더용어.