如何强制 Debian 启动新内核?

ThE*_*arD 9 debian kernel boot grub2

我在远程系统上的 Grub2 ( 1.98+20100804-14+squeeze1 ) 下运行 Debian 6、Debian GNU/Linux 和 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
Run Code Online (Sandbox Code Playgroud)

这更新了 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
}
Run Code Online (Sandbox Code Playgroud)

我曾经 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) 但是,仍然是旧的。

系统日志不包含任何关于尝试引导新内核的提示——只有旧内核。是否有关于内核问题的任何提示?有没有办法在 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
Run Code Online (Sandbox Code Playgroud)

(只复制第一个,后面还有3个)

服务器是富士通 PRIMERGY MX130 S1。

Ed *_*ing 8

检查配置文件/etc/default/grub- 应该有一个条目GRUB_DEFAULT=0,这是指您将获得的菜单条目。

如果您有子菜单,则会出现一些小故障,但我只有在添加 Xen 内核时才会遇到这种情况。

确保您没有从 GRUB1 链接到 GRUB2 菜单(通常发生在升级时),设置GRUB_DEFAULT并运行

grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)

这将从中的配置文件重建 Grub 使用的 grub 配置 /etc/grub.d

它会在构建时列出内核,然后如果您查看,/boot/grub/grub.cfg您会看到一行(应该是第 12 行),上面写着default="x".

重新启动并享受新内核.....