我在远程系统上运行 Debian 6、Debian GNU/Linux,在 Grub2(1.98+20100804-14+squeeze1)下使用 Linux 2.6.32-5-amd64(无法查看预启动消息)。我编译并安装了新内核,但无法启动。
我做了什么:
通过以下方式安装软件包:
dpkg -i linux-headers-3.5.3.20120914-amd64_3.5.3.20120914-amd64-10.00.Custom_amd64.deb linux-image-3.5.3.20120914-amd64_3.5.3.20120914-amd64-10.00.Custom_amd64.deb
这更新了 Grub 配置。我的 /boot/grub/grub.cfg 现在包含:
menuentry 'Debian GNU/Linux, with Linux 3.5.3.20120914-amd64' --class debian --class gnu-linux --class gnu --class os {
insmod raid
insmod mdraid
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(md0)'
search --no-floppy --fs-uuid --set 5a3882a9-c7df-4f6a-9feb-f03e3e37be01
echo 'Loading Linux 3.5.3.20120914-amd64 ...'
linux /vmlinuz-3.5.3.20120914-amd64 root=UUID=003242b5-121b-49f3-b32f-1b40aea56eed ro acpi=ht quiet panic=10
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.5.3.20120914-amd64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
insmod raid
insmod mdraid
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(md0)'
search --no-floppy --fs-uuid --set 5a3882a9-c7df-4f6a-9feb-f03e3e37be01
echo 'Loading Linux 2.6.32-5-amd64 ...'
linux /vmlinuz-2.6.32-5-amd64 root=UUID=003242b5-121b-49f3-b32f-1b40aea56eed ro acpi=ht quiet panic=10
echo 'Loading initial ramdisk ...'
initrd /initrd.img-2.6.32-5-amd64
}
我曾经
grub-set-default "Debian GNU/Linux, with Linux 2.6.32-5-amd64"
将旧内核设置为默认内核,然后grub-reboot "Debian GNU/Linux, with Linux 3.5.3.20120914-amd64"
启动新内核一次。update-grub
我重启系统后,每次都会回到旧内核(2.6)。我尝试将新内核设置为默认内核(grub-set-default 0
, update-grub
, reboot
),但仍然是旧内核。
Syslog 中没有包含任何有关尝试启动新内核的提示 - 只有旧内核。是否有任何有关内核问题的提示?是否有办法在 grub 中启用调试日志记录?
我做错了什么?如何强制系统启动新内核?
编辑:远程机器的硬件。
中央处理器
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 5
model name : AMD Athlon(tm) II X4 605e Processor
stepping : 3
cpu MHz : 2294.898
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt
bogomips : 4589.77
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
(仅复制第一篇,后面还有三篇)
该服务器是富士通 PRIMERGY MX130 S1。
答案1
检查配置文件/etc/default/grub
——应该有一个条目GRUB_DEFAULT=0
,它指的是您将获得的菜单条目。
如果有子菜单,则会出现一些小故障,但我只有在添加 Xen 内核时才会遇到这种情况。
确保你没有将 GRUB1 菜单链接到 GRUB2 菜单(通常在升级时发生),设置GRUB_DEFAULT
并运行
grub-mkconfig -o /boot/grub/grub.cfg
这将从配置文件中重建 Grub 使用的 grub 配置/etc/grub.d
它会在构建时列出内核,如果你看一下,/boot/grub/grub.cfg
你会看到一行(应该是第 12 行)写着default="x"
。
重新启动并享受新的内核.....