엘리로
복사 / 붙여 넣기 할 부분을 결정하는 것은 정말 어렵습니다. 모두 정말 좋기 때문에 읽어 주시기 바랍니다.
로드 스미스
그러나 당신이하기 전에 나는 그것에 대해 조금 언급하고 싶습니다. 위의 ELILO 링크는 Rod Smith가 작성한 rodsbooks.com에서 찾을 수있는 UEFI 부팅의 여러 페이지 중 하나에 대한 링크 입니다. 그는 뛰어난 기술 저술가이며 UEFI 부팅 주제를 Google에서 검색하고 자신의 내용을 읽지 않은 경우 상위 몇 가지 결과를 건너 뛰었을 가능성이 큽니다.
리눅스 UEFI 부팅
기본적으로 Linux 커널은 펌웨어에 의해 직접 실행될 수 있습니다.
위의 링크에서 그는 리눅스 커널의 EFI 스터브 로더에 대해 언급합니다 . 이것은 펌웨어 커널이 직접 리눅스 커널을 호출 할 수 있기 때문에 사용해야한다고 생각합니다. 에 관계없이 당신이하고있는의 무언가를 펌웨어에 의해 실행되고있다 - 뭔가가있는 것처럼 그것은 소리 grub
. 펌웨어가 OS 커널을 직접로드 할 수 있다면 부트 로더는 무엇입니까? UEFI 펌웨어는 파티션 테이블에 의해 FAT로 포맷 된 GPT 파티션 플래그 esp 를 마운트하고 온보드 플래시 메모리 모듈에 UEFI 부팅 변수로 저장 한 경로를 실행합니다. 그래서 당신이 할 수있는 일은 리눅스 커널을 FAT 파티션에 놓고 그 경로를 그 부팅 변수에 저장하는 것입니다. 갑자기 커널 자체가 부트 로더.
부트 로더
UEFI 시스템에서 부트 로더는 중복입니다 (ELILO 포함).
부트 로더 문제는 BIOS 시스템이 부트 플래그 파티션 의 첫 번째 섹터에서만 읽고 실행한다는 것입니다. 512 바이트 커널로 의미있는 작업을 수행하는 것은 조금 어렵 기 때문에 가장 일반적인 방법은 실제 커널 을 유지 하고 체인로드하는 곳에 파일 시스템을 마운트 할 수있는 작은 유틸리티를 작성하는 것이 었습니다.
사실, 512 바이트는 부트 로더조차도 충분하지 않은 경우가 많습니다. grub
예를 들어, 커널 은 부트 로드하기 전에 파일 시스템의 첫 번째 섹터와 빈 공간에서 두 번째 단계 를 쐐기 때문에 커널을 체인로드하기 전에 실제로 체인로드됩니다 . 그것은 일종의 더러운 해킹이지만 작동했습니다.
부팅 관리자
쉬운 구성을 위해 일부 중간 기능이 유용 할 수 있습니다.
Rod Smith의 rEFInd가하는 일은 EFI 응용 프로그램으로 시작하는 것 입니다. 이것은 비교적 새로운 개념입니다. 디스크에 의해 실행되고 펌웨어로 돌아 오는 프로그램입니다. rEFInd의 기능은 부팅 메뉴를 관리 한 다음 부팅 선택 을 펌웨어 로 되돌려 실행하는 것입니다. UEFI 파일 시스템 드라이버와 함께 제공 되므로 예를 들어 FAT 가 아닌 파티션 (예 : current /boot
) 에서 커널의 EFI 스텁 로더를 사용할 수 있습니다 . 관리가 간단합니다 (이러한 것이 필요한 경우). 실행 가능한 시스템 커널의 단순성을 구성 가능한 부트 관리자의 편의성에 추가합니다.
원자 간접
커널은 심볼릭 링크를 필요로하지 않는다 mount --bind
.
당신의 모든 경로가 있다면 /
당신이 해야 허용 심볼릭 링크가 그 것이다 /boot
. 분리 된 심볼릭 링크 는 문제를 해결해야 할 문제 /boot
가 아닙니다 . 그럼에도 불구하고 전체 /boot
배포판 커널 업데이트 및 / 또는 다중 커널 구성을 처리하기 위해 끔찍한 아이디어 일지라도 여러 배포판 에서 정교한 간접 지시를 설정하는 것이 일반적 입니다.
FAT는 전체적으로 어리석은 파일 시스템이므로 파일 시스템 드라이버 (예 : rEFInd 패키지와 함께 제공) 를로드하도록 구성 되지 않은 EFI 시스템 의 문제 입니다 .
rEFInd와 함께 제공되는 UEFI 파일 시스템 드라이버를 개인적으로 사용하지는 않지만 대부분의 배포판에는 패키지 관리자를 통해 설치할 수있는 rEFInd 패키지가 포함되어 있으며 고유 한 심볼릭 링크 /boot
구성과 rEFInd의 패키지 된 UEFI 파일 시스템 드라이버를 사용하는 것을 잊어 버렸습니다 .
내 구성
한 번 그것에 지침을 작성하고 여기에 게시 했지만 다음과 같습니다.
% grep esp /etc/fstab &&
> ls /esp/EFI
LABEL=ESP /esp vfat defaults 0 1
/esp/EFI/arch_root /boot none bind,defaults 0 0
arch_root/ arch_sqsh/ arch_xbmc/ BOOT/ ipxe/
난 그냥 내에서 그 두 줄을 넣어 그래서 /etc/fstab
나는 새로운 리눅스 설치의를 포함하고자하는 폴더에 포인팅 /boot
하고 난 거의 모든 일에 대해 걱정 다. 나는 또한해야합니다 :
cat /boot/refind_linux.conf
"Arch" "root=LABEL=data rootflags=subvol=arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"
첫 번째 refind-efi
패키지를 통해 패키지를 설치하는 것 외에도 pacman
원하는만큼 많은 개별 설치 / 구성을 설정하는 데 필요한 전부입니다. 위의 문자열 대부분은 커널 매개 변수로 지정된 btrfs 특정 마운트 옵션으로 구성됩니다. 보다 일반적인 /boot/refind_linux.conf
것은 아마도 다음과 같습니다.
"Menu Entry" "root=/dev/sda2"
그리고 그것이 전부입니다.
rodsbooks.com
여전히 ELILO를 원한다면 위의 링크에서 설치 지침을 찾을 수 있습니다. rEFInd를 원하면 첫 번째 단락에서 링크를 찾을 수 있습니다. 기본적으로 UEFI 부팅 구성을 수행 하려면 먼저 rodsbooks.com을 읽으 십시오 .