GRUB2: 두 번째(다른) 하드 드라이브로 부팅

GRUB2: 두 번째(다른) 하드 드라이브로 부팅

이 질문을 조사했지만 명확한 답을 찾지 못했습니다... 심지어 명확한 질문도 찾지 못했습니다. 그래서 간단한 예를 들어보겠습니다.

내 컴퓨터에는 **하드 드라이브 2개:**가 있습니다.

  • 하드 드라이브 1:우분투리눅스와GRUB2존재하다막 생물 반응기.
  • 하드 드라이브 2:어느다른 운영 체제(어떤 운영 체제에 영향을 미칩니까?)와 다른 MBR 로더.

GRUB2 전용우분투로 부팅(내 예에서는 첫 번째 하드 드라이브에 있음)
발급 update-grub확실감지되지 않음OS는 두 번째 하드 드라이브에 있지만 하나도 있다는 것을 알고 있습니다.
내가 들어가면바이오스부팅 시간 및 부팅 순서를 HDD 2(두 번째 OS)로 변경좋은 부츠.

내가 어떻게 할 수있는GRUB2에 항목 추가부팅두 번째 하드 드라이브?

(사실은 이 질문을 할 수 있다고 생각합니다.아니요두 번째 하드 드라이브의 운영 체제를 지정합니다. 아니면? )

요청에 따라 os-prober이 구성을 사용하여 샘플 머신의 출력을 추가합니다.

luis@threepwood:~$ sudo os-prober
/dev/sdb1:Windows 7 (loader):Windows:chain
/dev/sdb7:Ubuntu 14.04.3 LTS (14.04):Ubuntu:linux

이 특정 예에서는(BIOS에서 부팅 순서를 변경했습니다):

  • sdbHDD-1 입니다.
  • sdaHDD-2 입니다.

답변1

저는 보통 grub.cfg수동으로 작성하고 절대 사용하지 않습니다 update-grub. 그리고 부팅 위치를 선택할 수 있는 소위 기본 Grub2 부트로더가 있습니다. 그런 다음 각 Linux 배포판이 자체 루트 파티션에 자체 부트로더를 설치하도록 합니다. 이를 통해 Linux에서 편집할 수 있습니다. 내 메인 grub2 부트로더를 건드리지 않고도 자체 부트로더를 사용할 수 있습니다.

다른 디스크 MBR로 이동하기 위해 grub.cfg디스크를 첫 번째 디스크로 간주할 필요가 없는 일반 OS에 대해 다음 항목을 설정했습니다.

menuentry "Boot from second disk" {
   chainloader (hd1)+1
}
menuentry "Boot from third disk" {
   chainloader (hd2)+1
}
menuentry "Boot from fourth disk" {
   chainloader (hd3)+1
}

그래서 내가 원하는 다른 디스크에 MBR을 로드합니다.

그러나 첫 번째 디스크와 마찬가지로 다른 디스크를 보고 싶어하는 까다로운 Linux(및 일부 Windows)의 경우 grub 메뉴 항목에 몇 가지 명령도 추가하여 다음과 같이 보입니다.

menuentry "Boot from second disk and see it as first disk" {
   set root=(hd1)
   drivemap -s hd0 hd1
   chainloader +1
}
menuentry "Boot from third disk and see it as first disk" {
   set root=(hd2)
   drivemap -s hd0 hd2
   chainloader +1
}
menuentry "Boot from fourth disk and see it as first disk" {
   set root=(hd3)
   drivemap -s hd0 hd3
   chainloader +1
}

모두 자세히 설명되어 있습니다.

  • (hd#)는 디스크를 나타냅니다. 여기서 #은 0부터 시작합니다.

  • Drivemap은 드라이브 스와핑을 수행하므로 모든 디스크를 첫 번째 디스크 또는 원하는 번호로 볼 수 있습니다(표시되는 두 디스크의 순서를 바꿉니다).

  • chainloader (hd#)+1은 디스크의 MBR로 점프합니다.

  • chainloader +1 (루트)에 저장된 첫 번째 섹터로 점프

  • set root=... (루트)가 소유하는 항목을 설정합니다.

  • (루트)는 덜 입력하는 데 사용할 수 있는 변수와 같습니다.

파일의 전체 문서를 보려면 grub.cfg공식 웹페이지를 확인하세요.

https://www.gnu.org/software/grub/manual/grub/grub.html

답변2

그것은 간단합니다. 다음 단계를 따르세요.

예시 시나리오:

  • /dev/sda1– 센트OS

  • /dev/sdb1– 데비안

CentOS 드라이브에 활성 MBR이 있다고 가정합니다. 이런 식으로 시작 후 Debian을 추가해야 CentOS 시스템에 들어갈 수 있습니다.

활성 운영 체제(이 시나리오에서는 CentOS)에서의 작업:

  1. mount /dev/sdb1 /mnt/debian

  2. menuentry다음과 같이 전체 데비안 부분을 잘라냅니다 /mnt/debian/boot/grub{2}/grub.cfg:

    menuentry 'Debian GNU/Linux' --class debian --class gnu-linux ... { ... }

  3. 이제 파일을 만듭니다.touch /etc/grub.d/11_linux

  4. 이것은 스크립트이므로 다음을 수행해야 합니다.chmod +x /etc/grub.d/11_linux

  5. 다음에 추가:

    #!/bin/sh
    echo "
    

    11_linux섹션을 붙여넣으세요 . "끝까지 다 됐네요. 따라서 우리는 다음을 수행해야 합니다.

    centos #~> cat /etc/grub.d/11_linux
    
    #!/bin/sh
    echo "menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-78026456-ebcc-4eed-b59d-a3f0bdff7353' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  f2de4123-5a98-4568-99dd-e61940b99ab2
        else
          search --no-floppy --fs-uuid --set=root f2de4123-5a98-4568-99dd-e61940b99ab2
        fi
        echo    'Loading Linux 3.16.0-4-amd64 ...'
        linux   /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/Thinkpad--vg-root ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-4-amd64
    }"
    
  6. grub2-mkconfig -o /boot/grub{2}/grub.cfg

  7. 재시작.

바라보다.

답변3

안녕하세요, 방금 같은 문제가 발생했습니다. os-prober를 설치한 후 grub-customizer가 os-prober를 사용하여 두 번째 HDD에서 운영 체제를 찾아 부팅 메뉴에 추가할 수 있다는 것을 발견했습니다. 구성 파일을 편집하는 것보다 이것이 더 쉽다는 것을 알 수 있습니다 :)

답변4

두 번째 HDD에 대한 grub 구성에 항목을 추가해야 한다고 생각합니다.

어떤 운영 체제인지는 중요하지 않습니다.

저는 Windows HDD에서 grub2와 함께 듀얼 북을 사용하고 있습니다. Windows와 Linux를 감지하고 부팅할 운영 체제를 선택할 수 있는 메뉴를 제공합니다.

고급 구성, 체인 로딩 및 grub에 수동 항목 추가를 위해서는 다음 링크를 클릭하십시오:

https://help.ubuntu.com/community/Grub2/CustomMenus

관련 정보