SYSLINUX 또는 EXTLINUX의 어떤 부분도 파일 시스템으로 포맷되지 않은 디스크 영역(예: 부트 섹터, BIOS 부트 파티션)에 기록되지 않는다고 가정할 때 GRUB2에서 SYSLINUX/EXTLINUX를 어떻게 체인 로드합니까?
답변1
실제로 묻는 것은 "완전히 설치되지 않은 SYSLINUX 또는 EXTLINUX를 어떻게 시작합니까?"입니다.
(농담 반으로) FreeDOS를 부팅하여 SYSLINUX/EXTLINUX 설치를 완료한 다음 SYSLINUX/EXTLINUX로 재부팅하는 것이 좋습니다. (GRUB가 여전히 포함되어야 하는 경우 GRUB에서 파티션 부트 레코드(PBR) 코드를 체인로드하여) 이 점) :-)
PBR 코드가 없으면 SYSLINUX/EXTLINUX 설치가 불완전합니다. 설치 프로그램은 PBR 코드를 작성할 뿐만 아니라 일부 디스크 블록 번호 정보를 파일에 직접 패치하므로 ldlinux.sys
이 파일을 한 디스크에서 다른 디스크로 복사하면 이 정보가 잘못되었을 가능성이 높습니다. 이와 같은 복사본을 링크 로드하려고 하면 ldlinux.sys
다음 두 가지 이유로 충돌이 발생할 가능성이 높습니다.
- 패치된 디스크 블록 번호 정보가 올바르지 않습니다.
- GRUB 체인 로딩의 실행 환경은 실행 후 SYSLINUX PBR 코드의 실행 환경과 정확히 동일하지 않을 수 있습니다.
다음에서 PBR 코드를 찾을 수 있습니다.diskboot.inc 어셈블러 파일SYSLINUX 소스 코드 패키지, 파일의 시작 부분 ldlinux.sys
은 다음과 같습니다.diskstart.inc 어셈블러 파일. 어셈블리 코드를 읽는 방법을 모르더라도 주석을 통해 풍부한 정보를 얻을 수 있습니다.
GRUB을 사용하여 SYSLINUX/EXTLINUX 부팅 가능한 라이브 Linux 배포판 또는 유틸리티를 일부 다중 부팅 시스템에 결합하려는 경우 더 쉬운 접근 방법은 SYSLINUX의 구성 파일을 읽고 동일한 커널 파일인 initrd/initramfs 파일을 사용하도록 GRUB을 구성하는 것입니다. 적용 가능) 및 커널 부팅 옵션(SYSLINUX에서와 같이).
이는 Linux 커널 부팅의 기본 사항이므로 부팅 OS/유틸리티가 어떤 부트 로더가 사용되었는지 명시적으로 확인하는 문제가 발생하지 않는 한 GRUB 또는 SYSLINUX/EXTLINUX로 부팅하든 결과는 정확히 동일해야 합니다. (차이가 있다면 버그일 가능성이 높습니다.)