[已解决] ubnuntu升级时遇“What would you like to do about menu.lst?”

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
norx
帖子: 47
注册时间: 2008-10-30 3:20

[已解决] ubnuntu升级时遇“What would you like to do about menu.lst?”

#1

帖子 norx » 2009-03-03 11:54

正在升级ubuntu,突然弹出对话框:
1.png
What would you like to do about menu.lst?
(下拉菜单的内容如下)
│ install the package maintainer's version
│ keep the local version currently installed
│ show the differences between the versions
│ show a side-by-side difference between the versions
│ show a 3-way difference between available versions
│ do a 3-way merge between available versions (experimental)
│ start a new shell to examine the situation


[Help]显示:
A new version of /boot/grub/menu.lst is available, but the version installed currently has been locally modified.

请问:这个一步应选择那个选项,各个选项各是什么意思?谢谢。


PS : 之前的menu.lst被我修改过。
上次由 norx 在 2009-03-21 0:14,总共编辑 1 次。
思辨 - 进取 - 乐观
myubunt_720
帖子: 232
注册时间: 2008-06-04 11:24

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#2

帖子 myubunt_720 » 2009-03-03 16:59

这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定。────其实也就是修改一下 kernel 2.6.24-XX-generic 之类的最后的几个数字。 把某个旧版本的整个字段复制,粘贴,然后改改数字就好。 ls /boot 可以看到你都有哪些版本的内核

install the package maintainer's version 这个选项应该是会自动更新menu.lst文件的,大胆的选它吧,重新启动后就可以选择新版本内核引导了。

其他几个无关紧要,显示一下新旧版本的信息??
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#3

帖子 photor » 2009-03-03 17:14

myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定。────其实也就是修改一下 kernel 2.6.24-XX-generic 之类的最后的几个数字。 把某个旧版本的整个字段复制,粘贴,然后改改数字就好。 ls /boot 可以看到你都有哪些版本的内核

install the package maintainer's version 这个选项应该是会自动更新menu.lst文件的,大胆的选它吧,重新启动后就可以选择新版本内核引导了。

其他几个无关紧要,显示一下新旧版本的信息??
我想,如果你曾经极其厉害地手动改过menu.lst文件,导致更新程序无法自动识别你的启动信息并作相应修改的话,选择 install the package maintainer's version 可能会有一定的风险,最好以后都一直自己手动改 :em09
myubunt_720
帖子: 232
注册时间: 2008-06-04 11:24

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#4

帖子 myubunt_720 » 2009-03-03 23:12

photor 写了:
myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定。────其实也就是修改一下 kernel 2.6.24-XX-generic 之类的最后的几个数字。 把某个旧版本的整个字段复制,粘贴,然后改改数字就好。 ls /boot 可以看到你都有哪些版本的内核

install the package maintainer's version 这个选项应该是会自动更新menu.lst文件的,大胆的选它吧,重新启动后就可以选择新版本内核引导了。

其他几个无关紧要,显示一下新旧版本的信息??
我想,如果你曾经极其厉害地手动改过menu.lst文件,导致更新程序无法自动识别你的启动信息并作相应修改的话,选择 install the package maintainer's version 可能会有一定的风险,最好以后都一直自己手动改 :em09
阿,极其严重地修改也不至于阿,就是把XP的字段剪切、粘贴到最前面了。偶能做到的修改也就是复制粘贴,剪剪贴贴 :em06

不怕,这个文件真的就只是一个文本!那几行记录只是指明了内核文件的路径,貌似没啥重要的参数。 :em06

实在不行就祭出宝刀!────把备份的menu.lst拿出来。。 :em11 :em06
头像
jxhow
帖子: 5859
注册时间: 2008-10-24 22:02
来自: 浙江

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#5

帖子 jxhow » 2009-03-04 0:08

myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定。────其实也就是修改一下 kernel 2.6.24-XX-generic 之类的最后的几个数字。 把某个旧版本的整个字段复制,粘贴,然后改改数字就好。 ls /boot 可以看到你都有哪些版本的内核

install the package maintainer's version 这个选项应该是会自动更新menu.lst文件的,大胆的选它吧,重新启动后就可以选择新版本内核引导了。

其他几个无关紧要,显示一下新旧版本的信息??


汗 我按照你的方法 :em11 “手动” 用上了新内核 :em03
http://sb.google.com/ 提问前 请在右上角搜索一下
头像
norx
帖子: 47
注册时间: 2008-10-30 3:20

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#6

帖子 norx » 2009-03-04 16:56

myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定。────其实也就是修改一下 kernel 2.6.24-XX-generic 之类的最后的几个数字。 把某个旧版本的整个字段复制,粘贴,然后改改数字就好。 ls /boot 可以看到你都有哪些版本的内核

install the package maintainer's version 这个选项应该是会自动更新menu.lst文件的,大胆的选它吧,重新启动后就可以选择新版本内核引导了。

其他几个无关紧要,显示一下新旧版本的信息??
Got it. 谢谢你 ^_^
思辨 - 进取 - 乐观
myubunt_720
帖子: 232
注册时间: 2008-06-04 11:24

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#7

帖子 myubunt_720 » 2009-03-06 13:26

photor 写了:
myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定。────其实也就是修改一下 kernel 2.6.24-XX-generic 之类的最后的几个数字。 把某个旧版本的整个字段复制,粘贴,然后改改数字就好。 ls /boot 可以看到你都有哪些版本的内核

install the package maintainer's version 这个选项应该是会自动更新menu.lst文件的,大胆的选它吧,重新启动后就可以选择新版本内核引导了。

其他几个无关紧要,显示一下新旧版本的信息??
我想,如果你曾经极其厉害地手动改过menu.lst文件,导致更新程序无法自动识别你的启动信息并作相应修改的话,选择 install the package maintainer's version 可能会有一定的风险,最好以后都一直自己手动改 :em09
哇哈哈,真的被你说中了! :em38 :em38

在另外一台机器上,我同样把XP的字段剪切到最前面了,更新menu.lst后,XP字段消失了! :em20 :em06 :em69 :em69

复制粘贴搞定…… :em06
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#8

帖子 billbear » 2009-03-06 16:46

myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定
可以运行
sudo update-grub
就会再给你一次选择的机会
photor 写了:我想,如果你曾经极其厉害地手动改过menu.lst文件,导致更新程序无法自动识别你的启动信息并作相应修改的话,选择 install the package maintainer's version 可能会有一定的风险,最好以后都一直自己手动改 :em09
正常情况下不会,最多是丢失 windows 启动项,而且老的文件在 menu.lst~ ,可以再抄过来 :)
但是如果你修改了注释部分的某些行,确实是会出毛病的:
位于 ## ## Start Default Options ## 和 ## ## End Default Options ## 之间的注释不是可以乱动的,他是告诉 update-grub 脚本在升级内核时如何更新 menu.lst。在这个部分中两个以上的 # 打头的才是真正的注释。一个 # 打头的是控制 update-grub 脚本如何运作的变量。 重要的有

# kopt=root=UUID=112d6f08-9a31-43f8-8a17-89e46ba65e17 ro
内核选项。如果修改了这里的 uuid,下一次碰到升级的时候就会使用这个错误的 uuid 来更新 menu.lst,导致无法启动。

# groot=(hd0,2)
grub 启动分区,修改了这项安装新内核更新 menu.lst 时会写入错误的 root (hdx,y) 导致无法启动!

# defoptions=quiet splash
默认项的附加内核选项。即,默认项是用 kopt+defoptions 做内核选项

# altoptions=(recovery mode) single
(其他项的名字) 其他项的附加内核选项。可以用多行写多项

# memtest86=true
这个可以改成 false,升级时不会再加入基本没用的 memtest86

一般没有人会去动这些东西,但是有一类情况,比如删除了某个 windows 分区导致 grub 启动分区编号改变,某种原因导致 uuid 改变,大家都知道要修复 grub,修改 menu.lst,然后就可以启动了,以为完事了。下一次升级更新的时候,发现又不能启动了,menu.lst 又使用了修复前的设置。原因就是改正 menu.lst 的时候要连这几行一并改好才算完
# kopt=...
# groot=...
像这种情况,最简单的办法是系统成功启动后,删除老的 menu.lst,然后运行 sudo update-grub :
update-grub 在有 /boot/grub/menu.lst 存在的时候直接读里面保存的变量来工作,在没有找到 menu.lst 的时候会分析 fstab 和 /boot 下的内核来生成 menu.lst,并以 # 写入那些变量供自己下次使用。如果 menu.lst 错误极多,最好是这样删掉重建。
myubunt_720 写了: 哇哈哈,真的被你说中了! :em38 :em38

在另外一台机器上,我同样把XP的字段剪切到最前面了,更新menu.lst后,XP字段消失了! :em20 :em06 :em69 :em69

复制粘贴搞定…… :em06
还是不够了解 menu.lst 啊。仔细看 menu.lst 里这几行,已经写得很清楚了:
...
...
...
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST
# 你的 xp 启动项应该放在这里,或者更前面 :)
### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
...
...
...
## ## End Default Options ##

...
...
...
### END DEBIAN AUTOMAGIC KERNELS LIST
...
...

他告诉你,非 ubuntu 的启动项请放在 ### BEGIN AUTOMAGIC KERNELS LIST 之前,或者 ### END DEBIAN AUTOMAGIC KERNELS LIST 之后。否则,下次升级还会把你的 xp 项抹掉的。这两行之间的部分是由 update-grub 维护的。如果你真的需要把 xp 项往前移的话,请再往前一点 :)
myubunt_720
帖子: 232
注册时间: 2008-06-04 11:24

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#9

帖子 myubunt_720 » 2009-03-07 1:24

billbear 写了:
myubunt_720 写了:这是升级了内核了,需要修改下启动菜单上的内容
keep the local version currently installed 这个是保留现有版本的menu.lst不变。
使用它的后果是:你虽然下载了新版本的内核在机器上,但是你开机启动界面时新内核是不会出现在选择菜单里面的,供你选择的还是没升级前的menu.lst里面记录的旧版本的内核。

我就这样选了一次,最后手动修改了menu.lst搞定
可以运行
sudo update-grub
就会再给你一次选择的机会
photor 写了:我想,如果你曾经极其厉害地手动改过menu.lst文件,导致更新程序无法自动识别你的启动信息并作相应修改的话,选择 install the package maintainer's version 可能会有一定的风险,最好以后都一直自己手动改 :em09
正常情况下不会,最多是丢失 windows 启动项,而且老的文件在 menu.lst~ ,可以再抄过来 :)
但是如果你修改了注释部分的某些行,确实是会出毛病的:
位于 ## ## Start Default Options ## 和 ## ## End Default Options ## 之间的注释不是可以乱动的,他是告诉 update-grub 脚本在升级内核时如何更新 menu.lst。在这个部分中两个以上的 # 打头的才是真正的注释。一个 # 打头的是控制 update-grub 脚本如何运作的变量。 重要的有

# kopt=root=UUID=112d6f08-9a31-43f8-8a17-89e46ba65e17 ro
内核选项。如果修改了这里的 uuid,下一次碰到升级的时候就会使用这个错误的 uuid 来更新 menu.lst,导致无法启动。

# groot=(hd0,2)
grub 启动分区,修改了这项安装新内核更新 menu.lst 时会写入错误的 root (hdx,y) 导致无法启动!

# defoptions=quiet splash
默认项的附加内核选项。即,默认项是用 kopt+defoptions 做内核选项

# altoptions=(recovery mode) single
(其他项的名字) 其他项的附加内核选项。可以用多行写多项

# memtest86=true
这个可以改成 false,升级时不会再加入基本没用的 memtest86

一般没有人会去动这些东西,但是有一类情况,比如删除了某个 windows 分区导致 grub 启动分区编号改变,某种原因导致 uuid 改变,大家都知道要修复 grub,修改 menu.lst,然后就可以启动了,以为完事了。下一次升级更新的时候,发现又不能启动了,menu.lst 又使用了修复前的设置。原因就是改正 menu.lst 的时候要连这几行一并改好才算完
# kopt=...
# groot=...
像这种情况,最简单的办法是系统成功启动后,删除老的 menu.lst,然后运行 sudo update-grub :
update-grub 在有 /boot/grub/menu.lst 存在的时候直接读里面保存的变量来工作,在没有找到 menu.lst 的时候会分析 fstab 和 /boot 下的内核来生成 menu.lst,并以 # 写入那些变量供自己下次使用。如果 menu.lst 错误极多,最好是这样删掉重建。
myubunt_720 写了: 哇哈哈,真的被你说中了! :em38 :em38

在另外一台机器上,我同样把XP的字段剪切到最前面了,更新menu.lst后,XP字段消失了! :em20 :em06 :em69 :em69

复制粘贴搞定…… :em06
还是不够了解 menu.lst 啊。仔细看 menu.lst 里这几行,已经写得很清楚了:
...
...
...
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST
# 你的 xp 启动项应该放在这里,或者更前面 :)
### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
...
...
...
## ## End Default Options ##

...
...
...
### END DEBIAN AUTOMAGIC KERNELS LIST
...
...

他告诉你,非 ubuntu 的启动项请放在 ### BEGIN AUTOMAGIC KERNELS LIST 之前,或者 ### END DEBIAN AUTOMAGIC KERNELS LIST 之后。否则,下次升级还会把你的 xp 项抹掉的。这两行之间的部分是由 update-grub 维护的。如果你真的需要把 xp 项往前移的话,请再往前一点 :)
:em06 哈哈,文件里的说明没有仔细看过…… :em06 :em06

学习了,多谢指点,现在去剪切粘贴去 :em06

linux太强大了啊…………………… :em38 :em38
头像
白鳍豚
帖子: 2356
注册时间: 2009-01-19 23:03

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#10

帖子 白鳍豚 » 2009-03-18 20:01

请问升级新内核之后,老内核是否能够删除?谢谢!
已经删除了 :em02
附件
Screenshot-新立得软件包管理器 .png
头像
franklee88
帖子: 104
注册时间: 2009-02-26 13:07

Re: ubnuntu升级过程中“What would you like to do about menu.lst? ”的问题

#11

帖子 franklee88 » 2009-03-19 17:44

很精彩的帖子!学习了!
willian001
帖子: 133
注册时间: 2006-07-06 2:07

Re: [已解决] ubnuntu升级时遇“What would you like to do about menu.lst?”

#12

帖子 willian001 » 2009-04-09 23:19

8楼的兄弟说的太经典了
头像
forevercz
帖子: 325
注册时间: 2008-01-24 22:08

Re: [已解决] ubnuntu升级时遇“What would you like to do about menu.lst?”

#13

帖子 forevercz » 2009-06-24 11:15

看了很多帖子,这一篇最有用,终于自己搞定升级内核的事情了!嘿嘿,本人菜鸟。 :em02
回复