GRUB2의 Chainload syslinux-syslinux.cfg 메뉴 표시


9

시스템을 재 이미징하기 위해 Clonezilla 라이브 USB 디스크를 사용하고 있습니다. http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc에 설명 된 내용에 따라 디스크에 포함 된 메뉴가 표시됩니다. syslinux.cfgUEFI 시스템 인 최신 시스템을 제외한 모든 시스템 에서 (그리고 BIOS가 UEFI 장치에서 먼저 부팅하도록 구성한 경우) grub.cfg메뉴 가 표시됩니다 . 메뉴를

많이 사용자 정의 했으므로 모든 경우에 메뉴 를 표시하기 위해 파일을 syslinux에 자동으로 체인로드하도록 syslinux.cfg수정하고 싶습니다 . 이것이 가능합니까? 어떻게?grub.cfgsyslinux.cfg



디스크에는 GRUB2가 있으며 (인터넷을 둘러 보는 것으로부터) 나의 이해는 가능하지만 아직 어떻게 이해하지 못했습니다. 도움을 주시면 감사하겠습니다.

편집 : Conezilla 다운로드에서 제공하는 기본 메뉴에
있는 옵션을 선택하는 데 문제없이 grub을 사용하여 시스템을 부팅한다는 점을 분명히하고 grub.cfg싶지만 syslinux 메뉴 ( syslinux.cfg) 를 표시하고 싶습니다. grub.cfg

두 번째 편집 의 기본 메뉴 대신 내가 어떻게했는지 :
결국 제안 된 솔루션이 작동하지 않으므로 'EFI \ boot'폴더를 "사용할 수 없음"으로 변경했습니다 (이름 변경). 이 방법으로 UEFI 부팅이 실패하고 시스템이 이전 시스템에서와 같이 syslinux에서 부팅됩니다 : BIOS 수정, 새 메뉴, 체인로드 없음 ...


configfilegrub.conf 내부의 매개 변수 를 사용 하여 syslinux.cfg를 chainload 할 수 있습니다
— SHW

답변:


1

이것은 관련 버그와 일부 패치이므로 다음과 같이 알기가 어렵습니다. https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

먼저 OS 업데이트가 grub 인 경우 grub.cfg를 재생성하고 구성을 지울 것이므로 /boot/grub.cfg를 수동으로 수정하지 말고 대신 /etc/grub.d의 파일을 수정하십시오 (40_custom 또는 이와 유사한 이름의 파일) 전화하십시오 grub-mkconfig -o /boot/grub/grub.cfg.

다음과 같이 간단한 것을 시도해 볼 수 있습니다.

menuentry "Syslinux 루트 드라이브"{

루트 = (hd1,3) 설정

체인 로더 +1

}

(hd1,3)은 sdb3 디스크 파티션이며, grub은 uuid로 식별을 지원하므로 모든 PC에서 파티션을 감지 할 수있는 설정을 만들 수 있습니다. 그러나 내 경험에 따르면 때로는 이것으로 충분하지 않습니다.

당신은 또한 같은 것을 시도 할 수 있습니다 chainloader (hd1,3)/path/to/syslinux/isofile.bin

모든 것이 실패하면 syslinux를 사용하여 iso에서 부팅하는 것이 가능하지만 귀하의 경우 이것이 옵션이 아닌 것 같습니다.


먼저 grub 명령 줄에서 시도했지만 (grub에서 c를 한 번 누름) 내 syslinux.cfg 파티션을 식별하고 'chainloader (hd0, msdos2) +1'을 직접 시도했지만 '잘못된 EFI 파일 경로'오류가 발생합니다. 위의 파티션 내용에는 .bin 파일이 포함되어 있지 않습니다. (나는 또한 명확성을 위해 질문을 편집했습니다)
— rodedo

아마도 이름과 이진 형식 확장자 (.bin)는 배포판에 따라 다릅니다 (라이브 CD에는 일반적으로 syslinux 및 isolinux로 부팅 할 수있는 bin이 있지만 귀하의 경우 아마도 .bs 파일입니다. 여기에서 명령을 확인하십시오) syslinux.org/wiki/index.php/SYSLINUX#LABEL_command ). 그러나 나는 지금 한 가지를 연구하고있다 : 캐스퍼 모듈 (일명 라이브 CD / 라이브 USB 모드)으로 커널을 직접 부팅하지 않으면 부트 로더 메뉴가 실행되지 않습니다. 몇 분 후 나는 결과를 쓸 것이다.
— IBr April

좋습니다. 후보는 해당 폴더에있는 .c32 파일입니다. 보다 정확하게는 폴더의 내용입니다 : 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg'<br> cfg 파일 제외 , 하나씩 하나씩 시도 해볼까요? 주위를 둘러 보면 chain32가 다른 방향으로의 chailoiding에 사용되어야한다는 것을 이해했습니다 (그래서 필요한 것은 아닙니다), 내가 틀렸습니까?
— rodedo

캐스퍼를 호출해도 부트 로더 메뉴가 호출되지 않습니다. 나는 이것을 보관하는 방법을 모른다. 그것이 grub에 대한 자체 grub chainloading 예제를 얻는 데 도움이되지만 syslinux와 함께 사용하는 것은 의심 스럽다.menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
— IBr

0

4 년 후 ... :)

이 시도:

menuentry 'menuentry' {
    set root=(hd0,1)
    syslinux_source /path/isolinux/isolinux.bin
    syslinux_configfile /path/isolinux/isolinux.cfg
}

1
조금 더 자세히 설명하고 왜 이것이 문제를 해결하는지 설명하십시오.
— 카운터 모드

-1

부트 섹터 설치 대신 디렉토리 설치를 수행해야합니다. 부트 섹터 설치를하는 경우 파티션의 첫 512 바이트를 파일에 추가하고 해당 파일에 체인로드하십시오. 나를 위해 일했다.


이것은 정확할 수도 있지만, 설명 된 단계를 수행 하는 방법 에 대한 약간의 설명 과 적절한 대문자를 사용하면 도움이 될 수 있습니다 .
— Caleb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.