我刚刚将 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 开始)。