![MBR 활성 파티션의 목적은 무엇입니까?](https://rvso.com/image/1592544/MBR%20%ED%99%9C%EC%84%B1%20%ED%8C%8C%ED%8B%B0%EC%85%98%EC%9D%98%20%EB%AA%A9%EC%A0%81%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
UEFI에서 부트로더를 부팅하는 개념은 .efi
부트로더를 EFI 시스템 파티션에 배치하는 것처럼 간단하고 간단합니다. 그런 다음 파일 .efi
은 해당 운영 체제를 로드합니다. 그러나 OS를 부팅하기 위해 MBR에 활성 파티션이 필요한 이유를 여전히 알 수 없습니다.
지금까지의 연구에 따르면 MBR 부트스트랩 코드는 디스크의 첫 번째 446바이트에 있으며 POST 후에 BIOS에 의해 자동으로 실행됩니다(디팩터 표준으로). OS를 직접 로드할 수 있지만 대부분의 경우 코드가 너무 작아서 주요 작업은 다른 파티션 어딘가에 있는 실제 부트로더를 로드하는 것입니다.
파티션을 부팅하려면 왜 파티션을 활성으로 설정해야 합니까? 이론적으로 MBR 부트스트랩 코드는 원하는 곳 어디에서나 무엇이든 실행할 수 있습니다.
답변1
파티션을 부팅하려면 왜 파티션을 활성으로 설정해야 합니까? 이론적으로 MBR 부트스트랩 코드는 원하는 곳 어디에서나 무엇이든 실행할 수 있습니다.
예, 실제로는 MBR 부트스트랩 코드가 바로 그 일을 하는 경우가 많습니다.
하지만 부트스트랩 코드에는일부부트로더의 다음 단계가 저장된 위치를 찾는 방법입니다. (전체 부트로더는 결코 446바이트가 아닙니다. MBR은 단지 1단계일 뿐입니다.)
MBR 파티션 테이블을 구문 분석하고 '활성' 플래그를 찾는 부트 섹터를 갖는 것은 이 문제에 대한 매우 다양한 솔루션이 됩니다. 이를 통해 완전히 정적인 부트 섹터(생성하는 데 특별한 도구가 필요하지 않음)를 허용하고 모든 부트 섹터를 수행할 수 있습니다. 따라서 모든 OS에서 동일하게 잘 작동합니다.
예를 들어,시스리눅스MBR 부트섹터는 Windows MBR 부트섹터와 완전히 상호 교환 가능한 것으로 보입니다. Linux와 Windows를 이중 부팅하는 경우 어떤 부트 섹터를 가지고 있는지는 중요하지 않습니다. 둘 다 동일한 작업을 수행하므로 언제든지 '활성' 비트를 OS로 교체할 수 있습니다. (그리고 부트섹터를 설치하는 것은 단지 mbr.bin을 원시 디스크에 복사하는 것뿐입니다.)
그러나 부트로더마다 접근 방식은 확실히 다릅니다. 예를 들어 인기 있는 Linux GRUB2는 "MBR 이후 간격"에 두 번째 단계를 저장하고 해당 위치에 따라 부트스트랩 코드를 동적으로 생성합니다. 즉, MBR 부트섹터는 두 번째 단계가 어느 LBA에서 시작하는지 알고 있으며(파티션 테이블과 '활성' 플래그를 완전히 무시함) 이는 디스크마다 다를 수 있으므로 부트섹터는~ 해야 하다grub-install
각 디스크에 대해 개별적으로 프로그램 에 의해 기록됩니다 .
(GRUB2는 일반적으로 파티션 VBR을 사용하지 않습니다.~할 수 있다"체인로드", 일반적인 구성은 실제로 실제 파일 시스템에 직접 액세스하고 OS 커널 파일을 로드합니다.)
답변2
보다 Wikipedia 마스터 부트 레코드 MBR 형식의 역사에 대한 정보를 보려면
기본적으로 활성 파티션의 필요성은 초기 IBM/DOS 부트로더의 설계 선택이며 그 이후로 계속 유지되었습니다.
이러한 초기 부트로더는 MBR의 내장 파티션 테이블에서 파티션 목록을 검색하여 활성 플래그로 표시된 유일한 파티션을 찾은 다음 이 활성 파티션의 VBR(볼륨 부트 레코드)을 로드하고 실행했습니다.
이는 영원히 살아남은 IBM PC 수명의 또 다른 초기 디자인 결정일 뿐이며, 일부 초기 개발자 팀의 결정(아마도 한 사람만이 내린 결정) 외에 다른 이유는 없습니다.