当前位置:首页 » 编程软件 » 内核编译程序会修改grub2

内核编译程序会修改grub2

发布时间: 2022-04-20 03:30:03

Ⅰ Fedora 16中/boot/grub2/grub2.cfg的内容是什么

grub2和以前grub不太一样,grub2.cfg是由脚本生成的,不需要你修改(系统也不希望你修改)
如果你要编辑grub有两个地方可以选择
1./etc/default/grub 可以设置默认启动项和内核参数等等(ubuntu下有这个文件,fedora忘了)
2./etc/grub.d/
这下面你会看到 类似00_header 的文件,这就是脚本啦,前面的00应该是编译顺序,具体要修改你还是看看教程吧
修改完成
用root权限执行 grub2-mkconfig -o /boot/grub2/grub2.cfg 更新grub (这命令是fedora的我记得很清楚,比ubuntu下的长多了= =!)

Ⅱ 如何在linux上通过GRUB添加内核参数

编辑修改grub引导配置文件,在加载内核命令(对于grub legacy,为kernel,grub2为linux)那一行后面添加需要的参数;或者直接在命令行界面输入相应命令后面添加参数。

Ⅲ centos7.0grub2整理有什么用

GRUB2取代了grub逐渐成为主流,引导菜单启动从/boot自动生成,不是menu.lst手工配置。具体内容参照 /boot/grub2/grub.cfg 该文件每次执行grub2-mkconfig后自动
生成,所以修改该文件在内核升级后会失效。此外,设备是以0开始编号,分区改为1开始编号。
grub2主要关联文件如下:
/etc/default/grub :改变引导菜单外观的主要配置文件。
[root@localhost grub.d]# ls /etc/grub.d
00_header 01_users 20_linux_xen 30_os-prober 41_custom
00_tuned 10_linux 20_ppc_terminfo 40_custom README
各种生成grub.cfg的脚本文件。其中00-header配置初始的显示项目,如默认选项,时间限制等,由/etc/default/grub导入,一般不需要配置。
10-linux:定位当前操作系统使用的root设备内核的位置。
30-os-prober:用来搜索linux和其他系统,此脚本中的变量用来指定 /boot/grub2/grub.cfg和grub2菜单中的名称显示方式。我看不懂艾。
40-custom:用来加入用户自定义的菜单样板,执行grub2-mkconfig时更新至grub.cfg中,加入新的系统就靠他了
网上搜索出来的双系统共存解决方案通常直接修改/boot/grub2/grub.cfg,之前我也这么修改的,但是很多脚本我看不懂啊,其实直接修改40-custom就可以了。
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry ' win7/8/10 xp'
set root =(hd0,1)
chainloader + 1注意看注释啊,有3行是注释啊,从第4行开始,不要有空行噢,否则grub选择时也会有空行。 root后接启动分区,注意分区是由1开始,如果你先装的win7,那么hd0,1,否则修改成适用的配置吧。
最后执行 grub2-mkconfig -o /boot/grub2/grub.cfg 从新生成gurb.cfg文件。有兴趣的话可以备份之前的gurb.cfg文件,比较一下新旧的区别。
楼主如果想学习更多Linux系统知识,可以网络《Linux就该这么学》,不错的一本Linux入门教程。

Ⅳ RHEL与SLES中的Linux启动选项有哪些重大变化

当Linux服务器启动时,计算机首先读取GRUB2配置去寻找哪个磁盘里包含根文件系统,以及在哪里找到内核与initramfs文件包。如果某些配置错误,系统管理员就必须对其进行设置以使服务器正常启动。

采取以下步骤实现,当GRUB2运行到可以看见启动选项时,单击Esc键。选择你想要设置的选项,按e键进入编辑模式。这将在/etc/default/grub and /etc/grub.d 中的GRUB2配置文件离显示所有选项。

在Linux启动选项菜单中选择你要编辑的行,通常这个是关乎内核的。一些最重要的启动选项在RHEL 7以及SUSE LES。Systemd.units或者systemd服务集合需要重启,代替急救模式和应急模式。

Systemd.unit为Linux启动选项提供许多服务,关于systemd.unit 服务这里有几个关键点需要提醒所有的Linux管理员们:

● rescue.target:急救模式,为整个运营系统下载提供所需的服务,但不包括网络服务或者其他非必要的服务。急救模式可与来自初始化启动过程的运行级1相提并论。

● emergency.target:最低级模式,不加载任何东西。你只需要一个启动文件系统,几乎没有服务。这种目标能与在启动一个初始化服务器时通过init=/bin/bash模式相比。

● multi-user.target:替代运行级。它是默认下服务器启动的基本模式。

● graphical.target:运行级5的新版本,可以启动所有的服务以及图形界面。

● poweroff.target:旧有运行级0,用于关闭服务器。

● reboot.target:旧运行级6,用于重新启动服务器。

为了在启动中具体指定目标,将以上的模式放到GRUB2负载内核的程序行中。如此,你要么需要指定语句systemd.unit=emergency.target,或者将选定的模式名加到负载内核的程序行末尾处。

键入目标启动模式时,使用systemctl命令,语句为systemctl isolate reboot.target.。分布式供应商还会采用一些以前的命令操作以简化这个过程。所有如果你还没有习惯新的工作方式,使用telinit6命令可能会奏效。

当你完成提交了GRUB菜单的配置修改之后,按Ctrl+x进入启动。这时就进入了一个特定的模式下,例如应急模式,输入systemctl命令去查看哪一个systemd服务已经被启动了。这将提供所有加载服务的概览图。在应急模式中,至少应该出现如下项

故障修复之后,使用systemctl命令后面加上你想进入的目标模式的名称,该步骤用于重启正常服务器状态,例如输入systemctl isolate multi-user.target启动运行级3。

修改GRUB2默认设置

如果你进入了GRUB2启动菜单修改默认的GRUB2启动项,你也许将设置永久的默认启动模式配置。输入grub2-mkconfig -o /boot/grub2/grub.cfg,这个命令将你习惯使用的启动服务器默认GRUB2配置文件/boot/grub2/grub.cfg进行了改写。这个操作只有在GRUB配置包含真正的错误时才会生效。

改变GRUB配置改变了GRUB2的默认行为。/etc/default/grub文件夹包含了许多你不得不进行修改的GRUB2 设置。GRUB_CMDLINE_LINUX命令行包含了默认服务器内核启动的所有项。修改该命令行就可以永久的修改默认设置。

除了/etc/grub/default 文件以外,/etc/grub.d目录下也包含了很少的需要修改的选项。

在提交了GRUB2配置文件的所有修改之后,使用grub2-mkconfig -o /boot/grub2/grub.cfg命令把它们写入你的系统。

Ⅳ 请教如何用grub2引导linux内核

执行update-grub应该可以找到新内核的引导吧?如果不行,编辑grub.cfg手动添加启动项:
menuentry "我的Ubuntu " {
linux /boot/vmlinuz-xxx
initrd /boot/initrd-xxx.lz
}
或者编辑/etc/grub.d/40_os-prober,将上面代码添加到文件末。然后执行update-grub。

Ⅵ 如何修改新内核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照抄就行,注意空格。

Ⅶ 请教Grub2的安装

编译:
./configure
make
sudo make install
默认路径为 /usr/local/

安装:
先mount上要安装grub的分区,然后
sudo grub-install [--root-directory=DIR] /dev/hda //引导记录安装到mbr,[ grub文件安装到 DIR/boot/grub/ ]
sudo grub-install [--root-directory=DIR] /dev/hda3 //引导记录安装到分区3,[ grub文件安装到 DIR/boot/grub/ ]
grub-install 是一个脚本,它完成以下任务:
* 调用 grub-mkdevicemap 创建设备映像文件 /boot/grub/device.map
* 复制 *.mod *.lst *.img 文件到 /boot/grub/
* 调用 grub-probe 自动侦测文件系统类型
* 调用 grub-mkimage 生成grub2内核文件 /boot/grub/core.img
* 调用 grub-setup 安装引导记录到mbr或分区

创建grub菜单:
update-grub
它也是一个脚本,将根据 /usr/local/etc/grub.d/ 里的文件自动创建 /boot/grub/grub.cfg
最后对这个菜单文件手工修改成适合的样子即可

以下是一个安装的例子:
root@sunshine-laptop:/dev# mkdir /media/sda8
root@sunshine-laptop:/dev# mount /dev/sda8 /media/sda8
root@sunshine-laptop:/dev#
// sda8为系统 / (/boot)挂载点 指定/dev/sda 写入mbr

root@sunshine-laptop:~# grub-install --root-directory=/media/sda8 /dev/sda
Installation finished. No error reported.
This is the contents of the device map /media/sda8/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0) /dev/sda
root@sunshine-laptop:~#

// 如果这里/dev/sda 指定为优盘的设备就会把grub2写入u盘,可以用该u盘引导系统。

Ⅷ 重新编译了一下linux内核,现在系统进不去了。。。

可以用原来的内核启动。
开机出grub选单时参考提示 (可能要按esc退出gurb图形界面) 然后按C键 进入grub控制台。
>root(hdX,x) ------>你的根分区 可以 root ( 然后 tab 看看有没有可选,一般是hd0 ,然后 root (hd0, 再tab。
>kernel 你的内核
>initrd 你的 initrd 文件
>boot

你重新编译内核后,可能要重mkinitrdfs 重做 initrd
内核模块变化的话,可能需要depmod -a 重新产生mole依赖

普通用户:回答供参考 grub部分对 grub2不能保证正确 grub2没仔细看过how-to 思路就是这样子的,详细参考 man 或 help

比如我的vmware里的archlinux里是这样子的
grub选单 按C
>root (hd0,0)
>kernel /vmlinuz26
>initrd /kernel26.img
>boot

我的debian是grub2引导的还没仔细看过 grub2 怎么回事

===========================================================
linux内核现在一般都是 grub或别的loader 加载启动的,最早的时候内核支持通过特殊方式写入磁盘引导,开机bios直接jump到内核的代码启动,现在的版本都不用了。 如果你是通过修改 grub.cfg改的内核实际上还是通过grub引导的样子。是不是你的timeout=0 了

以前记得grub开机好像有个热键停在菜单上。很模糊,当前没找到资料。

一点建议:ununtu是debian的引申版本, 编译了新内核放再/boot后,应该可以 update-grub 开自动编辑grub。
=============================================================
不行就用你的安装光盘引导系统吧,或者做个grub引导盘吧

Ⅸ debian内核解压后怎么编译

下载最新的内核源代码linux-2.6.33.1.tar.bz2,放在/liqiong/Linux内核 目录下,liqiong是Linux OS的第一个用户名。
2、进入Linux内核源码所在的目录(cd Linux内核),解压该内核代码到/usr/src下:
sudo tar -xjvf linux-2.6.33.1.tar.bz2 -C /usr/src
3、进入Linux内核源码解压后的目录/usr/src/linux-2.6.33.1(cd /usr/src/linux-2.6.33.1)
4、sudo make mrproper 净化解压后的源代码
5、sudo make menuconfig 对内核选项进行配置
在配置过程中会发生如下错误:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
make: *** [menuconfig] 错误2
解决办法:
(1)cd / 进入根目录后,在终端输入:sudo apt-get install ncurses
信息:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
现在没有可用的软件包 ncurses,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
E: 软件包 ncurses 还没有可供安装的候选者
(2)然后接着在终端输入:sudo apt-get install libncurses*
(3)再cd /usr/src/linux-2.6.33.1进入内核所在目录,再次输入sudo make menuconfig就好了!
6、对于配置可选择General Setup或者选择其他的自定义选项保存后退出。
7、sudo make dep 建立模块间的依赖信息
8、sudo make clean 删除配置时留下的一些不用的文件
(7、8两步可能对于一些PC没有作用)
9、sudo make bzImage 编译内核,内核较小时可以用make zImage
10、sudo make moles 编译内核模块
当然,在编译内核时,可通过make-j<n>来加速内核的编译,n一般等于CPU数量的两倍。单核,n=2;双核,n=4.即执行sudo make -j4就可以编译了!
11、sudo make moles_install 安装内核模块
12、sudo make install 安装内核
13、cd / 后在终端输入:sudo mkinitramfs 2.6.33.1 -o /boot/initrd.img-2.6.33.1-generic
14、到此为止,构建内核完毕,第十二步把内核映象和System.map拷贝到/boot/下
#sudo cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic
#sudo cp System.map /boot/System.map-KERNEL_VERSION
#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
15、
(1)修改grub配置文件
在终端输入:sudo update-grub2,就会把刚才编译的内核加入了Grub;(此时就可以重启了,重启后在Grub启动项里多了Ubuntu, Linux 2.6.33.1-generic)
若还需修改(在Ubuntu10.04中没有采用menu.lst,而是用的grub.cfg(/boot/grub/)),则修改grub.cfg就可以了,
在终端中输入:sudo gedit /boot/grub/grub.cfg 用root账户进入grub.cfg并编辑
(或用sudo chmod +w /boot/grub/grub.cfg改变grub.cfg的权限后在进行编辑)
如将Grub中的menuentry "Ubuntu, Linux 2.6.33.1-generic"{...}修改为menuentry "Ubuntu, Linux 2.6.33.1-liqiong"{...}(Linux 2.6.33.1-generic是我们刚才编译的内核)
(2)修改default变量
在/boot/grub/grub.cfg中,设置set default="【某个数字】"(设置Grub启动项里的默认启动项)
在Grub启动项里,从0数起,我的XP在第10项,所以set default="10",即XP就是默认的启动项了。
最后重启即可。

Ⅹ ubuntu下怎么编译linux内核

Ubuntu 系统
1. 准备工作
切换为管理员权限,sudo –i 输入用户密码 进入root 权限
apt-get install build-essential kernel-package libncurses5-dev libqt3-headers
build-essential (基本的编程库(gcc, make 等)
kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig 要调用的)
libqt3-headers (make xconfig 要调用的)
2. 下载特定版本的内核源代码
3. 复制源码linux-3.2.12.tar.bz2 到/usr/src 目录,解压缩
命令.假设源码存放在/home 目录下
cp /home/linux-3.2.12.tar.bz2 /usr/src
cd /usr/src
tar xvjf linux-3.2.12.tar.bz2
解压后生成 linux-3.2.12 目录
4. cd linux-3.2.12
接下来配置内核选项
make menuconfig 这一步比较复杂,内核选项很多,可以使用当前内核的配置选项,
但编译内核的时间会比较长,因为装系统的时候使用的配置是适应大多数系统的,非定
制选项。关于内核配置选项怎么定制,网上很多。
5. 把正在使用系统中的内核配置文件/usr/src/linux-headers-2.6.38-13-generic/.config 拷到
/usr/src/linux-3.2.12 目录下
cp /usr/src/ linux-headers-2.6.38-13-generic/.config /usr/src/ linux-3.2.12
执行:
cd /usr/src/ linux-3.2.12
make menuconfig
终端会弹出一个配置界面
注意主菜单最后有两项:
load a kernel configuration…
save a kernel configuration…
先选第一项load ….,意思是,利用当前的内核配置详单来设置将要编译的内核,然后选save 这一项保存,最后退出配置界面
6. 开如编译安装新内核
执行:make mrproper (清除以前曾经编译过的旧文件,如果是第一次编译,可不执行)
执行:make (编译,加-j4,必须加,双核并行编译,速度快很多,不过使用原先配置
选项)
然后:make install
再:make moles (编译模块)
再:make moles_install (安装模块)
最后创建initrd 文件:
mkinitramfs -o /boot/initrd.img-linux-3.2.12
7. make install 以后,系统自动更新了启动项,可以cat /boot/grub/grub.cfg 看下.之前的启动项不能删除,如果编译内核不成功,之前的启动项又不见了,系统也就跪了
8. reboot

热点内容
sql条件判断if 发布:2025-03-31 17:03:27 浏览:667
网银密码怎么找回 发布:2025-03-31 16:59:17 浏览:480
goc的编译运行的快捷键是什么 发布:2025-03-31 16:58:19 浏览:442
技能触发脚本 发布:2025-03-31 16:58:14 浏览:704
如何知道自己安卓的具体版本 发布:2025-03-31 16:39:37 浏览:895
杂牌电脑怎么查看配置 发布:2025-03-31 16:27:34 浏览:199
linux27 发布:2025-03-31 16:26:51 浏览:150
个人电脑怎么搭建邮政服务器 发布:2025-03-31 16:22:33 浏览:692
安卓短信铃声在哪里设置 发布:2025-03-31 16:22:28 浏览:725
手机无线网密码怎么改 发布:2025-03-31 16:20:58 浏览:369