답변1
이전 prefix
설정은 입니다 . 이는 이전 접두사가 언급되지 않았으므로 파티션 에 별도의 파일 시스템이 있음을 prefix=(hd0,msdos1)/grub2
나타냅니다 ./boot
(hd0,msdos1)
/boot
그건 효과가 있었어당신이 변화를 만들 때까지.
(hd0,msdos1)
GRUB는 한 번에 하나의 파일 시스템에만 액세스합니다. 즉, 일반적으로 Linux에 설치된 파일 시스템을 모르거나 신경 쓰지 않습니다 /boot
. GRUB는 /boot
필요에 따라 이를 루트 디렉터리 로 효과적으로 처리하므로 실제로 파일 시스템에 속하는 경로 이름 부분만 필요합니다 . 이것이 변수의 root=hd0,msdos1
의미입니다. 이것이 바로 접두사가 붙은 이전 경로 이름이 /grub2
가 아닌 just 인 이유이기도 합니다 /boot/grub2
.
새 접두사를 로 지정하면 GRUB에 Linux에 있는 내용을 (hd0,msdos1)/boot/grub2
보도록 효과적으로 지시할 수 있습니다 ./boot/boot/grub2
비슷한 작업을 수행한 경우 mv /boot/grub2 /boot/newname
이제 set prefix=(hd0,msdos1)/newname
접두사를 사용하여 grub2
디렉터리의 새 이름을 반영해야 합니다.
GRUB에는 디렉토리에 액세스하기 위해 코어 이미지에 최소한의 모듈만 설치되어 있으므로 디렉토리를 파일 시스템 grub2
밖으로 이동 하면 더 큰 문제가 발생합니다 . 새 위치가 LVM 볼륨에 있거나 다른 파일 시스템 유형을 갖는 경우 당신의 파일 시스템 유형보다 GRUB는 그것을 읽을 수 없을 가능성이 높습니다. 이 작업을 수행한 경우 RHEL 7.6 설치 미디어에서 복구 모드로 부팅한 다음 GRUB를 사용하여 다시 설치하여 새 위치에 완전히 적용해야 합니다 . 먼저 필요한 모듈을 선택하고 올바른 모듈이 포함된 새 GRUB을 생성하기 위해 실행됩니다. 모듈 그런 다음 코어 이미지 파일이 MBR에 포함되고 MBR과 첫 번째 파티션의 시작 부분 사이의 디스크 블록이 포함됩니다./boot
grub2
/boot
grub-install
grub-mkimage
GRUB 구조에 대한 자세한 배경 정보는 다음을 참조하세요.GRUB에 대해 이전에 쓴 답변.