이중 부팅 Arch Linux 및 Gentoo Linux: 하드 드라이브를 찾을 수 없어 Arch를 시작할 수 없습니다.

이중 부팅 Arch Linux 및 Gentoo Linux: 하드 드라이브를 찾을 수 없어 Arch를 시작할 수 없습니다.

Windows에 Gentoo Linux를 부팅 파티션(GRUB 파일이 설치된 곳) /dev/sda2으로 설치했습니다 . MBR 파티션 테이블이 있습니다. 이는 데이터 파티션(기본 파티션과 같이 백업해야 하는 파일을 저장하는 곳)이며 Arch Linux를 설치한 곳이기도 합니다. GPT 파티션 테이블이 있습니다. 젠투는 GRUB에서 정상적으로 부팅할 수 있는데, 저는 젠투에서 설치했습니다. 아치는 그렇지 않습니다. 예/dev/sda1/dev/sda/dev/sdb1/dev/sdb2/dev/sdb/boot/grub/grub.cfghttps://paste.pound-python.org/show/2TXi8NeWbhoaWsifKeMM/. 다음은 파일의 Arch Linux 부분입니다.

        menuentry 'Arch Linux (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_i
d_option 'osprober-gnulinux-/boot/vmlinuz-linux--1db96616-a88a-42a6-9283-a57016bba4c9' {
                insmod part_gpt
                insmod ext2
                set root='hd1,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  1db96616-a88a-42a6-9283-a57016bba4c9
                else
                  search --no-floppy --fs-uuid --set=root 1db96616-a88a-42a6-9283-a57016bba4c9
                fi
                linux /boot/vmlinuz-linux root=UUID=1db96616-a88a-42a6-9283-a57016bba4c9 rw quiet
                initrd /boot/initramfs-linux.img
        }

그런데 실행하려고 하면 hd1,gpt2가 존재하지 않는다는 오류가 발생합니다. 따라서 제가 언급한 파티션이 여기에 존재하고 이것이 ls /dev/sd*반환되는 것을 볼 수 있습니다 .

/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdb2

이 문제를 해결하는 데 도움이 되는 추가 정보가 필요한 경우 해당 정보를 얻는 방법을 알려주시기 바랍니다.

grub-install --target=x86_64-efi --efi-directory=/boot /dev/sdaGRUB을 다시 설치 하고 다시 실행 해 보았지만 grub-mkconfig -o /boot/grub/grub.cfg문제가 지속됩니다.

편집: 이제 이것은 혼란스럽습니다... 방금 gdisk를 사용하여 /dev/sda의 MBR을 GPT로 변환했는데 이제 gdisk -l /dev/sda다음이 반환됩니다.

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8AD72DC5-C104-4524-8C18-52759DC6C784
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2957 sectors (1.4 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          264191   128.0 MiB   EF00  EFI System
   2          264192      1953524191   931.4 GiB   8300  Linux filesystem

GRUB를 다시 설치했습니다(GPT 변경 후 필요, 그렇지 않으면 하드 드라이브를 부팅할 수 없음) grub-install --target=x86_64-efi --efi-directory=/boot /dev/sda. 그런 다음 GRUB 프로필을 다시 생성하고 마침내 재부팅하여 Arch Linux 부팅을 시도했지만 동일한 오류로 다시 실패했습니다. 인터넷 검색에서 다른 파티션 테이블이 문제일 수 있다고 제안했지만 파티션 테이블을 변경해도 작동하지 않는 것 같습니다. 내 새 GRUB cfg 파일은 다음과 같습니다.여기.

EDIT2: 이제 /dev/sdb1을 삭제하고 ESP 파티션으로 교체한 다음 실행 중인 Arch Linux 파티션에 GRUB를 설치했습니다 grub-install --target=x86_64-efi --efi-directory=/boot /dev/sdb && grub-mkconfig -o /boot/grub/grub.cfg. 아직도 Arch Linux를 부팅할 수 없습니다. Esc를 누르고 부팅 옵션을 확인한 결과 라이브 USB에 부팅 메뉴가 표시되고 Gentoo 설치에서 부팅 메뉴가 표시되는 동안 Arch Linux 설치에서는 표시되지 않았습니다. 또한 Gentoo의 GRUB 설치와 해당 구성을 업데이트했지만 여전히 Gentoo를 사용하여 Arch를 시작할 수 없습니다(이전과 동일한 오류).

답변1

젠투 시스템에 이 파일이 있어야 합니다 /etc/grub.d/40_custom. Arch의 grub.cfg를 참조하기 위해 이 파일에 메뉴 항목을 추가할 수 있습니다. 이 같은:

menuentry 'Arch Linux' {
   set root='hdX,msdosX' 
   configfile /boot/grub/grub.cfg
}

root항목은 Arch 가 포함된 파티션을 가리켜야 합니다 /boot. 그런 다음 grub-mkconfig -o /boot/grub/grub.cfgRegenerate Gentoo의 grub.cfg를 실행하세요.

답변2

나는 이것이 오래된 질문이라는 것을 알고 있지만 여전히 최신 답변을 얻을 가치가 있습니다

디스크 레이아웃

내가 제대로 이해하고 있는지 확인해 보겠습니다.

  1. /dev/sda1/boot 당신이 따르는 젠투 매뉴얼 에 해당합니다별도로 파티션을 나누는 것이 좋습니다
  2. /dev/sda2젠투 설치의 루트 디렉터리를 포함합니다./
  3. /dev/sdb1운영 체제 간에 공유 가능한 파티션입니다.
  4. /dev/sdb2귀하의 아치 설치는 무엇입니까?포함되지별도의 /boot파티션

EFI 파티션

Windows 설치에 대해 언급하지 않았으므로 무시해도 됩니다.이 경고. 미래의 독자가 Windows를 사용한다면 경고를 읽으십시오.

  1. Windows 외에도 UEFI 사양은 여러 디스크의 여러 ESP 파티션에 이상적입니다.
  2. 각 운영 체제는 .efi해당 파일을 별도의 디렉터리에 설치해야 합니다./boot/EFI/arch/bootx64.efi
  3. UEFI는 상관하지 않지만 개인적인 경험으로 볼 때 이와 같은 실제 부팅 관리자를 사용하지 않는 한 하나의 EFI 파티션만 사용하는 것이 좋습니다.마이크로플레이트 리더

애벌레

  1. 관리하려는 GRUB 사본을 선택하십시오(나중에 위해 이 선택 항목을 저장하십시오).
  2. 복구 디스크 또는 운영 체제 설치 디스크를 사용하여 새 운영 체제를 설치하십시오(귀하의 경우 Arch).
  3. 모든 디스크 사용량 나열gptdisk
  4. Gentoo /boot를 마운트하기 위해 Arch /boot디렉터리에 대한 마운트 지점을 만듭니다. (이것이 단지 grub 업데이트인 경우 이 단계를 건너뛰십시오.) 사실, Gentoo와 Arch는 이제 동일한 부팅 디렉터리를 공유합니다.
  5. 3단계의 출력에 따라 기존 EFI 파티션을 마운트합니다.mount -t vfat /dev/sda1/EFI /boot/EFI
  6. 옵션을 사용하여 Arch의 Grub 설치 프로그램이 5단계에서 설치한 디렉터리를 가리키도록 --efi-directory합니다.grub-install --target=x86_64-efi --efi-directory=/boot/EFI

6단계가 완료되어야 하며 다음 설정이 적용됩니다.

/boot/EFI/gentoo/
/boot/EFI/arch/

각 디렉터리에는 각 운영 체제에 대한 EFI 스텁 로더가 포함되어야 합니다.

#1에서 선택한 OS로 부팅하고 적절한 명령을 실행하여 GRUB를 업데이트합니다( os-prober이 명령을 실행하면 메뉴에 새 OS가 추가됩니다. 두 GRUB를 모두 업데이트하도록 선택할 수 있지만 이는 다소 중복됩니다.

관련 정보