ubuntu 启动选择内核,ubuntu无法启动
大家好,关于ubuntu 启动选择内核很多朋友都还不太明白,今天小编就来为大家分享关于ubuntu无法启动的知识,希望对各位有所帮助!
如何修改新内核linux下的grub配置
进入ubuntu的请看这里。本帖是根据论坛里相应的帖子整理的。很可能有漏掉不少帖子,请使用论坛的搜索功能。
下面将给出很多种方法来解决这个问题:
1.用livecd(推荐)
2,用安装cd
3,使用grub4dos
4,使用grub软盘
上面的每一种方法都涉及到grub,通常,并不需要你对grub有多少了解,只要认真地读下面的帖子,参照这些帖子去做,就能解决问题,但是,如果你想不仅知其然,还要知其所以然,那你可以看一下grub入门
1,使用livecd(推荐)
使用任何你喜欢的linux livecd
取得root权限并在终端下运行grub
代码:
sudo-s-H
grub
然后,使用如下指令:
oneleaf写道:
代码:
grub>root(hdX,Y)
grub>setup(hd0)
root是/boot分区的地址,如果不知道可以在 root(hd0,时按Tab键来补全。
如果按TAB键后你还拿不定主意,那么下面一段也许对你有帮助:
一般/boot就装在你的ubuntu系统所在的分区(如果你不知道ubuntu装在哪儿,可以用cfdisk命令查看)要小心的是hda1相当於(hd0,n-1),例如
yonsan写道:
如果linux安装根分区为hda5则执行的是root(hd0,4)而不是 root(hd0,5)
最后,用
代码:
grub>quit
退出grub,重启系统。
下面是一个例子,(在这个例子中一些步骤并不是必需的——可能这些步骤是否必需取决於你的livecd能否自动挂载你的本地硬盘的分区)
yonsan写道:
假定ubuntu系统安装在hda5,文件系统为ext3格式
使用 livecd启动成功后运行终端:
代码:
sudo-s-H
mkdir-p/mnt/hda5
mount-t ext3/dev/hda5/mnt/hda5
mount-t proc none/mnt/hda5/proc
chroot/mnt/hda5/bin/bash
source/etc/profile
grub
2)在grub命令行模式下输入:
代码:
root(hd0,4)
setup(hd0)
2,使用ubuntu安装cd恢复
firehare写道:
1.启动系统到 Ubuntu安装CD
2.沿着屏幕上的命令直到(千万不要超过这一步)
[!!] Fdisk disks
3.按'Ctrl+ Alt+ F2'
4.按'Enter'进入终端
5.
~# mkdir/ubuntu
~# fdisk-l/dev/discs/disc0/disc
~# mount<你的Ubuntu根设备所在位置>/ubuntu/
~# chroot/ubuntu/
sh-2.05b#
6.假设/dev/hda1是/boot分区的地址
7. sh-2.05b# grub
grub> root(hd0,0)
grub> setup(hd0)
grub> quit
或者,你可以按照新手指南的做法
1.用 Ubuntu安装 CD开机
2.在"boot:"提示号出现时,键入"rescue"当作开机参数
boot: rescue
3.顺着屏幕上的指示跟着作
4,例如假设/boot磁碟分区位在/dev/hda
代码:
#grub-install/dev/hda
3.1使用grub4dos重新安装grub
下载
oneleaf写道:
将 grldr复制到 C:\,编辑C:\BOOT.INI,加入一行:
C:\GRLDR="GRUB"
再手工输入启动命令
例如:
root(hd0,0)
kernel/vmlinuz-2.6.10-5-686 root=/dev/hdb5 ro quiet splash
initrd/initrd.img-2.6.10-5-686
savedefault
boot
进入后,重新安装grub就好了。
重新安装grub:
例如假设/boot磁碟分区位在/dev/hda
代码:
# grub-install/dev/hda
3.2用grub4dos代替grub来引导系统
yonsan写道:
(凭记忆写的,如有不完善请指正)
如果你的系统现在正在使用grub引导方式,请在操作之前查看一下/boot/grub/menu.lst的内容,建议将/boot/grub/menu.lst拷贝一份以备用(将它拷到fat32分区中存放就可以)!
进入window环境下
1)下载grub020p.zip并解压到C盘根目录下,打开C盘查看一下是否有以下文件
C:\boot(文件夹)
C:\ChangeLog.txt
C:\compile
C:\COPYING
C:\grldr
C:\grub4lin
C:\grub-0.95-patch1-startups
C:\grub-0.95-patch2-findroot
C:\grub-0.95-patch3-ntfs
C:\grub-0.95-patch4-emulation
C:\grub-0.95-patch5-splash
C:\grub-0.95-patch6-scdrom
C:\grub-0.95-patch7-bioscdrom
C:\grub.exe
C:\grub.pif
C:\README.txt
C:\robin.xpm.gz
C:\scratchpad.txt
2)修改C:\boot\grub\menu.lst,用你刚才从linux系统中拷贝的menu.lst覆盖C:\boot\grub\menu.lst
3)进入grub命令行方式(出现grub引导菜单时按c键)
> root(hd0,0)
> setup(hd0)
4)重启计算机
使用DOS引导盘,找到grub文件.
修改grub.conf文件。其中
“default=n”(n是个数字)是grub引导菜单默认被选中的项,n从0开始,0表示第一项,1表示第二项,依此类推。
“timeout=x”(x是一个数)是超时时间,单位是妙。也就是引导菜单显示后,如果x秒内用户不进行选择,那么grub将启动默认项。
“splashimage=xxxxxx”,这是引导菜单的背景图,先不理他。
其它常用项我用下面的例子来说明:
title Red Hat 8.0
root(hd1,6)
kernel/boot/vmlinuz-2.4.18-14 ro root=/dev/hdb7
initrd/boot/initrd-2.4.18-14.img
其中"Red Hat 8.0"是在启动菜单列表里显示的名字
root(hdx,y)用来指定你的boot分区位置,如果你没有分boot分区(本例就没分boot分区),那就指向根分区就行了,hdx是linux所在硬盘,hd0是第一块硬盘,hd1是第二块,依此类推。y是分区位置,从0开始,也就是等于分区号减一,比如你要指向的分区是hdx7,那么y就是6,如果是hdx1,那y就是0。注意root后面要有一个空格。
kernel/boot/vmlinuz-2.4.18-14,其中"/boot/vmlinuz-2.4.18-14"是你要用的内核路径,如果你编译了心内核,把它改成你的新内核的路径就行了。
ro就不用管,写上不会有错。
root=/dev/hdxx指定根分区,本例是hdb7,所以root=/dev/hdb7
initrd xxxxxxxxxxxxx这行不要也行,目前我还不清楚它是做什么用的。
上面是linux的,下面是windows的
title windows 98
rootnoverify(hd0,0)
chainloader+1
title xxxxxxx不用解释了,上面有解释。
rootnoverify(hdx,y)用来指定windows所在分区,x,y跟上面一样,注意rootnoverify后有空格。
chainloader+1照抄就行,注意空格。
Ubuntu更换内核
为了调整毕业设计中内核的特性,记录下Ubuntu内核编译与更换的步骤。
采用版本:ubuntu-16.04.3。
原始内核:linux-4.15.0-142-generic。
新内核目标:linux-4.4.297。
在Linux官方网站下载新内核包(确保与现有系统内核版本差异不大)。
将下载的内核包放置于/usr/src目录下,通过命令解压:`tar-xvJf linux-4.4.297.tar.xz`,或者直接拖放至src目录,解压在src下。
曾尝试使用`apt-get install`下载内核,但因缺少模块导致`make modules_install`环节出错,建议直接从官方网站下载源代码包。
进行内核编译。
执行命令:`make menuconfig`,这是一个图形界面的配置工具,主要用于设置内核选项,例如安全支持等,非特殊需求,这步可略过。
利用`cp`命令将当前内核的配置文件复制到待编译内核文件夹下。
编译过程中,可能会遇到提示信息,如`WARNING`,只需注释掉`/etc/default/grub`文件中的`GRUB_HIDDEN_TIMEOUT=0`即可解决。
完成编译后,重启Ubuntu系统。
进入高级启动设置界面,选择新编译的内核版本,按下回车键。
ubuntu系统无法启动独立显卡
Ubuntu是应用广泛的Linux操作系统,特别是在机器学习应用中,通过调用NVIDIA显卡的GPU进行计算和研究的主要平台之一。但是由于NV显卡的存在,有可能会让Ubuntu在驱动加载上问题,造成开机启动无法进入系统。本人深受这个问题困扰,多次遇到这个问题额表现形式有:
开机进入登录界面显示不正常,且出现即使输入正确用户名和密码也重新进入开机界(Login Loop)。
此外,我遇到的还有开机后显示一个全部都是紫色状态,就是开机背景色,不过死在那里,键盘失效,只能长按开机键关机。
除此之外,还有显示很多行同样的文本,大意是报nouveau ERROR。
问题原因
以上状态的直接问题,都是由于内核与NVIDIA显卡驱动出现问题,使得启动的时候,无法代用NV显卡,造成的现实问题。但为什么开始安装和使用一切顺利,而用过一段时间,就突然不行了呢?请看如下图示:
这是在选择进入Advanced Options for Ubuntu时看到的选项,可以看到内核不止一个,为什么呢?我也没有升级内核啊!答案只能是内核在你不知道的时候升级了。而升级之后的内核,是不会自动加载你的显卡驱动的,那就需要在这个心内核上手动重新安装NV驱动。
解决方案
3.1进入命令行模式
一般情况下这个还不是个问题,只需要Ctrl+Alt+F1,即可进入纯命令行模式,可以通过命令操作系统了。
不过,我遇到了一次无法进入系统的情况,整个系统启动过程停留在了一个全屏是紫色背景色,没有任何输入之处的状态,键盘已经无效。此时,我选择重启Ubuntu系统,进入Advanced Options for Ubuntu状态,选择recovery mode进入系统,进入了那个显示分辨率错误的Login Loop显示界面。此时Ctrl+Alt+F1即可切换进入Linux命令行。
3.2修改grub文件
通过命令sudo vim/etc/default/grub打开并编辑grub文件。
将文件中的GRUB_CMDLINE_LINUC_DEFAULT=”quiet splash”$修改成GRUB_CMDLINE_LINUC_DEFAULT=”quiet splash nomodeset”$,保存退出。然后运行命令sudo update-grub。