grub.cfg文件未能生成
在升级kernel的时候,grub.cfg文件未生成,下面将源码和结果贴出来,求大神解答,谢谢!kernel.spec中源码:
%define kernel_variant_post(v:r:) \
%{expand:%%kernel_devel_post %{?-v*}}\
%{expand:%%kernel_variant_posttrans %{?-v*}}\
%{expand:%%post %{?-v*}}\
%{-r:\
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
[ -f /etc/sysconfig/kernel ]; then\
/bin/sed -r -i -e 's/^DEFAULTKERNEL=%{-r*}$/DEFAULTKERNEL=kernel%{?-v:-%{-v*}}/' /etc/sysconfig/kernel || exit $?\
fi\
}\
%{expand:\
/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --install %{KVERREL}%{?-v:.%{-v*}} || exit $?\
}\
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg > /dev/null 2>&1 </dev/null\
/usr/bin/find /boot/efi/EFI -name "*.cfg" | while read dir; do /usr/bin/sed -i "s/vmlinuz.*x86_64/vmlinuz-%{KVERREL}/g" $dir; done
%{nil}
执行结果为:
++ uname -i
++ uname -i
+ '[' x86_64 == x86_64 -o x86_64 == i386 ']'
+ '[' -f /etc/sysconfig/kernel ']'
+ /bin/sed -r -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel
+ /sbin/new-kernel-pkg --package kernel --install 3.14.0-12.1.lp22.x86_64
D: %post(kernel-3.14.0-12.1.lp22.x86_64): waitpid(4654) rc 4654 status 0
正确的结果应为:
++ uname -i
++ uname -i
+ '[' x86_64 == x86_64 -o x86_64 == i386 ']'
+ '[' -f /etc/sysconfig/kernel ']'
+ /bin/sed -r -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel
+ /sbin/new-kernel-pkg --package kernel --install 3.14.1-4.21.1.lp19.x86_64
+ /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
+ /usr/bin/find /boot/efi/EFI -name '*.cfg'
+ read dir
D: %post(kernel-3.14.1-4.21.1.lp19.x86_64): waitpid(30793) rc 30793 status 0
不知到为什么,求大神指导方向。如果能讲解上面脚本的意思更好,谢谢!
/sbin/new-kernel-pkg
是因为这个执行失败了?可以把这句的结果或返回值打印出来看看~~ /sbin/new-kernel-pkg --package kernel --install 3.14.0-12.1.lp22.x86_64语句的返回值是0,相当奇葩!也相当无语!回复 2# humjb_1983
%{?-v:-%{-v*}}这一句是什么意思,有知道的吗?
页:
[1]