Linux 内核升级失败:我该如何删除导致一切崩溃的内核?

Linux 内核升级失败:我该如何删除导致一切崩溃的内核?

我刚刚将 Ubuntu 10.04(服务器版)升级到“2.6.32-36”。但是,升级后服务器无法启动,GRUB 告诉我无法读取标头。

我重启了机器,启动时按住 shift 键,然后 GRUB 显示了旧内核列表。我选择了升级前的那个内核,系统启动后像以前一样运行。

现在,我想摆脱最新的内核,只使用旧内核。因此,我认为我可以运行“apt-get remove linux-image-2.6.32-36-server”,然后重新配置 GRUB。但是,当我运行该命令时,Linux 给出了以下内容:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-image-2.6.32-36-server linux-image-server linux-server
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 128MB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

我真的应该让 Linux 删除“linux-image-server”和“linux-server”吗?这会破坏我的系统吗?现在我正在运行“2.6.32-33-server”。

Linux backupserver 2.6.32-33-server #72-Ubuntu SMP Fri Jul 29 21:21:55 UTC 2011 x86_64 GNU/Linux

答案1

根据我的经验,删除内核包从来不会造成问题。即使你的系统根本没有内核,你仍然可以用可启动 CD 或 DVD 启动它,并在硬盘上将内核安装到系统中。如果真的发生了这种情况(我非常怀疑),你需要做如下操作:

Boot from CD
mount -o bind /dev  <your root directory of hard drive>/dev
mount -o bind /proc  <your root directory of hard drive>/proc
chroot <your root directory on hard drive>
apt-get install <any kernel you like>
update-grub

如果您的服务器不是任务关键型服务器,我建议您尽可能多地学习。这是所有 Linux 用户的精神,不是吗?: )

答案2

为了更安全,您可以从 GRUB 配置文件中删除(或注释掉)较新的内核:

default 0
timeout 3
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

#title Linux 2.6.32-36
#root (hd0,0)
#kernel  /boot/vmlinuz-2.6.39-gentoo-r2 root=/dev/sda1 ro fastboot quiet

title Linux 2.6.32-33
root (hd0,0)
kernel  /boot/vmlinuz-2.6.38-gentoo root=/dev/sda1 ro fastboot quiet

或者将default选项更改为较旧的内核顺序(从 0 开始)。

相关内容