Grub2 MBR 대 Windows MBR


4

Vista가 설치된 HP 시스템과 숨겨진 복원 파티션이 있습니다. Win7 (32 비트) Ultimate으로 업그레이드 한 후 Win7 Pro로 업그레이드했습니다. 이제 하드 드라이브가 고장났습니다. 저는 Win7 파티션의 냉동 장치 기반 복구를 준비하기 위해 partage를 사용하여 얼음 조각에 넣기 전에 오류없이 복구 파티션을 잡았습니다.

다른 드라이브에 3 개의 주 파티션과 하나의 확장 파티션을 만들었습니다.

  1. 복구 파티션 (NTFS)
  2. Win7 파티션 (NTFS)
  3. 우분투 루트 (ext4)
  4. 우분투 스왑 (ext4) (논리 파티션)

다음으로 우분투 10.4를 설치하고 grub2가 MBR을 설치하도록 허용합니다. 그런 다음, partimage를 사용하여 장애가 발생한 드라이브를 제거한 이미지로 복구 파티션을 채 웁니다. 이제 Win7 파티션을 복구하기 전에 기존 복구 파티션에 액세스 할 수 있는지 확인하고자합니다. 그리고 나는 할 수 없다. 파일을 볼 수는 있지만 부팅 할 수는 없습니다. Grub은 그것을 Windows partiton으로보고 메뉴에 나열합니다. 그러나 시도하고 부팅 할 때 깜박이는 커서가있는 빈 화면을 응시합니다. gparted를 사용하여 복구 파티션을 활성화하고 직접 부팅하는 대신 grub를 사용하지 않고 grub를 우회하려고했지만 grub로 부팅합니다.

그래서 그 배경으로 내 질문을 던져 보자.

  1. 내가 알기에 표준 IBM / WIndows MBR 코드는 활성 / 부팅 플래그가 설정된 첫 번째 주 파티션을 파티션 테이블에서 찾은 다음 해당 파티션의 시작 부분에서 찾은 코드로 제어를 이전합니다. 또는 "파티션 부팅 기록 "(PBR). 그런 다음 PBR은 NTLDR / BOOTMGR / grub / etc를 찾아로드합니다. 내 이해가 맞습니까?
  2. 부팅 프로세스에서 인터럽트 키 (HP의 경우 f11)가 복구 파티션으로 부팅되는 위치는 어디에서 처리됩니까? MBR? PBR? 부팅 관리자 / 로더?
  3. grub이 MBR을 쓸 때 나머지 트랙 0을 사용하는 것으로 보이며 MBR 코드는이 코드를 실행하여 어떤 구획의 그루브 코드를로드할지 결정합니다 (내 케이스 3에서는). 이 의미에서 그것은 파티션 테이블의 활성 / 부팅 가능 플래그를 무시합니다. 내가 이것을 정확하게 이해 했는가?

복구 파티션을로드 할 수 없기 때문에 분명히 여기 일부 조각이 누락되었습니다. 내가 grub "chainloader"(왜 +1?) 명령은 그냥 PBR 코드를 exec 것이라고 생각합니다. 이것이 사실이라면 복구 파티션의 내용물이 묶입니다.


너가 땅보라를 설치했다면 나는 생각한다. 복구 파티션을 채우면 복구가 나열됩니다. 이 경우 복구를 보지 못했습니다. 1) grub를 업데이트하지 않았거나 2) grub이 첫 번째 부팅 파티션 (즉, Windows 7 중 하나가 2 번째로 잘못 명시한 파티션)을 찾았 으면 검색하지 못했기 때문입니다.
jiggunjer

답변:


3

이러한 복구 파티션이있는 시스템에서는 일반적으로 활성 파티션이 복구 파티션입니다. 복구 파티션은 "Press F11"메시지를 표시하고, 누르지 않으면 주 OS 파티션으로 전달됩니다.

MBR은 본질적으로 바보입니다. 모든 작업은 파티션 중 하나를 선택하고 해당 파티션의 VBR로 전달합니다.

linux / windows 이중 부팅을 원한다면 복구 파티션은 GRUB 파티션으로 포워딩해야합니다. 그러면 GRUB 파티션이 옵션을 허용하고 Windows가 선택되면 Windows로 전달합니다.

복구 파티션으로 시간을 낭비하지 않아도됩니다. HP의 웹 사이트에서 모든 드라이버를 구할 수 있습니다. 이미 상자에 7 개가 있으면 Vista로 되돌리려는 것에 동의 할 수 있다고 생각합니다.

그래서, 당신의 구체적인 질문에.

  1. 예, 이해가 정확합니다.
  2. 위에 답변 됨
  3. MBR에 설치할 때 GRUB이 무엇을하는지 명확하게 알지 못합니다. 내 이해를 위해 비즈니스 로직을 거기에 넣지는 않았지만 잘못 될 수 있습니다.

희망이 도움이 :)


빌리 고마워. 복구 파티션을 원하는 이유는 Win7이 업그레이드 복사본이므로 재설치해야하기 때문에 필자는 필자가 필요할지도 모른다고 생각했다. 원래 HP 빌드에서 활성 파티션이 무엇인지 확실하지 않습니다. 복원 파티션이 숨겨졌습니다. F11 키를 누르는 것에 대한 메시지는 표시되지 않았습니다. 나는 그것이 저온 챔버 (완두콩과 피자 롤 사이)에서 그것을 제거 할 때 MBR을 움켜 잡습니다.
NetWorker

메인 Win7 파티션은 디스크의 첫 번째 파티션이었고 활성화되었습니다. 따라서 복구 파티션으로 부팅되지 않았습니다.
NetWorker

0

질문 3 : 예, grub은 자체적으로 트랙 0에 넣습니다. 나는 개인적으로 mbr에 땅볼을 넣지 않습니다. 나는 항상 "정상적인"mbr을 사용하고 기본 파티션에 GRUB을 설치합니다.

사용중인 것으로 표시되지 않은 디스크 부분을 사용하는지 여부에 따라 문제가 발생할 수 있습니다. Windows Vista 및 7의 디스크 분할 프로그램은 이전 버전과 다르게 작동하지만 트랙 0의 예비 부품을 사용하는지 여부는 알 수 없습니다.

나는 프로그램의 시험 버전 (Adobe 무언가?)이 디스크의 해당 영역에 쓰기 때문에 (사람들이 반복해서 재판을 재설치하는 것을 막을 수 있기 때문에) 문제가있는 사람들이 최근에 들었습니다. (자세한 내용은 Ubuntu UK podcast의 최근 에피소드를 들어보십시오.) 내 의견은 똑같은 일을하는 다른 사람들에 대해 불평 할 수는 없다는 것입니다.

grub의 mbr 비트는 자신의 다음 단계의 물리적 디스크 주소를 자체 코드에 기록하고 파티션을 전혀 알지 못하거나 활성화하지 않습니다.


안녕하세요. 구형 파티션 맨이 첫 번째 실린더 만 완전히 남겨 두었다고 생각합니다. Vista +는 파티션을 1MB 경계에 정렬하여 형상을 모두 무시합니다. 따라서 이전보다 MBR 갭이 적습니다. 그래도 왜 파티션이 복원 파티션에 VBR chainloads 때 그냥 이해가 안 돼요. F11 비트가 처리되는 위치를 알고 싶습니다. 이 물건을 알아낼 수 없을 때 그냥 버그가 난다. 나는 사로 잡혔다.
NetWorker

0

MBR (1 섹터, 512 바이트)에는 부팅 코드와 파티션 테이블이 들어 있습니다. "기본"MBR 코드는 활성 주 파티션을 찾고 체인이이를로드합니다. (GRUB 용어에서, +1은 첫 번째 섹터, 즉 그 파티션의 부트 섹터를 의미합니다.)

GRUB을 MBR에 설치하면 기본 MBR 코드가 대체되어 (물론 파티션 테이블을 유지) 대신 "MBR 갭"에 설치된 나머지 GRUB 코어 이미지가로드됩니다. MBR 섹터 뒤에 오는 첫 번째 "트랙". GRUB을 파티션에 설치하면 부트 섹터로 GRUB을 설치합니다. 기본 MBR 코드 체인은 해당 GRUB 부트 섹터를로드합니다.

이것이 바로 여러분이 항상 GRUB을 실행하는 이유입니다. MBR의 코드가 수정 된 것입니다. 기본 MBR 코드를 약간 변형하여 복원 할 수 있습니다. fixmbr.

그러나 기껏해야 복구 파티션에 대한 이미지가 좋으며 바닐라 MBR을 통해 액세스 할 수 있음을 증명합니다. 실제로 복구 파티션의 이미지가 좋지 않다는 것을 증명하면 GRUB을 통해 작동하지 않는 것이고, 정상적으로 작동하면 복구 파티션의 이미지가 좋을 수도 있습니다. 좋은 복사본을 만들 수 있다면 더 좋을 것입니다.

몇몇 기묘한 이유로 복구 파티션이 GRUB을 통해 부팅되지 않을 수도 있습니다. 복구 파티션의 필수 조건 인 원래의 MBR에 특별한 소스가있을 수 있습니다. 나는 그 (것)들을 가진 체계를 피했다, 그래서 나는 다량 통찰력을 거기 제공 할 수 없다.


Ken에게 감사드립니다. GRUB이 어떻게 설치되는지에 대해 제가 읽었던 다른 정보들을 확인할 수 있습니다. 가능한 경우 MS 부트 로더 프로세스가 작동하지 않도록하기 위해 MS 부트 로더 프로세스를 피하고 싶었습니다. 나는 복구 파티션의 완전하고 완전한 복사본을 가지고 있다고 확신하지만 내용은 조금 이상하다. bootmgr.exe가 보이지 않지만 bootmgr과 boo.mgr이 있습니다. 또한 "bcd"파일이있는 "부팅"디렉토리가 있습니다. 나는 VBR을 버렸고 마치 비스타 이전 버전처럼 보입니다. 오류 문자열에 BOOTMGR이 아닌 "NTLDR"이 포함되어 있기 때문에 그렇게 말합니다. 이상한.
NetWorker

"GRUB을 파티션에 설치하면 부트 섹터로 설치되고 기본 MBR 코드 체인은 해당 GRUB 부트 섹터를로드합니다." 또는 MBR을 업데이트하여 부팅 가능한 여러 파티션이있는 경우에만 그렇게하십시오.
jiggunjer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.