RHEL / Fedora / CentOS 시스템 용 update-grub과 동일합니까?

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 20에서 동일한 명령 실행 대신 /bin/kernel-install가 생성됩니다. 나중에 참조 할 수 있도록이 정보를 포함하도록 답변을 수정하세요.
  • 그것이 바로 제가 알아내는 데 필요한 단계로 답변을 시작한 이유입니다. 설치 스크립트를 쿼리하는 것은 커널 업데이트가 어떻게 영향을 받는지 이해하는 데 도움이되는 RPM 세계에서 매우 보편적 일 것 같습니다. 그렇게하면 내 대답은 이미 시연 한 도구 / 명령 / 지원 스크립트의 이름을 지정하는 것보다 훨씬 더 나은 시간 테스트를 견딜 수 있습니다.
  • Yeah @HBruijn ' 맞습니다. ' Fedora, RHEL 및 CentOS간에 너무 많은 가변성이있어서 단일 답변을 제공하기에는 더 나은 방법을 찾을 수 있습니다.

답변

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
  • 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) 

https://docs.fedoraproject.org/en-US/fedora/f27/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader/index.html#sec-Editing_a_Menu_Entry <참조 / a>

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 "$@" 

CentOS 위키

에서 권장하는 작업을 효과적으로 수행합니다. a> 및 다른 답변에서-유일한 차이점은 명령 및 출력 경로에서 grubgrub2로 변경해야한다는 것입니다. .

답변

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 년이라는 것을 알고 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다