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.