GRUB이 최고의 부트 로딩 솔루션입니까? 더 쉬운 대안이 있습니까? 것처럼 보이는)

에 대해 다소 나쁜 경험을했습니다 GRUB2. 내가 말할 수있는 (그리고 말했다) 의 설계 및 개발 프로세스에 대한 성가신 일. 특히 업데이트 방법이 마음에 들지 않습니다. 어떤 이유로 든 여러 커널을 체인에서 다른 스크립트를 통해 간접적으로 업데이트하거나 모든 커널 업데이트에 대해 또는 다른 많은 사소한 (그리고 관련이없는 것처럼 보이는) 구성 변경을 반자동으로 업데이트해야합니다 .

이것은 LILO문제가 없었기 때문에 되돌릴 것을 진지하게 고려 했던 이전의 경험과 직접 대조되며 구성은 매우 간단합니다. 우선, 내가 기억하는 것처럼 커널 업데이트마다 간단하게 관리되는 단일 구성 텍스트 파일 업데이트 하거나 업데이트해야했습니다.

그렇다면 LILO는 오늘날 커널을 사용하여 최신 하드웨어에서 어떻게 작동합니까? GRUB는 어떻습니까? 다른 부트 로더는 어떻게합니까? 전제 조건을 충족해야합니까, 아니면 lilo구식으로 마음에 들었던대로 구성 파일을 작성하고 명령을 실행하는 것입니까? 커널 패키지 업데이트 (Debian / Ubuntu)는 GRUB2와 마찬가지로 LILO를 업데이트합니까?



답변

엘리로

Linux 용 EFI 부트 로더 관리 : ELILO 사용

복사 / 붙여 넣기 할 부분을 결정하는 것은 정말 어렵습니다. 모두 정말 좋기 때문에 읽어 주시기 바랍니다.

로드 스미스

저작 모두를 유지 gdisk하고 rEFInd.

그러나 당신이하기 전에 나는 그것에 대해 조금 언급하고 싶습니다. 위의 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을 읽으 십시오 .


답변

GRUB2 대신 LILO를 사용합니다. 솔직히 말해서, 그것은 내가 선택한 것이 아닙니다. GRUB2 설치는 데비안 라이브 CD 설치 프로그램에서 실패했지만 LILO를 설치하는 옵션이 성공했습니다. 데비안 스 테이블을 실행하는 2 살짜리 노트북이 있습니다. LILO는 완벽하게 작동합니다.


답변

LILO는 여전히 입니다 심지어 UEFI 바이오스와 함께 사용 가능. UEFI는 일반적으로 Linux 커널을 직접로드 할 수 있습니다. 그러나 이것은 UEFI 자체에 달려 있습니다.

그러나 부팅 선택 화면이 필요한 경우, 예를 들어 한 시스템에서 여러 OS로 부팅하는 경우 작은 부트 로더가 유용 할 수 있습니다.

그래도 EXTLINUX 를 사용하는 것이 좋습니다. SYSLINUX의 변형이지만 ext유형 파티션에 상주 합니다.

EXTLINUX의 장점은 LILO보다 확장 성이 뛰어나고 더 많은 옵션이 있지만 간단하고 적극적으로 관리 할 수 ​​있다는 것입니다.


답변

에 해당하는 내용이 기억 나지 않습니다 update-grub. 그러나 데비안에서는 여전히 지원되는 오래된 시스템이 있습니다. (내 ARM 서버에서 uboot에 사용됩니다).

가장 최근의 커널은에 링크되어 /boot/vmlinuz있고 initrd에 /boot/initrd.img있습니다. 커널 패키지에 의해 업데이트됩니다. 부트 로더는 각 부트의 심볼릭 링크를 가리 킵니다.

따라서 복구 옵션을 얻지 못할 수도 있습니다. 어쨌든 이것은 가장 널리 테스트 된 옵션이 아니므로 부팅 디스크를 🙂 주위에 두는 것이 더 좋습니다.


업데이트 : 당신의 목표가 현대 컴퓨터에서 문자 그대로 LILO를 실행하는 것 이외의 것이면, 다른 답변에 설명 된 것처럼 더 나은 대안이있을 것입니다 :).

위의 내용은 원래 BIOS 기반 버전의 LILO에만 적합합니다. 동일한 메뉴에서 Windows 8을 안전하게 부팅하거나 부팅하지 않으려는 경우 최신 하드웨어는 EFI 위에 BIOS 호환성을 제공합니다. 이론적으로 ELILO는 작동하지만 보안 부팅 또는 Windows 8 로딩을 지원하지 않습니다. ELILO는 더 이상 일반적으로 의미가 없으므로 내 커뮤니티가 많지 않습니다.