USB3 PCIe 카드에서 Grub2 부팅

USB3 PCIe 카드에서 Grub2 부팅

PC의 내부 하드 드라이브에 grub2를 설치하고 USB 플래시 드라이브에서 데비안 설치를 부팅해 보았습니다. PC에는 USB 3 포트가 없어서 USB 3 PCIe 카드를 추가했습니다. 대부분의 PCIe USB3 카드에는 부팅 ROM이 없다는 것을 알고 있으므로 하드 드라이브에서 grub2를 로드한 다음 USB 플래시 드라이브로 부팅할 계획입니다.

USB 키를 USB 2 포트에 연결하면 모든 설정이 제대로 작동합니다. PCIe 카드의 USB3 포트에 연결하려고 하면 다음 오류가 발생합니다.

블록 참조 오류: 해당 장치 없음: 여기에 드라이브의 UUID

그 후 grub은 복구 모드로 전환되고 ls는 (hd0), (hd0,msdos1) 및 (hd0,msdos2)만 표시합니다. 따라서 grub이 USB 키를 "볼" 수 없는 것과 같습니다.

usb, usbms, xhci, echi, uhci에 대한 insmod를 /boot/grub/grub.cfg에 추가했습니다. USB 3 포트가 Linux에서 작동한다는 것을 알고 있습니다. 하드 드라이브의 배포판에서 실행할 때 포트의 USB 키를 통해 설치할 수 있기 때문입니다. grub2가 PCIe USB 포트를 지원하도록 하는 방법이 있습니까?

답변1

USB 컨트롤러마다 다른 GRUB 모듈이 필요합니다.

  • USB 1.x의 경우 GRUB에는 ohci.moduhci.mod.
  • USB 2.0의 경우 GRUB에는 ehci.mod.
  • USB 3.x의 경우 해당 모듈은 이지만 xhci.mod이 글을 쓰는 시점에서는 GRUB에 이 드라이버 모듈이 없는 것으로 보입니다.

대부분의 새로운 시스템에는 펌웨어 수준에 내장된 USB를 지원하는 UEFI 펌웨어가 있는 것으로 나타나므로 개발자는 GRUB에서 기본 USB3 XHCI 컨트롤러 지원이 필요하지 않을 것으로 예상할 수 있습니다. 불행히도 이는 귀하와 같은 추가 카드 사용자가 운이 없다는 것을 의미합니다.

최근까지 대부분의 USB 3 지원 시스템에는 이전 버전과 호환되는 EHCI 컨트롤러와 둘 사이의 스위칭 프로토콜이 포함되었습니다. 이렇게 하면 시스템이 EHCI 컨트롤러로 부팅되고, 초기에 USB 포트를 구동하고, 드라이버가 로드된 후 XHCI 컨트롤러로 전환할 수 있습니다. 이러한 시스템을 통해 GRUB는 EHCI 드라이버 모듈만 사용하여 수많은 USB 기능을 구현할 수 있습니다.

Windows 7(내장 USB 3 지원이 없는 마지막 주요 운영 체제)이 이제 지원 종료에 가까워짐에 따라 하드웨어 제조업체는 XHCI 전용 칩셋 및 시스템을 생산하기 시작했습니다. 이로 인해 GRUB의 XHCI 드라이버 모듈에 대한 필요성이 증가할 수 있습니다. 그러나 완전한 기능을 갖춘 XHCI 드라이버는 복잡한 문제이며 이를 개발하는 것은 상당히 어려운 작업입니다.

시스템이 UEFI 펌웨어를 사용하는 경우 또 다른 가능성이 있을 수 있습니다. xhciDxe.efiXHCI USB 컨트롤러용 UEFI 드라이버를 찾을 수 있는 경우 적절한 UEFI NVRAM 변수를 구성하여 이를 로드할 수 있습니다. 그러면 XHCI USB가 UEFI 펌웨어 기능 사용자를 지원합니다. GRUB의 UEFI 버전을 포함합니다. 내가 아는 한, 이것은 Apple 하드웨어에서 Linux를 실행할 때 필요할 수 있는 것입니다.하지만 여기서 버전을 찾았습니다 xhciDxe.efi.

답변2

Grub2 모듈과 Linux 커널 모듈은 동일하지 않습니다. 즉, Linux에서 이 작업을 수행하면

lspci -k

그리고 PCIe 카드가 어떤 모듈을 사용하고 있는지 확인하세요. grub2와 동일한 모듈이 아닙니다. 아마도 grub2에는 비슷한 모듈이 없을 수도 있습니다.

grub2에서 다음을 로드해 보십시오:

  • lspci
  • PCI 덤프
  • PCI
  • PCI 설정

원천:http://www.linux.org/threads/understanding-the-various-grub-modules.7535/

답변3

UEFI가 아닌 PC(BIOS LEGACY)에서 Linux 또는 Windows가 포함된 USB 3.0 드라이브에서 PCI-E를 통해 부팅하는 유일한 방법은 USB 스틱에 시스템을 설치하는 것입니다. 예를 들어 USB 2.0(기본 드라이브 역할을 함)을 통해 부팅 채널), 그런 다음 PCI-E USB 3.0 연결에서 작동할 최종 드라이브에 운영 체제를 복제합니다.

USB 2.0 USB 스틱에서 운영 체제를 부팅하면 UUID를 통해 PCI-E의 USB 3.0 연결 드라이브를 자동으로 호출합니다.

관련 정보