2 개의 Grub2 설치를 체인로드


14

이것은 정말로 나를 쓰러 뜨리고 있습니다. Grub2와 함께 Gentoo와 Ubuntu가 있습니다. 젠투에는 전용 /boot파티션이 있지만 우분투에는 없습니다. 나는이 menuentry젠투의에서 /etc/grub.d/40_custom(우분투 부팅 확인을 수행) 우분투를 부팅 할 수 있습니다.

Ubuntu는 Grub과 함께 제공되므로 루트, 커널, initrd 및 항목을 설정하는 항목을 유지 관리하는 대신 해당 항목에 체인로드하고 싶습니다. 이것이 체인 로더에 대한 것입니다 (우분투가 켜져 /dev/sda4있고 이미 Grub을 설치했습니다).

menuentry 'Chainloader' {
    insmod chain
    set root=(hd0,4)
    chainloader +1
}

그것은 나에게주고 error: Invalid signature있으며 가능한 해결책을 찾지 못했습니다. 누군가 지적 할 수 있습니까?

이것은 결과입니다 </dev/sda4 head -c 512 | hd

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

의 결과입니다 fdisk -l. /dev/sda1/boot젠투이고, 젠투는에 있으며 /dev/sda2, 우분투는에 /dev/sda4있습니다. 우분투는 것 /boot입니다 /dev/sda4너무.

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe001152b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           9       72261   83  Linux
/dev/sda2              10       13064   104864287+  8e  Linux LVM
/dev/sda4   *       18152       19457    10490445   83  Linux

에 오류가 없습니다 grub-install /dev/sda4 --no-floppy --force

/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR.  This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.

분명히에 부트 로더를 설치하지 않았습니다 /dev/sda4. 디스크가 두 개 이상 있습니까? 파티션 테이블은 무엇입니까? 의 출력 fdisk -l과의 메시지를 게시하십시오 grub-install /dev/sda4 --no-floppy --force.
Gilles 'SO- 악마 중지

예, 나는 질문을 업데이트했다
phunehehe

답변:


4

GRUB2에서 GRUB2를 체인로드 할 수 있습니다. 방금 설명한 방식대로 시도해 보았습니다. 그러나 제공 한 정보는 부팅 이미지가 디스크의 MBR에 포함되지 않은 것처럼 보이게합니다 (또는 0이 아님).

우분투에서 GRUB2를 정확하게 사용하지는 않지만 (구성 파일)이 작업을 시도합니다. Ubuntu 구성 파일을로드하는 Gentoo GRUB2 구성 파일에서 메뉴 항목을 생성 할 수 있습니다. 이 작업을 수행하는 방법에는 두 가지가 있습니다.

내가 사용하는 것은 일반 명령 과 함께 사용되며 , 일반 모드로로드 할 구성 파일을 지정할 수 있습니다. 이 경로 를 사용하면 normal_exit 라는 명령이 있습니다.이 명령 을 사용하면 Ubuntu 구성에 사용자 정의 항목으로 추가하여 Gentoo 구성으로 돌아갈 수 있습니다.

다른 옵션은있다 에서 configFile 명령으로,로드 할 대체 구성 파일을 지정할 수 있습니다. 그래도이 옵션을 "백 아웃"하기가 더 어려워 보입니다.

이러한 명령에 대한 자세한 내용은 여기를 참조하십시오 .


3

부팅 프로세스의 초기 부분은 하드 드라이브의 첫 번째 섹터 인 소위 마스터 부트 레코드 (MBR) 에서 코드를로드하는 것으로 구성됩니다 . 일반적으로 Grub은 / boot를 보유한 파티션의 첫 번째 섹터가 아닌 이 첫 번째 하드 드라이브 섹터에 기록됩니다 . 그러나 일반적으로 Linux 설치 중에이를 변경할 수 있지만 최신 설치 루틴에서는 종종 숨겨져 있습니다.

/ dev / sda4에 Grub을 설치했다고 말하지만, 설정이 올 바르고 게시 한 오류 메시지에서 Grub이 체인로드하려는 파티션에 올바르게 설치되지 않았 음을 나타냅니다. 젠투로 부팅 한 다음 chroot를 우분투 파티션으로 부팅해야합니다. / boot가 젠투가 아닌 Ubuntu- / boot를 올바르게 가리키고 있는지 확인하십시오! 이제 Grub 2를 Ubuntu-Partition / dev / sda4의 첫 번째 섹터에 설치하십시오 : grub-install /dev/sda4 --no-floppy.

MBR 및 파티션을 관리 할 때는 항상 시작하기 전에 기능적인 최신 백업이 있는지 확인하십시오.


우분투로 부팅하고 grub-install을 실행하면 차이가 있습니까? 왜냐하면 내가 한 일이고 작동하지 않습니다 :(
phunehehe

체인로드가 작동하지 않아 우분투로 부팅 할 수 없다고 생각 했습니까? 그러나 우분투로 부팅하거나 chroot로 부팅하면 차이가 없어야합니다.
fschmitt

@phunehehe : 오류 메시지는 Grub이 첫 번째 섹터에서 부트 로더 서명을 찾지 못했음을 의미합니다 /dev/sda4(마지막 두 바이트는이어야 함 0x55 0xaa). </dev/sda4 head -c 512 | hd? 의 출력을 게시 할 수 있습니까?
Gilles 'SO- 악마 중지

@ Gilles : 결과를 질문에 추가했습니다. 제대로 보이지 않습니까?
phunehehe

실제로 실행해야합니다 grub-install /dev/sda4 --no-floppy --force. 그렇지 않으면
차단 목록

-1

grub에서 sda4가 (hd0,3)이 아니거나 grub2에서 이러한 종류의 변경 사항이 있습니까?


그래, 나는 확실히는 / dev / sda4의 그게 내가 부팅을 사용하고 무엇 때문에 (hd0,4)이 될 것이다 우분투 해요
phunehehe

3
예, Grub 0.97은 0으로 하드 디스크 및 파티션을 계산하기 시작했습니다. Grub 2는 여전히 0으로 디스크를 계산하기 시작하지만 1을 사용하여 파티션을 계산하기 시작합니다. 따라서 / dev / sda4는 Grub 0.97에서 hd0,3이고 Grub 2에서 hd0,4입니다.
fschmitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.