/dev/sda1 파티션에서 VBR을 어디에서 찾을 수 있습니까?

/dev/sda1 파티션에서 VBR을 어디에서 찾을 수 있습니까?

다음과 같은 내부 하드 드라이브가 있습니다 /dev/sda.

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00042134

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   293048319   146523136   83  Linux
/dev/sda2       293050366   312580095     9764865    5  Extended
/dev/sda5       293050368   312580095     9764864   82  Linux swap / Solaris

xxd /dev/sda | less이제 첫 번째 섹터에 있는 MBR을 쉽게 찾을 수 있습니다 . ~에 따르면위키피디아내 경우에는 VBR이 첫 번째 부팅 가능한 파티션의 첫 번째 섹터에 있어야 했습니다 /dev/sda1. 하지만 첫 번째 섹터에서 /dev/sda1실행하면 0만 표시됩니다 xxd /dev/sda1 | less.

실제로 GRUB 바이너리를 그곳에서 찾고 싶은데 어디에 있을까요?

답변1

일반적으로 거기에는 설치되어 있지 않습니다. 대부분의 경우 GRUB(첫 번째 단계)는 MBR에 설치됩니다.오직, 리눅스에서는.

GRUB 버전 1은 항상 MBR(1.5단계, 파일 시스템 드라이버) 이후 30kB에서 약간 오버플로되었지만, GRUB 버전 2를 사용하면 MBR에 설치된 코드가 원시 읽기 코드(1.5단계)를 통해 다른 더 큰 코드를 로드할 수 있습니다. 섹터에 저장됩니다(그러나 일반적으로 GRUB 1 동작을 따릅니다. 즉, MBR 이후 30kB에서 코드를 로드합니다).

이 30kB는 일반적으로 분할되지 않은 "여유" 디스크 공간으로 사용할 수 있습니다.역사적 이유디스크의 첫 번째 파티션이 섹터 63 이전에 시작되어 MBR 이후에 최소 512*62 = 31kiB가 남는 경우는 매우 드뭅니다.

/boot그런 다음 일반적 으로 메뉴( menu.lst또는 grub.cfg파일 시스템 드라이버), 추가 파일 시스템 드라이버 등과 같은 메뉴에서 일부 파일을 로드합니다. 이것이 2단계입니다.

그 후에는 운영 체제를 부팅하는 것으로 충분합니다.

현재 VBR의 경우, 그것충분히 신뢰할 수 없기 때문에 Linux 파티션에서는 일반적으로 사용되지 않습니다., 그러나 MS Windows에서는 일반적으로 시스템(C:\) 파티션의 시작 부분에 설치합니다. Windows를 부팅하려면 GRUB가 이를 수행합니다. 이 프로세스를 체인 로딩이라고 합니다. 하나의 부트로더가 다른 부트로더를 시작합니다. 이는 또한 거기에서 사용되는 파일 시스템을 의미합니다.~ 해야 하다그렇지 않으면 VBR을 덮어쓸 수 있으므로 파티션의 시작 부분을 변경하지 않고 그대로 두십시오! 사용 가능한 "손길이 닿지 않은" 공간의 양은 파일 시스템에 따라 다르므로 좋은 보장은 없습니다. 매우 작을 가능성이 높습니다.

"특이한" 장소에서 스테이지 1.5 로딩 정보앞서 말했듯이 GRUB 2는 디스크의 모든 섹터에서 스테이지 1.5를 로드할 수 있습니다. 파일에서 올 수도 있지만 언제든지 파일 시스템이 파일을 디스크의 다른 섹터로 이동하기로 결정할 수 있고(더 나쁘게는 조각화할 수도 있습니다!) GRUB가 새 섹터 번호를 업데이트해야 하기 때문에 이는 위험할 수 있습니다. MBR때마다...

흥미로운 사례는GUID 파티션 테이블(GPT). 스테이지 1.5에 항상 충분한 공간(30kB)을 확보하기에는 너무 큽니다. 이 경우 권장되는 해결 방법은 파일 시스템이 아닌 GRUB 데이터의 1.5단계를 호스팅하는 전용 "부트 로더 파티션"(GPT가 128개의 파티션을 지원할 수 있으므로 문제가 되지 않음)을 사용하는 것입니다. 이렇게 하면 움직이지 않고 충분한 공간을 확보할 수 있습니다.

너 정말 읽어야 해Wikipedia의 GRUB 기사나는 대부분의 정보를 어디서 얻나요?

답변2

실제로 GRUB2는 일반적으로 VBR에 설치되지 않습니다. 이 관행에 반대하는 것이 좋습니다.

이는 /boot의 파일 시스템 모듈을 묶을 공간이 충분하지 않은 것과 같습니다. 역사적으로 MBR 디스크는 이러한 부팅 코드를 위해 62개의 "예약된" 섹터를 제공했습니다. (첫 번째 파티션이 실린더 경계에서 시작하기 때문입니다. 이제 실린더를 무시하지만 4K 섹터 드라이브 지원, SSD/RAID 지원 등을 위해 전체 메가바이트로 정렬됩니다.) VBR에서는 그렇게 좋은 보장을 얻지 못합니다.

GRUB2의 메시지에서는 VBR(파티션) 설치가 모듈(예: 파일 시스템 드라이버)의 블록 번호 저장에 의존해야 한다고 설명합니다. 이는 신뢰성이 떨어집니다.가지다이러한 모듈 파일은 업데이트 시 다시 설치해야 합니다.

관련 정보