대부분의 배포판이 UEFI와 grub을 연결하는 이유는 무엇입니까?

대부분의 배포판이 UEFI와 grub을 연결하는 이유는 무엇입니까?

대부분의 배포판은 UEFI 시스템에 추가 부트로더를 설치합니다. UEFI 자체는 다양한 운영 체제나 개별 커널을 선택할 수 있는 메뉴를 제공하는 부트로더입니다. 또한 efibootmgr.

3.3 이후의 커널은 EFI_STUB를 지원합니다. 즉, UEFI에서 커널을 직접 로드할 수 있습니다. 배포판이 추가 부트로더를 사용하기로 결정한 이유는 무엇입니까? Linux/UEFI에 대한 대부분의 튜토리얼은 EFI_STUB를 사용하여 Linux를 부팅하는 대신 추가 부트 로더(rEFInd, grub2, ELILO 등)를 설정하는 데 중점을 둡니다.

배포판에서 누락된 유일한 것은 지원입니다. 대부분의 배포판은 두 번째 부트 로더에 연결되므로 커널은 UEFI 부팅 메뉴에 추가되지 않으며 EFI 시스템 파티션에 복사되지 않습니다.

세 가지 스크립트만으로도 모든 마법을 실현할 수 있습니다. initramfs를 ESP에 복사하는 방법입니다. 두 번째는 커널을 ESP에 복사하고 UEFI 부팅 메뉴에 새 항목을 생성합니다. 세 번째 스크립트는 ESP에서 이전 커널과 initramfs를 제거하고 UEFI 부팅 메뉴 항목을 제거합니다. 이를 통해 사용자 상호 작용 없이 완전히 자동화된 커널/initramfs 업데이트/정리가 가능합니다. 나는 이 방법을 1년 넘게 사용해 왔고 완벽하게 작동합니다.

대부분의 배포판에서 EFI_STUB 대신 grub을 사용하는 이유는 무엇입니까?

링크:

편집: 저는 grub 지원을 완전히 제거하는 것에 대해 말하는 것이 아니라 다양한 이유로 grub 지원을 사용하려는 사람들에게 옵션을 제공하는 것에 대해 이야기하고 있습니다. 배포판에서는 grub-efiUEFI와 Grub을 연결하려는 사람들을 위한 패키지뿐만 아니라 efistub-boot위에서 언급한 스크립트가 포함된 패키지도 제공할 수 있습니다.

답변1

UEFI만 해당된다는 점을 고려하면2005년 정의이 사양을 지원하지 않는 오래된 장치가 많이 있습니다. 표준 배포판에 UEFI를 추가하려면 하나가 아닌 두 개의 코드 경로를 테스트해야 하며, 시작 코드는 매우 까다로울 뿐만 아니라 테스트하는 데 가장 짜증나고 시간이 많이 걸리는 코드 조각 중 하나입니다.

답변2

배포에 자원이 제한되어 있다는 것 외에는 다른 이유가 없을 수 있습니다. 아마도 매우 간단하고 안전할 것입니다.더 많은 유지 관리가 필요합니다UEFI가 아닌 시스템에만 적용 가능한 경우 grub 옵션을 유지해야 하기 때문입니다.

나는 모든 사람들이 distro가 채택하기를 원하는 기능과 옵션 목록을 가지고 있을 것이라고 확신합니다(몇 페이지를 제공하겠습니다, 하하). 그리고 의심할 여지 없이 그 중 많은 것들이 "완전히 간단하고 번거롭지 않습니다. 솔직히 말하자면. … ". 그러나 이를 구현하는 데 필요한 작업 시간은 무제한이 아닙니다. 이와 같은 결정("다른 기능 대신 이 기능에 작업을 투입합니까?")에 직면했을 때 주요 질문은 다음과 같습니다.

  • 그게 필요 할까? (여기서 대답은 '아니요'입니다.)
  • 얼마나 많은 사람들이 혜택을 받을 것이며, 얼마나 혜택을 받을 것인가? (IMO: 일부이지만 많지는 않음)
  • 우리가 아무것도 하지 않고도 사용자가 스스로 적응할 수 있는 합리적인 대안이 있습니까? (분명히 존재합니다.)

사람들이 배포판을 사용하는 이유는모든 사람리소스가 제한되어 있습니다(그렇지 않으면 팀을 고용하여 공간과 장비를 구입하고 원하는 방식으로 모든 작업을 수행하도록 하세요). 그래서 현실은 분포가 반영된다는 것입니다.일반화사용자의 요구.

즉, 나는 이것이 시간이 지나면 옵션으로 채택될 것이라고 생각하며 이 문제에 대해 찬성표를 던졌습니다.

답변3

Grub 외에 UEFI 부트로더를 대상으로 하면 품질 관리 및 지원이 복잡해집니다. grub은 무료 소프트웨어이고, 해킹 가능하고, 더 유연하고, 고품질이기 때문에 이러한 배포판은 UEFI 사양이 아닌 grub을 대상으로 합니다. 튜토리얼을 따르고 여기에 UEFI 파티션을 설치하면 순수 UEFI 부팅을 얻을 수 있습니다 /boot. 그렇게 하면 유지 관리 비용이 발생하기 때문입니다.

답변4

진짜 문제는 사람들이 그것이 어떻게 작동하는지 이해하지 못한다는 것입니다. 예를 들어, 귀하의 질문에서 세 개의 스크립트가 필요하다고 언급하셨는데, 여기에 있는 대부분의 답변은 작동하는 데 필요한 모든/추가 유지 관리에 관한 것입니다. 그러나 실제로는 해당 스크립트나 추가 작업이 필요하지 않습니다.

필요한 것은 ESP(또는 커널을 유지하려는 위치)를 바인드 마운트하는 것뿐입니다. /boot단 한 줄로 이 작업을 수행할 수 있습니다 /etc/fstab. 이렇게 하면 현재의 모든 커널 업데이트 스크립트가 계속 작동합니다.

내 "/etc/fstab"은 다음과 같습니다:

LABEL=ESP /esp vfat defaults 0 2
#
#^ i like a separate mount point - not necessary though
#
/esp/EFI/arch_root /boot none bind,defaults 0 2
#
#^ i keep separate installations in separate directories
#

하지만 여기에는 제조업체별 설정에 대한 좋은 점이 있습니다. UEFI분명히하다아니요시작 메뉴의 인터페이스를 지정합니다. 이것은 잡기 위한 것이며 기계 간에 일관성이 없습니다. 짜증나는 일이지만 사실이다.

그래서 비록짐을 싣는 사람예를 들어 grub실제로는작업하려면 rEFInd와 같은 메뉴 앱을 사용하여 차이점을 없애고 모든 것을 단순화할 수 있습니다.

관련 정보