현재 설정 상태로 인해 Syslinux가 GRUB2를 기본 부트 로더로 링크 로드하도록 하고 싶습니다. Google은 GRUB2 링크에서 Syslinux를 로드하는 방법에 대한 많은 정보를 제공하지만, 제가 찾고 있는 반대 시나리오에 대해서는 실제로 유용한 정보를 제공하지 않습니다.
답변1
나는 직접 시도해 본 적이 없지만 ArchLinux 위키에서 이러한 세부 정보를 찾았습니다. 적절한 제목의 기사에서:시스템리눅스. 다음과 같은 섹션이 있습니다.다른 Linux 시스템을 체인로드.
발췌
다른 부트로더(예: Windows)를 로드하기 위해 연결하는 것은 연결할 명시적인 부트로더가 있기 때문에 매우 분명합니다. 그러나 Syslinux의 경우 구성 파일과 동일한 파티션에 있는 파일만 로드할 수 있습니다. 따라서 별도의 파티션에 다른 버전의 Linux가 있지만 공유/부팅이 없는 경우 Extlinux를 사용해야 합니다. 기본적으로 Extlinux는 파티션 슈퍼 블록에 설치될 수 있으며 Syslinux와 독립적으로 설치된 MBR의 부트 로더로 호출될 수 있습니다. Extlinux는 Syslinux 프로젝트의 일부이며 syslinux 패키지에 포함되어 있습니다.
다음과 같이 Grub2를 사용하는 시스템이 있다고 가정합니다.
/dev/sda3
(/
)/dev/sda2
(/boot
)
다음과 같이 설치할 수 있습니다.
$ mount /dev/sda3 /mnt
$ mount /dev/sda2 /mnt/boot (only necessary for separate /boot)
그런 다음 extlinux
설치 후 다음을 수행하십시오.
$ extlinux -i /mnt/boot/syslinux
$ cp /usr/lib/syslinux/{chain,menu}.c32 /mnt/boot/syslinux
그리고 이 파일을 생성하세요 /mnt/boot/syslinux/syslinux.cfg
::
timeout 10
ui menu.c32
label Other Linux
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
append root=/dev/sda3 ro quiet
label MAIN
com32 chain.c32
append hd0 0
답변2
GRUB의 파일이 /boot/grub
syslinux와 동일한 파티션에 있다고 가정하면 boot.img
다음과 같이 첫 번째 GRUB 이미지를 체인 로드할 수 있습니다.
LABEL GRUB
MENU LABEL Grub2 chainload
COM32 CHAIN.C32
APPEND file=/boot/grub/boot.img
답변3
이를 수행하는 방법에는 여러 가지가 있습니다. 부트로더에 대한 공개 소스 코드가 없는 체인 로딩 Windows와 달리 grub은 다양한 형식으로 제공되며 더 추가하는 것이 어렵지 않습니다. CostinStroie의 방법은 부팅 섹터를 로드하는 변형을 사용하며 grub이 설치되어 있고 레거시 BIOS가 있으며 네트워크 부팅이 아니라고 가정하면 제대로 작동합니다. 다른 grub 이미지를 사용할 수도 있습니다. 한때 syslinux 커널 키워드를 사용하여 로드할 수 있는 Linux 이미지 헤더가 있는 Grub 레거시 이미지가 있었습니다. (비록 나는 이것을 하는 사람을 모르지만) grub을 syslinux 특정 c32 이미지로 컴파일할 수 있습니다. 다른 흥미로운 것들은 pxelinux에서 pxe grub 이미지를 로드하는 것과 memdisk를 사용하여 grub 플로피 이미지를 로드하는 것입니다.
답변4
GRUB2를 PBR(MBR이 아님), Syslinux와 동일한 디스크(예: sda)의 다른 파티션(예: sda3)에 설치했다고 가정하면 다음 명령 링크를 통해 GRUB2를 로드할 수 있습니다:
LABEL Other Linux (Linux installed on sda3 & Syslinux installed on sda)
MENU LABEL Grub2 chainload
COM32 chain.c32
APPEND boot 3
아무런 문제없이 YUMI로 테스트되었습니다.