去掉关机时出现的画面Linux,探讨:取消Ubuntu系统错误关机后停留在GRUB界面

废话:

话说这问题纠结了很久,于是。。。 终于,我憋不住啦,还是上去CSDN和Ubuntu中文论坛问别人吧,找找思路也好。。。 纠结,问了整天,哪里都没人回答,好吧~不过呢,终于,最后,解决啦~

我的提问:

现在我的计算机上只安装了Ubuntu一个操作系统,正常情况下,开机时会默认正常启动,想实现一个简单的功能,想知道如何去做~

功能:

在Ubuntu正在开机的过程中,如果将计算机断电,那么再次启动计算机后,计算机会进入到

GNU GRUB 1.99-21ubuntu3版的界面中,而此时菜单选项并未倒计时的功能,一定得手动选择,在这么一个前提条件下,有什么方法能让计算机自动选择第一项呢?

PS: 在正常开关机的时候,计算机会自动选择第一项的。

上网看过 upstart 和ubuntu启动过程原理介绍 这文章,不过好像没什么关联,不知道这个GNU是属于开机后的哪个步骤,到了下载init这里没有了呢?

我想实现这个功能,正常的思路是去修改GNU的配置文件吗? 看过GNU的修改方法,不过修改了后,好像对这种情况没有作用。

求指教~

解决过程:

刚刚开始,还不知道那个画面叫做GRUB呢,将这个界面的一些文字打上去Googole一下,知道了,原来启动到这个画面是GRUB的菜单选择页面。

OK,总算是知道一点点东西啦,不过呢,这个GRUB又是属于整个启动流程中的哪一步呢,以前在探讨装多系统的时候见过这个名词,不过现在已经忘得差不多了,于是呢,再次打开搜索引擎,我真怀疑自己是不是有搜索引擎依赖症呢~“UBUNTU系统启动过程”,好吧,经过一大堆的网页的筛选后,终于得到一个符合自己想要答案的网页了,终于想起来,BIOS->MBR->GRUB,就是你,就是你,就是MBR后面,咦,这样的话,岂不是不用经过系统的处理,那为什么问题会出现呢,难道是GRUB出现问题了?是不是就意味着可以排除系统的问题了呢?

问题探讨到这里,这时候终于有网友回答我的帖子,“我用ext2也这样,换成ext4后就没出现过了 ”哇塞,原来这个也会有影响,于是,我再查。。。df -T 话说,我是一个超级菜鸟,第一次接触Linux-Ubuntu,以前一直在windows下呢,所以呢,连查个分区信息也得上网搜搜,结果,纠结。。。我就是ext4啊,为什么呢?于是,我试着朝着这个解决问题的思路,去找答案,分区格式对启动这里有影响?找着找着找到这里去了http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=257333 ,知道了这个引导是放在/root/下面的,只是呢,这个跟我的问题没啥大关系,还打算将这个root独立建一个分区呢,嘿嘿,不过,在找资料的过程中,还没有那样做,因为这时候又想先去了解GRUB的启动过程又是怎样的,于是,先转向GRUB的启动过程,这又是一大堆的资料呢~纠结,看了好多的文章,设置都没有说断电这种情况,只有说正常情况的,还多次想放弃了。。。 只是。。 后来,还是硬着头皮上吧,即然配置文件配不了,那就试着看源代码,看看它写这个的思路是怎么的,终于,开始看起了grub.cfg   哈哈,发现亮点啦~

接下来,不重复说啦,直接将帖子上的粘上来~

哈哈哈,终于解决啦~

先是找了很久的GRUB的资料,知道原来GRUB可以修改,后来,尝试从网站上看那些教程修改GRUB,不过还是没有效果,后来,再深入一点,去看/boot/grub/grub.cfg,才发现,原来啊,这里有个可恶的

if [ "${recordfail}" = 1 ]; then

set timeout=-1

else

set timeout=0

正是被这个-1给害惨啦~

于是呢,因为看见这个grub.cfg文件写着DO NOT EDIT THIS FILE 尝试再通过/etc/default/grub修改,才发觉自己创的这个语句无效SET_RECORDFAIL_TIMEOUT = 0无效呢。。。

em06.gif

嘿嘿,后来,在组长的带领下,还是使用暴力的方法,将/boot/grub/grub.cfg权限改为可写入,然后直接将这个timeout给改了,结果,终于成功啦啦啦~

折腾了两天多的时间的一个问题,记录一下下下下下下~

em11.gif

em11.gif

em11.gif

em11.gif

em11.gif

顺便,如果哪位大牛会使用常规的方法,不那么暴力的话,告诉小弟一声罗~

zhw2101024:

grub.cfg是通过/etc/grub.d目录里面的脚本生成的,可以切换到里面通过

grep -r recordfail .

搜索一下,自己分析脚本代码,很简单的。注意最后的"."不能少,表示当前目录

我:

如果修改这个脚本,能提供一点思路吗?先谢过啦~

表示完全的菜鸟。。脚本如何改或者上网搜哪些关键词才好也不知道。。。。

zhw2101024:软件更新一般不会修改/etc里面的配置文件,可以放心修改。如果需要新的配置才能发挥新版本功能的话,安装的时候会提示是否修改配置文件。grub.cfg开头的注释说得很清楚,/etc/grub.d里面的是模版文件,只是简单的替换一下变量就几乎原样写入grub.cfg,grub那个是配置文件,概念不同的。

grub.cfg怎么改这里就怎么改,结构上不会有任何不同,就是一些数值用变量表示了,这些都是shell脚本。主要找以cat << EOF开头,EOF结尾的代码段,这是输出到grub.cfg文件的语句

我:

em05.gif

em05.gif

em05.gif

啦啦啦~ 我好像找到啦~ 可以确认一下吗?

我从 /etc/grub.d/00_header 这个文件里面找到了

make_timeout(){

cat << EOF

if["\${recordfail}" = 1]; then

set timeout = 0

else

set timeout = ${2}

fi

EOF

}

嘿嘿, 直接修改了。

先发表,回宿舍,回复中后续。。   写得有点乱,有点急。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值