여러 grub2 부트로더를 체인로드합니다.

여러 grub2 부트로더를 체인로드합니다.

상황은 다음과 같습니다. 4개의 파티션이 포함된 하드 드라이브가 있는 노트북이 있습니다.

  • 2 Windows의 경우: (hd0,1), (hd0,2) -> Windows 7의 경우
  • 2 Linux의 경우: (hd0,3), (hd0,4) -> Linux의 경우(논리 파티션).

현재의 "실제" 부트로더(MBR을 의미함)는 Windows 부트로더입니다. 나중에 나는grub2win특정 목적을 위해 이를 사용하여 (hd0,3)에 로드 grub2를 연결합니다.

grub.cfg에 추가한 항목은 다음과 같습니다.

menuentry 'Chainloader 3' {
   insmod chain
   set root=(hd0,3)
   chainloader +1
}

불행하게도 이 기능을 사용하려고 하면 "아무것도 없음", 검은색 화면, 오류가 표시되지 않고 다른 무엇을 해야 할지 모르겠습니다.

결과는 다음과 같습니다 fdisk -l.

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xa2c2c4f8

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   209717247   104857600    7  HPFS/NTFS/exFAT
/dev/sda2       209717248   420339711   105311232    7  HPFS/NTFS/exFAT
/dev/sda3       420341758   625141759   102400001    5  Extended
Partition 3 does not start on physical sector boundary.
/dev/sda5       420341760   615651327    97654784   83  Linux
/dev/sda6       615653376   625141759     4744192   82  Linux swap / Solaris

답변1

팁:

논리 파티션은 항상 다섯 번째 파티션부터 시작됩니다. 숫자 3과 4를 잘못 입력하지 않았는지 확인하세요. 아마도 5와 6이어야 할 수도 있고, 아니면 4개의 기본 파티션이 있을 수도 있습니다!

파티션 3(파티션 자체가 아닌 확장 정의)에 다른 그럽이 정말로 있습니까? 아마 디비전 5를 말씀하시는 것 같습니다.

fdisk를 보면 두 개의 기본 파티션(1과 2), 하나의 확장 파티션(3), 두 개의 논리 파티션(5와 6)이 있는 것을 볼 수 있습니다.

확장 자체에 Grub이 설치된 것을 본 적이 없지만 파티션 부팅 섹터에 Grub이 설치된 것을 본 적이 있습니다(아마도 귀하의 경우 3이 아니라 5 또는 6일 것입니다).

또 다른 팁:

Grub2 메뉴에서 "c" 키를 눌러 명령줄로 이동한 다음 ls파티션, 디스크 등의 이름을 표시하는 명령을 입력할 수 있습니다. 그런 다음 이를 기록하여 모드를 볼 수 있습니다(hd0; ,5) 또는 (hd0, msdos5) 또는 (hd0, gpt5) 등 메뉴로 돌아가려면 "Esc" 키를 누르세요.

"2 for linux: (hd0,3), (hd0,4) -> For linux (논리 파티션)"라고 말씀하셨기 때문에 잘못된 번호를 입력하신 것 같습니다. 그러나 fdisk는 두 개의 기본 파티션(1과 2)만 있음을 보여줍니다. 또한 파티션 번호 3은 파일 시스템을 배치할 수 있는 위치가 아닌 확장된 정의입니다.

따라서 아마도 다음과 같이 말할 것입니다(3과 4 대신 4와 5).

Linux의 경우 2: (hd0,4), (hd0,5) -> Linux(논리 파티션)입니다.

오타인가요? 아니면 실제로 논리 파티션 정의가 포함된 확장 파티션의 첫 번째 섹터를 참조하려고 합니까? 그렇지 않으면 거기에 쓰면 논리 파티션 정의가 손상되어 액세스할 수 없게 됩니다. 다행히 Grub 설치 프로그램은 이 위치에 설치하는 것을 허용하지 않습니다.

문제를 해결할 수 있기를 바랍니다.

예, Grub은 여러 디스크에 걸쳐 스트라이프된 LVM 내의 Ext4에 상주할 수 있으며, 체인의 어느 부분에나 원하는 수의 LUKS를 추가할 수도 있습니다. Grub은 이러한 작업을 수행하는 데 적합합니다.

내 말은, grub.cfg 파일과 나머지 파일이 이 복잡한 예제 시나리오에 포함될 수 있다는 것입니다.

  • HDD0: 기본 파티션이 전혀 없고 확장 파티션이 하나만 있으며 논리 파티션 중 하나에 LVM2 정의가 포함된 LUKS(키 A)가 있습니다.
  • HDD1: 기본 파티션이 전혀 없고 확장 파티션이 하나만 있으며 논리 파티션 중 하나에 LVM2 정의가 포함된 LUKS(키 B)가 있습니다.
  • HDD2: 기본 파티션이 전혀 없고 확장 파티션이 하나만 있으며 논리 파티션 중 하나에 LVM2 정의가 포함된 LUKS(키 C)가 있습니다.
  • 이러한 LVM2는 Grub 및 해당 파일용으로 하나의 논리 볼륨(LUKS를 사용할 수도 있음)이 있는 하나의 큰 가상 디스크로 결합(스트라이핑)합니다.

등.

기억하세요: Grub이 어떤 텍스트를 사용하고 있는지 확실하지 않은 경우 명령줄로 이동하여("c" 키 누르기) ls인수 없이 명령을 사용한 다음 구문과 표시되는 내용을 기록해 두십시오. 메뉴에서는 'Esc' 키가 필요합니다.

이는 암호화 장치(LUKS) 및 LVM을 사용할 때도 유용합니다.

관련 정보