대부분의 배포판은 UEFI 시스템에 추가 부트 로더를 설치합니다. 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-efi
UEFI와 grub을 연결하려는 사람들을위한 패키지와 efistub-boot
위에서 언급 한 스크립트를 포함 하는 패키지를 제공 할 수 있습니다.
답변
UEFI가 2005 년 에만 정의 되었다는 점을 감안 하면 사양을 지원하지 않는 많은 레거시 장비가 있습니다. UEFI를 표준 배포판에 추가하려면 하나 대신 두 개의 코드 경로를 테스트해야하며 부트 코드는 악명 높을뿐만 아니라 테스트하는 데 약간의 시간이 소요되는 코드를 짜증나게합니다.
답변
배포판에는 리소스가 제한되어 있으며 그 이상의 이유는 없습니다. UEFI 시스템이 아닌 시스템의 경우 grub 옵션을 유지해야하므로 더 간단하고 안전 할 수 있지만 더 많은 유지 보수 작업이 필요한 경우에도 마찬가지입니다.
나는 모든 사람들이 배포판이 채택하고 싶어하는 기능과 옵션 목록을 가지고 있다고 확신합니다 (몇 페이지를 줄 것입니다, lol). .. “. 그러나이를 구현하는 데는 무한한 시간이 없습니다. 이와 같은 결정에 직면 할 때 ( “우리는 다른 것에 비해이 기능에 작업을합니까?”) 주요 질문은 다음과 같아야합니다.
- 그게 필요 할까? (여기서 대답은 없습니다).
- 얼마나 많은 사람들이 혜택을받을 것입니까? (IMO : 몇 개, 많지 않은)
- 사용자가 아무것도하지 않고 자신을 수용 할 수있는 합리적인 대안이 있습니까? (분명히 있습니다.)
사람들이 배포판을 전혀 사용하지 않는 이유는 모든 사람 이 리소스 제약을 받기 때문 입니다 (그렇지 않으면 팀을 고용하고 공간과 장비를 구입하고 원하는대로 정확하게 모든 것을 수행하도록하세요). 따라서 실제 배포판은 사용자 의 일반화 된 요구를 반영합니다 .
즉, 시간이 지남에 따라 옵션으로 채택 될 것이라고 생각하며 질문에 찬성했습니다.
답변
grub 외에도 UEFI 부트 로더를 대상으로 지정하면 품질 관리 및 지원이 복잡해집니다. grub은 자유 소프트웨어, 해킹 가능, 더 유연하고 고품질이기 때문에 배포판은 UEFI 사양이 아닌 grub을 대상으로합니다. 튜토리얼을 따르고 UEFI 파티션을 마운트하여 순수 UEFI 부팅을 계속할 /boot
수 있습니다. 그렇게하면 유지 관리가 완료되기 때문입니다.
답변
실제 문제는 사람들이 그것이 어떻게 작동하는지 이해하지 못한다는 것입니다. 예를 들어, 귀하의 질문에 3 개의 스크립트 만 있으면 충분하며 여기에 대한 대답은 대부분 작동하는 데 필요한 모든 / 추가 유지 보수에 대한 것입니다.하지만 실제로는 해당 스크립트가 필요하지 않습니다 또는 추가 작업.
필요한 것은 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와 같은 메뉴 응용 프로그램은 차이점을 동일하게하고 모든 것을 단순화합니다.
답변
그들은 UEFI와 GRUB을 임시 구현 솔루션으로 연결합니다.
UEFI 지원 및 관련 문제 (예 : 보안 부팅)가 해결되면 점점 더 많은 배포판에서이를 직접 사용할 것입니다. 그 동안은 여전히 새롭습니다. Google 트렌드는 다소 제한된 채택을 보여줍니다. http://www.google.com/trends/explore?q=cannot+boot+uefi#q=uefi%2C%20%20efi%2C % 20 % 20bios & cmpt = q
다른 사람들은 순수한 UEFI 솔루션을 사용하거나 비 UEFI 및 순수한 UEFI 시스템을 동시에 지원하는 잠재적 인 함정을 언급했습니다. UEFI 커널은 비 UEFY 시스템에서 작동 할 수 있지만 커널 업데이트 도구는 GRUB 메뉴 또는 UEFI 부팅 메뉴 또는 둘 다 등을 업데이트해야합니다.
실제로 언급 된 품질 관리에 관한 것입니다.이 코드의 중요한 문제는 큰 영향을 미칩니다. 컴퓨터가 새로운 사용자를 부팅하지 못하는 경우 (예 : 잠재적 인 Linux 변환),이를 가비지로 버리고 “안전한”것으로 돌아갑니다.
그러나 기술이 더 많이 채택됨에 따라 표준이 될 것입니다.
답변
펌웨어 버그를 해결하려면 추가 코드가 필요합니다
grub을 연결하지 않으면 배포가 펌웨어에 더 의존하여 올바르게 부팅됩니다. 모든 소프트웨어에 문제가 있기 때문에 펌웨어도 그 경향이 있습니다. 이제 Linux 배포판에서 이러한 펌웨어 버그를 해결하기 위해 작성해야합니다.
실제 사례를 예로들 수 있습니다. Asrock H81 pro BTC P1.80 마더 보드는로 부팅 메뉴 항목을 생성 할 수 있습니다 efibootmgr
. 부팅 메뉴 항목을 여러 개 만들 수 있으며 부팅 순서를 사용하여 변경 efibootmgr --bootorder XXXX,YYYY,ZZZZ
하거나 임시 다음 부팅 옵션을 사용하여 설정할 수 있습니다 efibootmgr --bootnext XXXX
. 이 명령 모두 출력을 반환하여 부팅 순서가 변경되었거나 다음 부팅이 실행될 것이라는 아이디어를 제공합니다 BootNext: XXXX
. 그러나 재부팅시 완고한 펌웨어는 새로 요청 된 부팅 옵션을 무시하고 이전 BootCurrent:
값 으로 재부팅 합니다. 영구 부팅 순서 변경은 펌웨어 설정 유틸리티에서만 가능합니다. 영구적이지 않은 변경은 전혀 가능하지 않습니다.
답변
부팅이 EFI에 의해서만 이루어지고 부트 로더를 제거하면 하드웨어 공급 업체와 운영 체제 제조업체 모두에게 어려움을 겪을 것이라고 생각합니다. HW 공급 업체는 테스트 할 커널이 더 많지만 OS를 만드는 회사의 경우 커널이 다른 FW에 의해로드되는지 여부와 같습니다.
또한 EFI에서 커널을 직접 부팅하면 스택 보안 부팅의 어느 부분에 적합합니까? 현재 시나리오에서 일단 제어가 OS 부트 로더로 이동하면 부트 로더는 커널이 올바르게 서명되었는지 여부를 확인합니다. EFI에서 직접 커널을로드하는 경우 전체 스택이 방해를 받기 때문에 엉망이 될 것이라고 생각합니다. 내가 이해 한 것에 대한 의견.