RHEL / Fedora / CentOS 시스템 용 업데이트 그루브에 해당합니까?


36

우분투 (그리고 데비안에서도) 는 grub 구성 파일의 올바른 경로로 update-grub자동 실행되는 시스템 스크립트가 grub-mkconfig -o있습니다.

Red Hat 기반 배포판에 대해 비슷한 명령이 있습니까?

그렇지 않은 경우 시스템은 새 커널 버전이 설치 될 때 grub 구성 파일이 어디에 업데이트되는지 어떻게 알 수 있습니까?

답변:


14

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 -커널 설치 스크립트 도구


2
Fedora 20에서 동일한 명령을 실행하면 /bin/kernel-install대신 결과가 나타납니다. 나중에 참조 할 수 있도록이 정보를 포함하도록 답을 편집하십시오
pqnet

3
그것이 바로 내가 알아 내기 위해 필요한 단계로 대답을 시작한 이유입니다. RPM 업데이트에서는 커널 업데이트가 어떻게 적용되는지 이해하는 데 도움이되는 설치 스크립트 쿼리가 매우 보편적 일 것입니다. 그렇게하면 내 대답은 이미 발표 한 도구 / 명령 / 지원 스크립트의 이름을 지정하는 것보다 릴리스 테스트에 훨씬 잘 견딜 수 있습니다.
HBruijn

3
네 @HBruijn이 맞습니다. Fedora, RHEL 및 CentOS에는 변수가 너무 많아서 단일 답변을 제공하고 찾는 방법을 더 잘 보여줄 수 있습니다.
slm

24

Fedora에서 스크립트를 분석 한 후 구성 파일 경로를 symlink에서 읽습니다 /etc/grub2.conf. 따라서 올바른 grub2-mkconfig줄은 다음과 같습니다.

grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"

주석에서 언급했듯이 /etc/grub2.cfg, 또는 /etc/grub2-efi.cfgUEFI 시스템에 있을 수 있습니다 . 실제로 두 링크가 동시에 존재하고 다른 위치를 가리킬 수도 있습니다 . -e플래그 할 readlink대상 파일이 존재하지 않는 경우 오류가 밖으로하지만, 내 시스템에 모두 존재 ... 당신의 명령을 확인합니다, 그런 것 같아요.


5
CentOS 7에서 링크는 다음과 같습니다/etc/grub2.cfg
Anthon

6
grub2-mkconfig --output = / boot / grub2 / grub.cfg는 페도라 매뉴얼에서 승인 된 방법 인 것 같습니다
Kendrick

1
더 많은 CentOS 7 특정 grub 단계는 공식 위키를 확인하십시오 : wiki.centos.org/HowTos/Grub2
sshow

2
UEFI 시스템을 원한다면sudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)"
Craig Ringer

10

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심볼릭 링크가 뭔가 잘못되었는지 알 수 있도록 표준 출력에 출력 표시 존재하는 파일로 해결되지 않는 경우 있도록 옵션을 선택합니다.

readlink에 대한 매뉴얼 페이지에서 :

      -e, --canonicalize-existing
          canonicalize  by  following  every symlink in every component of
          the given name recursively, all components must exist

6

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)

https://docs.fedoraproject.org/f27/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader.html#sec-Editing_a_Menu_Entry를 참조 하십시오.


2

vi또는로 grub 파일을 편집 vim하고 변경 사항을 저장하고 : wq로 편집기를 닫습니다!

이것은 RedHat 또는 CentOS에서 grub을 업데이트하기 위해 실행해야하는 것입니다.

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

0

update-grub우분투 의 대본은 실제로 그저 스텁이며grub-mkconfig , 너무 많은 고통없이 다른 배포판에 적용 할 수 있습니다. 여기 전체가 있습니다 :

#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

이 효과적으로 권장 무엇합니까 CentOS는 위키 , 여기에 다른 답변에 - 유일한 차이점은 변경해야한다는 것입니다 grubgrub2명령 및 출력 경로에.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.