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。

阅读剩余
THE END