Grub에 외장 드라이브가 표시되지 않음(Intel Mac)

Grub에 외장 드라이브가 표시되지 않음(Intel Mac)

Intel Mac(MacMini)과 외부 USB 드라이브가 있습니다. 내부 드라이브에는 OSX가 설치된 파티션과 Ubuntu+Grub2가 설치된 파티션이 있습니다. 외부 드라이브에는 전체 OSX 파티션의 복사본과 전체 Ubuntu 파티션의 복사본이 있습니다(둘 다 원본과 다른 UUID를 가짐).

이중 부팅에는 rEFIt을 사용합니다. 내부 OSX 및 Linux와 외부 OSX는 rEFIt 메뉴에 나타나고 부팅 가능합니다. 부팅할 수 있도록 하려는 외부 Linux가 없습니다. Linux 백업을 생성한 후 내부 Linux(4개 설치 모두 발견)와 외부 Linux(chroot를 통해 내부 Linux를 제외한 모든 설치 발견)에서 update-grub을 수행했습니다. 문제가 해결되지 않았습니다.

내부 Grub을 사용하여 외부 Linux를 부팅하려고 하면 다음 오류 메시지가 나타납니다.

error: no such device: <the UUID of the external Linux partition>
error: no such partition.
error: you need to load the kernel first.

내부 Grub 메뉴를 입력하면 ls내부 드라이브의 모든 파티션이 나열되지만 (hd1)완전히 누락됩니다.

을(를) 사용하여 외장 드라이브의 파티션 테이블을 동기화하려고 했지만 gptsyncGPT가 없다고 합니다. gdisk그러나 하나를 찾았고 fdisk의 출력과 수동으로 비교하면 동기화된 것 같은 느낌이 들었습니다. (Linux 파티션은 두 테이블 모두에 포함되어 있습니다.)

편집하다:

rEFInd를 CD에 굽고 실험해봤습니다. 결과:

  • CD에서 부팅하기 위해 C를 눌러 Mac을 부팅하면 곧 rEFInd의 회색 배경이 표시되지만 내부 설치에서 즉시 grub이 시작됩니다. rEFIt에서 rEFInd를 선택하면 이 문제를 해결할 수 있습니다. 그러나 이로 인해 OSX에 rEFInd를 설치하는 데 자신감이 거의 없습니다.

  • rEFInd는 표시해야 하는 모든 옵션을 표시합니다. 예상했던 대로 Grubs는 여전히 외부 디스크에서 Linux를 부팅할 수 없습니다.

  • rEFInd를 사용하여 외부 디스크에서 Linux 커널을 시작하면 부팅되지만 부팅 후에는 내부 파티션이 /. 에 따르면이것기사에 따르면, 파티션을 복사한 후 변경해야 하는 유일한 변경 사항은 grub에 있습니다. 저는 그럽을 사용하지 않아서 이해가 안 돼요.

답변1

먼저 기본 EFI 모드 부팅과 BIOS/CSM/레거시 모드 부팅의 차이점을 이해해야 합니다. Intel 기반 Mac에는 EFI 펌웨어가 있으며 OS X는 EFI 모드로 부팅됩니다. 이 펌웨어에는 BIOS 모드 부트 로더를 부팅할 수 있는 BIOS 에뮬레이터(호환성 지원 모듈 또는 CSM이라고도 함, 또는 "레거시 모드" 지원이라고도 함)가 포함되어 있습니다. Apple은 이를 Windows 부팅에 사용할 계획입니다. 하지만 많은 사람들은 이 BIOS/CSM/레거시 지원을 사용하여 Linux를 포함한 다른 OS를 부팅하기도 합니다. 하지만 Linux는 BIOS 모드 부팅뿐만 아니라 EFI 모드 부팅도 지원하므로 Mac의 CSM을 사용하는 것은 종종 불필요하고 심지어 복잡하기까지 합니다. OTOH, EFI 모드로 부팅할 때보다 BIOS 모드로 부팅할 때 Linux에서 하드웨어가 더 잘 작동하는 특정 모델이 있습니다.

Mac에서 외부 미디어로 부팅하는 것은 불확실한 제안이며, 특히 BIOS/CSM/레거시 모드에서는 더욱 그렇습니다. 아마도 이것이 당신이 직면하고 있는 문제일 것입니다. 나는 BIOS 모드의 문제에 대한 "완벽한" 해결책이 없다는 것을 알고 있습니다. 가장 효과가 있을 것 같은 해결 방법은 EFI 모드 부팅으로 전환하는 것입니다. 이를 위해서는 버려진 rEFIt에서 내가 유지 관리하는 포크로 전환하는 것이 좋습니다.rEFInd.무엇보다도 rEFInd는 EFI 스텁 로더(3.3.0 이후 대부분의 배포판 제공 커널 포함)를 사용하여 Linux 커널을 직접 실행하기 위한 지원을 추가합니다. rEFInd를 다운로드 페이지에 있는 USB 플래시 드라이브나 CD-R 이미지에서 부팅하면 내부 및 외부 드라이브 모두에서 Linux가 실행될 수 있습니다(두 위치 모두에서 OS X도 마찬가지). 이것이 작동하면 rEFInd를 설치하십시오.OS X에서또한 Linux 커널(보통 ext4fs)이 포함된 파일 시스템에 대한 드라이버를 설치합니다. 결과적으로 GRUB를 우회하여 두 OS 중 하나를 직접 부팅할 수 있게 됩니다.

이 모든 것이 효과가 있다면 추악하고 위험한 것을 제거하는 것이 좋습니다.하이브리드 MBR,Apple의 EFI는 CSM을 활성화하기 위한 트리거로 사용합니다. ( gptsync유틸리티는 하이브리드 MBR을 생성하거나 수정합니다.) 하이브리드 MBR이 무엇인지, 왜 그러한 문제가 발생하는지 이해하려면 해당 링크를 읽으십시오.


편집하다:

rEFInd CD-R이 "C"를 사용하여 직접 부팅했을 때는 올바르게 작동하지 않았지만 rEFInd에서 실행했을 때는 제대로 작동했다는 사실은 rEFInd가 하드 디스크나 USB 플래시 드라이브에 설치되었을 때 올바르게 작동할 확률에 대해 거의 의미가 없습니다. 불행하게도 EFI의 광학 미디어에서 부팅하는 것은 다소 복잡하며 Apple은 자체적인 문제를 일으킨 것 같습니다. 따라서 이러한 방식으로 부팅하는 것은 약간 위험할 수 있습니다. 특히 나(rEFInd의 개발자)는 테스트할 고대 Mac이 하나만 있기 때문에 더욱 그렇습니다. 하드 디스크(또는 USB 플래시 드라이브)에서 부팅하는 것이 작동할 가능성이 더 높습니다.

/etc/fstab귀하의 설명에 따르면 복사된 파일 시스템에서 파일을 업데이트하지 못한 것으로 보입니다 . /etc/fstab해당 절차를 수행할 때 파티션의 새 UUID를 참조하도록 업데이트 해야 합니다. 우연히 /boot/refind_linux.conf파일이 있는 경우 해당 파일도 업데이트해야 합니다. (해당 파일이 없을 가능성이 있지만, 내 지시를 조금 벗어나거나 과거에 rEFInd를 사용했다면 그럴 수도 있습니다.)

관련 정보