답변1
Fedora에서 스크립트를 분석한 후 구성 파일 경로가 심볼릭 링크에서 읽혀진다는 것을 깨달았습니다 /etc/grub2.conf
. 올바른 grub2-mkconfig
줄은 다음과 같습니다.
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
의견에서 지적했듯이 UEFI 시스템에 있을 수도 /etc/grub2.cfg
있고 있을 수도 있습니다. /etc/grub2-efi.cfg
실제로,두 개의 링크가 동시에 존재할 수 있으며다른 위치를 가리킨다. 대상 파일이 없지만 내 시스템에는 둘 다 존재하는 경우 플래그에 오류가 발생합니다. 명령을 확인하세요 -e
.readlink
답변2
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
- 커널 설치 스크립트 작성 도구
답변3
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에 표시되어 문제가 있음을 알 수 있도록 이 옵션을 사용합니다 .
읽기 링크 매뉴얼 페이지에서:
-e, --canonicalize-existing
canonicalize by following every symlink in every component of
the given name recursively, all components must exist
답변4
~에 따르면Red Hat 문서:
아래와 같이 변경 후 파일을
/etc/default/grub
다시 빌드해야 합니다 .grub.cfg
BIOS 기반 컴퓨터에서 루트로 다음 명령을 실행합니다.
~]# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI 기반 컴퓨터에서 루트로 다음 명령을 실행합니다.
~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg