답변:
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에서 스크립트를 분석 한 후 구성 파일 경로를 symlink에서 읽습니다 /etc/grub2.conf
. 따라서 올바른 grub2-mkconfig
줄은 다음과 같습니다.
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
주석에서 언급했듯이 /etc/grub2.cfg
, 또는 /etc/grub2-efi.cfg
UEFI 시스템에 있을 수 있습니다 . 실제로 두 링크가 동시에 존재하고 다른 위치를 가리킬 수도 있습니다 . -e
플래그 할 readlink
대상 파일이 존재하지 않는 경우 오류가 밖으로하지만, 내 시스템에 모두 존재 ... 당신의 명령을 확인합니다, 그런 것 같아요.
/etc/grub2.cfg
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
심볼릭 링크가 뭔가 잘못되었는지 알 수 있도록 표준 출력에 출력 표시 존재하는 파일로 해결되지 않는 경우 있도록 옵션을 선택합니다.
readlink에 대한 매뉴얼 페이지에서 :
-e, --canonicalize-existing
canonicalize by following every symlink in every component of
the given name recursively, all components must exist
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를 참조 하십시오.
update-grub
우분투 의 대본은 실제로 그저 스텁이며grub-mkconfig
, 너무 많은 고통없이 다른 배포판에 적용 할 수 있습니다. 여기 전체가 있습니다 :
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
이 효과적으로 권장 무엇합니까 CentOS는 위키 , 여기에 다른 답변에 - 유일한 차이점은 변경해야한다는 것입니다 grub
에 grub2
명령 및 출력 경로에.
/bin/kernel-install
대신 결과가 나타납니다. 나중에 참조 할 수 있도록이 정보를 포함하도록 답을 편집하십시오