YUM을 사용하여 커널을 업그레이드하려고 하는데 실행하면
[root@AFIBAMBOO bin]# grub2-mkconfig -o /boot/grub2/grub.cfg
No path or device is specified.
Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
No path or device is specified. Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
No path or device is specified. Usage: grub2-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub2-probe --help' or 'grub2-probe --usage' for more information.
답변1
그런데
문제는 이미AskUbuntu S&E에서 해결됨커널 업데이트 스크립트가 손상된 grub2-probe
후에 도입되었습니다 .grub.cfg
들여쓰기가 누락되었는지 확인 grub.cfg
하고 반복하세요 grub2-mkconfig
.
yum을 통한 커널 업데이트에 대한 자세한 지침:
CentOS는 RPM 패키지를 통해 커널을 배포하고 자체 저장소에 저장합니다.
저장소를 사용할 때 RPM 패키지를 설치/제거/재설치할 수 있습니다.
커널을 저장하는 RPM 패키지는 다음과 같습니다.설치 후그리고환적 후CentOS에서 새로운 커널을 채택하는 데 필요한 모든 단계를 수행하는 섹션입니다. 이 단계에는 다음과 같은 몇 가지 중요한 사항이 포함됩니다.파일 시스템 초기화빌드하고 부트로더에 새 항목을 설정합니다...
우리에게 보여줘3.10.0-957.el7.x86_64.rpm설치 후 부분:
설치 후:
/usr/sbin/new-kernel-pkg --package kernel --install 3.10.0-957.el7.x86_64 || exit $?
환적 후:
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules --add-kernel 3.10.0-957.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update 3.10.0-957.el7.x86_64
rc=$?
if [ $rc != 0 ]; then
/usr/sbin/new-kernel-pkg --remove 3.10.0-957.el7.x86_64
ERROR_MSG="ERROR: installing kernel-3.10.0-957.el7.x86_64: no space left for creating initramfs. Clean up /boot partition and re-run '/usr/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --install 3.10.0-957.el7.x86_64'"
if [ -e /usr/bin/logger ]; then
/usr/bin/logger -p syslog.warn "$ERROR_MSG"
elif [ -e /usr/bin/cat ]; then
/usr/bin/cat "$ERROR_MSG" > /dev/kmsg
fi
echo "$ERROR_MSG"
exit $rc
fi
/usr/sbin/new-kernel-pkg --package kernel --rpmposttrans 3.10.0-957.el7.x86_64 || exit $?
이러한 설치 후 스크립트는 new-kernel-pkg
프로젝트의 일부인 스크립트를 사용합니다 grubby
.man 8 새로운 커널 prkg썼다:
설명하다
new-kernel-pkg는 초기 램 파일 시스템 이미지 생성, 부트로더 구성 업데이트 및 기타 관련 작업을 포함하여 새 커널 설치를 자동화하기 위한 패키징 도구입니다.
new-kernel-pkg
부트로더 구성을 업데이트하기 위한 스크립트 호출 grubby
( grubby
프로젝트 내의 프로그램)입니다. ~에서남자 8 더러운:
설명하다
grubby는 grub, lilo, elilo(ia64), yaboot(powerpc) 및 zipl(s390) 부트 로더의 구성 파일에 대한 정보를 업데이트하고 표시하는 명령줄 도구입니다. 이는 주로 새 커널을 설치하고 현재 부팅 환경에 대한 정보를 찾아야 하는 스크립트용으로 설계되었습니다.
new-kernel-pkg
스크립트에서 grubby를 호출하는 스니펫:
ARGS="--grub2 -c $grub2Config --add-kernel=$kernelImage $INITRD \
--copy-default --title \"$title\$debugtitle\" \
${mbkernel:+--add-multiboot=\"$mbkernel\"} \
${mbargs:+--mbargs=\"$mbargs\"} \
--args=\"root=$rootdevice $kernargs \$debugargs\" \
--remove-kernel=\"TITLE=$title\$debugtitle\""
rungrubby ${ARGS} $makedefault
부트로더 구성을 구축하는 방법에 대한 더 구체적인 정보가 필요한 경우 new-kernel-pkg
자세한 정보 표시 모드(옵션)(필요한 커널 버전 및 매개변수 포함)에서 실행할 수 있습니다 -v
.
grub2-mkconfig
따라서 커널 업데이트 후에 수동으로 호출할 필요가 없습니다.