그럽은 어디에 설치되어 있나요? Linux를 별도로 설치하려면 새 grub이 필요합니까?

그럽은 어디에 설치되어 있나요? Linux를 별도로 설치하려면 새 grub이 필요합니까?

현재 저는 Arch와 Windows를 설치 및 구성하고 grub을 설치했습니다. 별도의 파티션에 또 다른 Arch 설치를 수행할 예정입니다.

새로 설치된 배포판에 grub을 다시 설치하고 구성해야 합니까? 아니면 이전 배포판을 사용할 수 있습니까?

이전(이 관점에서 현재) grub을 계속 사용한다면 새로운 Arch 설치를 볼 수 있도록 다시 구성해야 할 것 같습니다.

(이전 Arch 설치를 사용하여) 현재 파티션을 포맷하면 어떻게 되나요?
Grub이 계속 작동합니까(즉, 문제를 해결하려면 라이브 CD를 부팅해야 합니다)?

요약하자면: grub은 운영 체제와 관계없이 공통 위치에 설치되어 있습니까, 아니면 일부 운영 체제(현재 Arch 설치)와 함께 번들로 설치되어 있습니까?
튜토리얼에서는 다음 명령을 제공합니다. grub-mkconfig -o /boot/grub/grub.cfg이로 인해 grub이 특정 Linux 설치와 관련되어 있다고 생각되지만 grub-install디렉토리를 지정하지 않고 명령도 표시됩니다.

grub이 현재 설치에 연결되어 있는 경우 내 컴퓨터는 grub을 확인할 파티션을 어떻게 알 수 있습니까? 그렇지 않고 "일반"이라면 왜 패키지로 "설치"해야 합니까?특정한아치 설치?

답변1

명명 규칙:

  • GRUB(일부)는 MBR에 남아 있습니다.

  • GRUB(나머지)는 로드되는 몇 개의 파일입니다 /boot/grub(예: GRUB에서 배경으로 표시되는 멋진 이미지는 MBR에 저장되지 않습니다).

노트:

  • 대답은 MBR 설정을 고려하는 것입니다. GRUB는 다른 설정에서 사용할 수 있습니다.

  • EFI 설정에서는 상황이 복잡해지고 GRUB을 사용할 수 있지만 커널 자체가 자체 EFI 스텁 역할을 할 수도 있습니다.


GRUB(일부)는 MBR에 설치됩니다. MBR은 디스크의 처음 512바이트입니다. MBR은 디스크의 파티션 테이블에서도 사용되므로 GRUB 자체의 공간은 512바이트 미만입니다.

MBR 내의 GRUB(일부)는 GRUB를 MBR에 설치하는 동안 정의된 디스크의 다른 부분에서 보다 완전한 GRUB(나머지)를 로드합니다( grub-install). MBR GRUB는 디스크(일반적으로 )에서 해당 항목을 찾아야 하므로 /boot기본 GRUB가 있는 파티션은 파티션 테이블에서 너무 멀리 떨어져 있으면 안 됩니다(일반적 512MB으로 다를 수 있음).

자체 파티션을 갖는 것이 유용하므로 /boot거기에서 전체 디스크에 대한 GRUB를 관리할 수 있습니다.

무슨 뜻이에요:

  • MBR의 GRUB은 디스크에서 하나의 GRUB(나머지)만 로드할 수 있습니다.

  • 컴퓨터의 모든 운영 체제를 찾으려면 디스크의 특정 GRUB(나머지)를 구성해야 합니다.


이 명령이 grub-mkconfig -o /boot/grub/grub.cfg실행 되면 os-prober(찾을 수 있는 경우) 모든 파티션을 검색하고 grub.cfg모든 운영 체제에 대한 포인터를 생성합니다.

/boot따라서 여러 개의 파티션 (또는 MS Windows와 동등한 파티션, 잘 모르겠지만 알고 있음) 이 있는 경우 os-prober시스템은 os-prober해당 파티션을 찾아서 grub.cfg그에 따라 생성합니다. grub-install현재 실행 중인 운영 체제의 GRUB를 가리키는 MBR에서 GRUB(그 일부) 설치를 실행합니다 grub.cfg.

무슨 뜻이에요:

  • 전체 시스템에는 GRUB가 하나만 필요합니다.

  • MBR이 다르기 때문에 디스크마다 GRUB가 다를 수 있지만 이는 디스크를 제거하려는 경우에만 의미가 있습니다.

  • 단일 GRUB 설치로 모든 운영 체제의 시작을 관리할 수 있습니다.

  • 단일 디스크에서는 항상 grub-install단일 운영 체제에서만 실행해야 합니다! 이는 중요합니다. 그렇지 않으면 구성을 계속 덮어쓰게 됩니다.

답변2

명확히하기 위해 : 당신은 사용하고 있습니다grub2, 옳은?

Grub2가 자체 부팅 파티션에 설치된 경우 아무것도 변경할 필요가 없습니다. 그렇지 않은 경우(정말 이상합니다) 기술적으로 유지하거나 grub.cfg배포판에 있는 경우 이를 유지할 수 있습니다 /etc/grub.d.

/boot하지만 자체 파티션이어야 합니다. 실행하여 mount다음과 같은 내용이 표시되면:

/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,stripe=4,data=ordered)

필요한 대로 Grub2를 자체 파티션에 설치했습니다. 일반적으로 새 배포판을 설치할 때 마법사는 일반적으로 설치 프로세스를 안내하고 어떤 파티션에 어떤 운영 체제가 포함되어 있는지(해당되는 경우) 찾아냅니다. Arch의 과정은 다소 지루하지만 매우잘 기록 된.

끔찍한 일이 일어나면 어쩌지?

다운로드고팟, USB 스틱에 넣고 부팅한 다음 /boot파티션을 마운트합니다.

그런 다음 루트로 실행하거나 sudo를 사용하십시오.

grub-mkconfig -o /boot/grub/grub.cfg

Grub2는 자동으로 파티션을 감지하고 그에 따라 조치를 취할 수 있어야 합니다.

(그러나 Grub2에서 운영 체제를 감지하기 위해 전체 설치 파티션이 필요한지 여부는 현재로서는 확실하지 않습니다.)

Windows를 동시에 설치하려는 경우 Windows가 부트로더를 덮어쓰고 있을 가능성이 있습니다. 이 문제를 해결하려면 루트로 실행하거나 를 사용하세요 sudo.

grub-install /dev/sdX

/dev/sdX부팅 파티션이 있는 드라이브는 어디에 있습니까?


약간의 설명:

Grub2는 Stage-2입니다.부트 로더. 이는 운영 체제는 아니지만 기본 파티션의 첫 번째 446바이트에 맞는 간단한 체인 로더보다 훨씬 더 복잡하다는 것을 의미합니다(첫 번째 섹터의 나머지 부분은 파티션 테이블이고 플래그는 대기합니다).

MBR에는 /boot파티션에 있는 Grub2 코드를 실행하는 코드만 포함되어 있습니다. Grub2 그런 다음 또는체인 로드다른 파티션(예: 자체 부트 로더를 설치하므로 Windows 부팅용)으로 이동하지만 코드를 실행 memtest하거나(예: ) 커널 및 모듈 이미지에 액세스하여 실행할 수도 있습니다( vmlinuz).

두 경우 모두 커널이 실행되기 시작하거나 다른 파티션이 체인로드되면 Grub2가 메모리에서 언로드된다는 점에 유의하는 것이 중요합니다.

답변3

Grub은 특정 운영 체제에 묶여 있지 않습니다. 자체 전용 파티션에 상주할 수도 있지만 일반적으로 기본 파일 시스템을 따라 마운트됩니다. 그러나 시스템을 부팅하려면 이를 알아야 합니다. 따라서 새 운영 체제 설치 또는 커널 업그레이드와 같이 컴퓨터 시스템에 중요한 변경 사항이 발생한 후에는 Grub을 업데이트해야 합니다. 유일한 Grub을 제거하면 시스템을 부팅할 수 없습니다. 머신에는 여러 개의 Grub이 있을 수 있지만 하나만 기본 또는 활성입니다. Grub 외에도 (Grub 대신) 사용할 수 있는 다른 부트로더가 있습니다. Windows에는 전체 시스템의 기본 로더로 설정할 수 있는 자체 부트 로더가 있습니다.

관련 정보