GRUB는 모든 운영 체제에 설치됩니다. 실제로 어떤 것이 사용되나요?

GRUB는 모든 운영 체제에 설치됩니다. 실제로 어떤 것이 사용되나요?

동일한 컴퓨터에 여러 Linux 운영 체제가 있는 경우 각 설치에는 자체 GRUB 설치가 있으며 일반적으로 부팅 시 최신 설치가 사용됩니다. 이 문제는 최신 설치가 무엇인지 기억나지 않고 GRUB 메뉴를 수정하고 싶을 때 발생합니다. 각 설치를 개별적으로 확인하지 않고 어느 것이 사용되고 있는지 어떻게 확인할 수 있습니까? GRUB를 한 번만 설치하여 애초에 이 문제를 방지할 수 있는 깔끔한 설정이 있습니까?

답변1

기본 하드 드라이브의 마스터 부트 레코드에 GRUB를 설치하려는 것 같습니다. 하드 드라이브에는 MBR이 하나만 있으므로 한 번에 하나의 부트로더만 상주할 수 있습니다. 또한 모든 운영 체제에 부트로더를 설치하라고 지시하는 것 같습니다.

이를 처리하는 올바른 방법(MBR을 사용한다고 가정)은 GRUB 설치를 원하지 않는 운영 체제에서 GRUB가 MBR에 자체적으로 설치되지 않도록 하는 것입니다. 가장 쉬운 방법은 아마도 grub 패키지를 제거하는 것입니다.

또 다른 방법은 파티션에 부트로더를 설치하고 거기에서 부팅하는 것이지만 이는 덜 일반적입니다.

답변2

이상적으로는 한 번만 설치 grub하고 새로 설치할 때마다 항목을 수동으로 추가해야 합니다.

한 가지 해결 방법은 컴퓨터가 시작될 때 모니터를 확인하는 것입니다. 일반적으로 배포 관련 메시지가 표시됩니다.

그렇지 않은 경우에도 현재 사용 중인 배포판을 변경한 다음 grub을 업데이트하면 grub 메뉴가 업데이트 grub-install되고 mbr.

반품이것대답은 다양한 그럽 단계의 위치를 ​​찾는 방법을 알려줍니다.

답변3

이상적으로는 Nikhil이 말했듯이 "grub을 한 번만 설치해야 합니다." 그런 다음 "설치하는 새 배포마다 항목을 수동으로 추가해야 합니다." 또는 더 나은 방법은 새로 설치하여 grub 파일의 위치를 ​​묻는 메시지를 표시하고 자신의 항목을 추가하는 것입니다. ; 일부 배포판에서는 이를 수행할 수 있다고 생각합니다.

불행하게도 상황이 항상 그렇게 간단하지는 않습니다. 특히 익숙하지 않은 새로운 배포판을 시도하는 경우에는 더욱 그렇습니다.막 생물 반응기덮어쓰고 나면 이전 그럽을 다시 설치하는 지루한 작업을 처리해야 합니다. MBR은 물리적인 전반 킬로바이트(일명.부트 섹터), PC BIOS(더 읽어보세요), grub이 시작되는 곳이지만 그런 다음 파티션에서 더 많은 항목(예: 에서 찾을 수 있는 항목 /boot/grub2/i386-pc)을 로드합니다.

따라서 전체 문제를 처리하는 빠른 방법/바로가기는 다음과 같습니다. 배포판을 설치하기 전에 MBR을 복사하세요. 설치 프로그램이 원하는 작업을 번거로움 없이 수행하도록 한 다음, 1) MBR 복사본을 다시 부트 섹터에 넣고, 2) 해당 grub 메뉴에 항목을 추가합니다.

1 단계사실 매우 간단합니다. 설치를 할 때마다 문제가 발생하여 시작한 곳으로 돌아가고 싶을 경우를 대비해 설치하는 것이 좋습니다. 이는 새로운 Windows 형식에는 적용되지 않습니다.UEFI/GPT디스크. MBR이 포함된 부트 섹터는 정확히 512바이트입니다.

dd if=/dev/sda of=mbr.copy bs=512 count=1

"/dev/sda"는 MBR이 있는 물리적 디스크여야 합니다. 참고로 이는아니요"/dev/sda1"은 /dev/sda의 첫 번째 파티션을 나타냅니다.

새 시스템을 설치하고 부팅합니다. 그런 다음 MBR 백업을 배치한 위치에 마운트하고 다음을 수행할 수 있습니다.

dd if=mbr.copy of=/dev/sda bs=512 count=1

긴급한! 새 설치가 발생하지 않은 것처럼 재부팅합니다. 그러나 여전히 파티션에 있으므로 해야 할 일은 다음과 같습니다.2 단계그럽 메뉴 항목을 기존 그럽 메뉴에 추가합니다.

2단계는 두 파티션을 모두 주의 깊게 검사 /boot/grub2/grub.cfg하고 새 항목을 추가하는 방법을 결정해야 하기 때문에 더 어렵습니다. 첫 번째,grub.cfg를 있는 그대로 백업합니다.. 항목을 직접 잘라내어 붙여넣을 수 있어야 하지만, 해당 항목이 파일에 정의된 특정 기능을 참조하는 경우에는 주의하세요. 예:

    load_video
    insmod part_msdos

나머지 부분을 보면 grub.cfg두 번째 줄이 grub 내장임을 암시하지만 첫 번째 줄은 load_video추가로 정의됩니다.

function load_video {
    [...]

따라서 정의를 인용하는 경우 해당 정의를 포함하는 것을 잊지 마세요. 여기에서 실험하는 것을 너무 두려워하지 마세요. 작동하지 않으면 이전 시스템을 실행하고 더 구체적인 질문을 시작할 수 있습니다.) 최악의 상황은 grub.cfg를 완전히 엉망으로 만들고 Live CD를 부팅한 후 만든 백업 복사본으로 교체한다는 것입니다.

답변4

가장 안정적인 배포판 중 하나인 단일 버전의 Grub을 부트 섹터에 설치하는 것이 좋습니다. 다른 운영 체제가 있는 경우 자체 파티션의 첫 번째 섹터에 해당 부트로더를 설치하고 boot Grub에서 체인로드하세요. 이렇게 하면 항상 부팅 가능한 시스템을 갖게 되며 모든 업그레이드 메커니즘이 설계된 대로 작동하게 됩니다.

Grub의 설치 스크립트는 다른 Linux 설치에서도 커널을 감지할 수 있습니다. 이는 훌륭한 추가 기능이지만 기본 운영 체제를 부팅하지 않고 커널을 업그레이드한 후 쉽게 손상될 수 있습니다. 따라서 체인 로딩 이외의 경우에만 이 기능을 사용하십시오.

(하지만 솔직하게 말하면 요즘 누가 듀얼 부팅을 합니까? 가상 머신을 사용하면 모든 운영 체제를 동시에 실행할 수 있습니다!)

관련 정보