Linux 파티션의 부트 섹터가 비어 있는 이유는 무엇입니까?

Linux 파티션의 부트 섹터가 비어 있는 이유는 무엇입니까?

나는 Linux 시스템이 주로 GPT 하드 디스크의 마스터 부트 레코드에 저장된 부트 로더로 GRUB 2를 사용한다는 것을 알고 있습니다. 그러나 각 파티션에는 자체 볼륨 부트 레코드 또는 파티션 부트 레코드가 있습니다.이 링크, 다음 정보를 찾았습니다.

부트 섹터는 다른 파티션의 컨테이너인 확장 파티션을 제외하고 하드 디스크 파티션의 첫 번째 섹터입니다. 부트 섹터는 512바이트의 공간을 제공하며 이 파티션에서 운영 체제를 부팅할 수 있는 코드를 포함하기 위한 것입니다. 포맷된 DOS, Windows 및 OS/2 파티션의 부트 섹터가 바로 이러한 작업을 수행합니다(게다가 파일 시스템 구조에 대한 일부 기본 데이터도 포함함).

대조적으로, Linux 부트 섹터는 파티션이 비어 있습니다(파일 시스템이 생성된 후에도). 따라서 Linux 파티션에 커널과 유효한 루트 파일 시스템이 포함되어 있어도 자체적으로 부팅할 수 없습니다. 유효한 시작 코드가 있는 부트 섹터에는 마지막 2바이트(AA55)에 MBR과 동일한 매직 번호가 포함되어 있습니다.

Linux가 파티션 부트 섹터에 아무 것도 쓰지 않는 이유는 무엇입니까?

답변1

당신이 틀렸어요. 그렇지 않아요. grub-install거기에 쓰라고만 하면 됩니다.

이 작업을 완료하면 해당 부트 섹터에서 부트로드를 연결할 수 있습니다.

새 설정에서 기본적으로 파티션에 쓰지 않는 주된 이유는 BIOS가 파티션을 찾을 수 없고 부팅 디스크의 부팅 섹터에 일부 부트 로더가 여전히 필요하기 때문입니다.

그러나 이렇게 하면 몇 가지 이점이 있습니다. 예를 들어 두 가지 버전의 Linux가 설치된 경우 부트 섹터를 쓰지 않은 버전의 커널을 업그레이드해도 새 버전의 grub 메뉴가 업데이트되지 않습니다. 다른 버전을 재부팅하고 update-grub거기서 실행하세요). 해당 버전을 링크 로드하면 첫 번째 메뉴에서 실행하도록 선택한 후 업데이트된(두 번째) grub 메뉴를 거치게 됩니다.

관련 정보