Ubuntu에는 update-grub
라는 이름의 시스템 스크립트가 있습니다. update-grub
div id = “3c217c65f7″>
를 grub 구성 파일의 올바른 경로로 지정합니다.
Red Hat 기반 배포판에 유사한 명령이 있습니까?
그렇지 않다면 어떻게 새 커널 버전이 설치 될 때 업데이트 할 GRUB 구성 파일이 어디에 있는지 시스템이 알고 있습니까?
Answer
RPM 패키지가 설치되거나 제거 될 때 발생해야합니다. 사전 설치, 사후 설치, 사전 제거 및 사후 제거에 RPM 패키지 내에 포함되어 있습니다. 섹션.
설치된 모든 RPM 패키지에 대해 RPM 데이터베이스에서 rpm
명령에 포함 된 정확한 스크립트를 쿼리 할 수 있습니다.
rpm -q --scripts <package-name>
CentOS 6 용 커널 패키지에서 해당 명령을 실행하면 다음과 같은 결과가 반환됩니다.
postinstall scriptlet (using /bin/sh): <snip> /sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?
설명서에서 :
new-kernel-package
-커널 설치 스크립트 도구
설명
답변
Fedora에서 스크립트를 분석 한 결과 구성 파일 경로가 심볼릭 링크 /etc/grub2.conf
에서 읽 혔음을 알게되었습니다. . 따라서 올바른 grub2-mkconfig
행은 다음과 같습니다.
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
주석에서 언급했듯이 또는 UEFI 시스템의 경우 /etc/grub2-efi.cfg
. 실제로 두 링크가 동시에 표시되고 다른 위치를 가리킬 수 있습니다 . -e
플래그를 readlink
에 표시하면 대상 파일이 존재하지 않지만 내 시스템에 둘 다 존재하는 경우 오류가 발생합니다. 명령을 확인하십시오. , 그런 것 같아요.
댓글
- CentOS 7에서는 링크가
/etc/grub2.cfg
li 인 것 같습니다. > - grub2-mkconfig –output = / boot / grub2 / grub.cfg는 fedora 매뉴얼에서 승인 된 방법 인 것 같습니다
- 다른 CentOS 7 관련 grub 단계는 공식 위키를 확인하세요. wiki.centos.org/HowTos/Grub2
- UEFI 시스템이있는 경우 '
sudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
- 읽기 링크를 할 필요가 없습니다
를 원할 것입니다.
답변
Fedora에서 다음을 사용합니다.
grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"
readlink
는 상대 경로를 반환하고 grub2-mkconfig
는 오류를 제공합니다.
$ ls -l /etc/grub2.cfg lrwxrwxrwx. 1 root root 22 Dec 10 2015 /etc/grub2.cfg -> ../boot/grub2/grub.cfg $ readlink /etc/grub2.cfg ../boot/grub2/grub.cfg $ sudo grub2-mkconfig -o "$(readlink /etc/grub2.cfg)" /usr/sbin/grub2-mkconfig: line 244: ../boot/grub2/grub.cfg.new: No such file or directory
-e
옵션이므로 심볼릭 링크가 존재하는 파일로 확인되지 않으면 출력이 stdout에 표시되므로 문제가 발생했음을 알 수 있습니다.
readlink의 man 페이지에서 :
-e, --canonicalize-existing canonicalize by following every symlink in every component of the given name recursively, all components must exist
Answer
Fedora에서 /etc/grub2.cfg 심볼릭 링크는 BIOS 버전을 가리 킵니다. UEFI 시스템에서는 다음을 사용합니다.
$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
CentOS :
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
일반적으로 대신 사용할 수 있습니다.
$ sudo grub2-mkconfig -o $(readlink -f /etc/grub2-efi.cfg)
Answer
vi
또는
, 변경 사항을 저장하고 : wq!
다음은 RedHat 또는 CentOS에서 GRUB을 업데이트하기 위해 실행해야하는 것입니다.
grub2-mkconfig -o /boot/grub2/grub.cfg
Answer
RedHat 문서 에 따라 :
/etc/default/grub
를 변경하려면 다음과 같이grub.cfg
파일을 재 구축해야합니다.
BIOS- 기반 컴퓨터에서 다음 명령을 루트로 실행합니다.
~]# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI 기반 컴퓨터에서 다음 명령을 실행하십시오. 다음 명령을 루트로 사용 :
~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
답변
Ubuntu의 update-grub
스크립트는 실제로 grub-mkconfig
용 스텁이며 너무 많은 고통없이 다른 배포판에 적용 할 수 있습니다. 전체 내용은 다음과 같습니다.
#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
에서 권장하는 작업을 효과적으로 수행합니다. a> 및 다른 답변에서-유일한 차이점은 명령 및 출력 경로에서 grub
를 grub2
로 변경해야한다는 것입니다. .
답변
Fedora 32 :
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
답변
CentOS Linux 8에서 작업 함-
sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
답변
Fedora 33 가이드 라인에서 Grub 변경 후 다음을 제공합니다.
$ sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
예,이 게시물이 6 년이라는 것을 알고 있습니다.
/bin/kernel-install
가 생성됩니다. 나중에 참조 할 수 있도록이 정보를 포함하도록 답변을 수정하세요.