㈠ GRUB2的安装和使用
Grub 2的内核是符合multiboot标准的,因此可以在Grub中引导。1、下载解压到某个FAT分区的根目录,会生成/boot/grub目录,Grub 2的文件便在该目录下。2、修改/boot/grub/grub.cfg这是Grub 2的配置文件,它的格式不同于menu.lst,以下是一个例子:set timeout=20set default=0menuentry Chainload First Part {set root=(hd0,1)chainloader +1}menuentry Load linux at Second Part {set root=(hd0,2)linux /vmlinuz root=/dev/hda2initrd /initrd}如果你熟悉Grub,应该可以看明白里面的内容。要注意的是:a、timeout, default等参数用变量来储存d、菜单项由menuentry定义c、第1个分区是(hd0,1)而不是(hd0,0)d、当前支持的启动方式是chainload,linux和multiboot3、在Grub中使用以下的命令进入Grub2root (hd0,0)kernel /boot/grub/core.imgboot(hd0,0)请用存放Grub2的分区的名字来代替4、进入Grub 2后,在菜单界面下输入 c 便可进入控制界面。
㈡ grub2启动顺序怎么把win放在最下面把Ubuntu放到最上面
你好!
grub2 引导菜单的配置文件,默认为 /boot/grub/grub.cfg
对grub的各个配置文件修改后,需要执行
sudo update-grub
才能产生新的 grub.cfg 引导菜单。
如果有什么不明白的,可以追问我。
㈢ 自动生成grub2配置
解决方法:用LiveCD(本人用的是Ubuntu 9.10的安装光盘)修复Grub2的具体方法如下:1、用Ubuntu9.10光盘进入菜单栏后选择“试用而不是安装Ubuntu9.10的系统选项”;2、进入试用的系统后,打开终端,输入终端命令:sudo fdisk -l (查看计算机分区列表)请记录下来根分区 / 和 /boot 分区安装的位置(我的根分区位于/dev/sda6,/boot没有单独分区(若有则假设位于/dev/sda7)),下面就以我的分区为例说明,请大家根据自己的磁盘分区情况进行相应修改;3、在终端输入命令: sudo -i (取得root特权)mount /dev/sda6 /mntmount /dev/sda7 /mnt/boot (如果/boot没有单独分区则不要执行这个命令)grub-install –root-directory=/mnt/ /dev/sda (注意此命令中root前面是两个减号横杠)4、执行完以上步骤和命令,重新启动系统。此时出现双系统启动菜单,且可正常进入ubuntu9.10,却无法进入windows xp了。注意:如何你是删了一个系统导致的,而此时的grub.cfg里面还是会有那个系统的,需要将其用“#”来逐行注释掉或删除掉,这里由于是要在root权限下才行,所以在使用状态下,只能启动终端,赋予root权限(命令:sudo -i)找到对应的文件后,用命令gedit grub.cfg打开该文件,如果修改后不能保存则需要使用chmod a+x grub.cfg赋予可修改的权限。如果没有成功出现双系统启动菜单,而是进入到有grub版本,下面是sh:grub> 这说明grub还缺少grub.cfg(这是grub2的启动项配置,在grub的目录下)文件,将对应的grub.cfg文件复制过去即可,这里要用root权限,可以通过终端下的sudo -i获得,然后进入到grub文件下,使用gedit grub.cfg,弹出一个gedit编辑框,将前面的grub.cfg文件的内容拷贝到这里,保存即可继续修复如下:进入Ubuntu9.10系统,打开终端,输入命令:sudo update-grub (重建GRUB列表,将windows xp引导项修复)sudo grub-install /dev/sda (重新写入第一分区mbr)5、重新启动系统,双系统启动应该恢复成功。 若还是无法进入windows xp,可以尝试手动修改grub.cfg文件,若想修改启动顺序的话,也要修改grub.cfg文件。
㈣ Grub2知识点整理(略)
GRUB2命令
Set 设置环境变量 set root='hd0,msdos1'
menuentry “title” [–class=class …] [–users=users] [–unrestricted] [–hotkey=key] [–id=id] [arg …] { command; … }
定义一个名为”title”的菜单项。当此菜单项被选中时,GRUB将会把环境变量”chosen”的值设为”id”(使用了[–id=id]选项)或”title”(未使用[–id=id]选项),然后执行花括号中的命令列表,如果列表中最后一个命令执行成功,并且已经载入了一个内核,那么将执行”boot”命令。
可以使用 –class 选项指定菜单项所属的”样式类”。从而可以使用指定的主题样式显示菜单项。
可以使用 –users 选项指定只允许特定的用户访问此菜单项。如果没有使用此选项,则表示允许所有用户访问。
可以使用 –unrestricted 选项指明允许所有用户访问此菜单项。
可以使用 –hotkey 选项设置访问此菜单项的热键(快捷键)。”key”可以是一个单独的字母,或者'backspace','tab','delete'之一。
可以使用 –id 选项为此菜单项设置一个全局唯一的标识符。”id”必须由ASCII字母/数字/下划线组成,且不得以数字开头。
[arg …]是可选的参数列表。你可以把它们理解为命令行参数。实际上”title”也是命令行参数,只不过这个参数是个必须参数而已。这些参数都可以在花括号内的命令列表中使用,”title”对应着”$1″,其余的以此类推。
insmod mole
载入名为”mole”的GRUB2模块。
chainloader [–force] file
链式加载”file”文件。通常使用磁盘块表示法,例如用'+1'表示当前根分区的第一个扇区。
linux16 file …
以传统的16位启动协议从”file”载入一个Linux内核映像,并将其余的字符作为内核的命令行参数逐字传入。这通常用于启动一些遵守Linux启动协议的特殊工具(例如 MEMDISK )。
[注意]使用传统的16位启动协议意味着:(1)'vga='启动选项依然有效,(2)不能启动纯64位内核(也就是内核必须要'CONFIG_IA32_EMULATION=y'才行)。
initrd16 file
为以16位协议启动的Linux内核载入一个”initial ramdisk”,并在内存里的Linux设置区域设置合适的参数。
[注意]这个命令必须放在”linux16″命令之后使用。
loopback [-d] device file
将”file”文件映射为”device”回环设备。例如:
loopback loop0 /path/to/image ls (loop0)/
可以使用 -d 选项,删除先前使用这个命令创建的设备。
default
默认选中第几个菜单项(从Ɔ'开始计数)
default
默认选中第几个菜单项(从Ɔ'开始计数)
gfxpayload
设置Linux内核启动时的视频模式,可以指定一组由逗号或分号分隔的模式以供逐一尝试:每个模式的格式必须是:'text'(普通文本模式,不能用于UEFI平台),'keep'(继承”gfxmode”的值),'auto'(自动检测),'宽x高','宽x高x色深'之一,并且只能使用VBE标准指定的模式[640×480,800×600,1024×768,1280×1024]x[16,24,32]。在BIOS平台上的默认值是'text',在UEFI平台上的默认值是'auto'。除非你想明确设置Linux控制台的分辨率(要求内核必须”CONFIG_FRAMEBUFFER_CONSOLE=y”),或者打算在BIOS平台上使用图形控制台(要求内核必须”CONFIG_FRAMEBUFFER_CONSOLE=y”),否则不要设置此变量
root
设置”根设备”。任何未指定设备名的文件都视为位于此设备。初始值由GRUB在启动时根据”prefix”变量的值自动设置。在大多数情况下,你都需要修改它。
superusers
设置一组”超级用户”(使用空格/逗号/分号进行分隔),以开启安全认证的功能。
theme
设置菜单界面的主题风格文件的位置,例如:”/boot/grub/themes/starfield/theme.txt”。关于如何定制界面风格(背景图片/字体/颜色/图标等)的细节,可以参考GRUB2手册中的”<u> Theme file format </u>”部分。
timeout
在启动默认菜单项前,等待键盘输入的秒数。默认值是Ƌ'秒。Ɔ'表示直接启动默认菜单项(不显示菜单),'-1'表示永远等待。
pager
如果设为Ƈ',那么每一满屏后暂停输出,等待键盘输入。缺省是'',表示不暂停。
Insmod模块
pxe.mod Driver to provide access to the pxe filesystem
pxecmd.mod Command to control the PXE device
cat.mod Show the contents of a file. 显示文件内容
cmp.mod Compare two files.
configfile.mod configure – Load another config file.
cpuid.mod Check for CPU features
crc.mod Calculate the crc32 checksum of a file.
echo.mod Display a line of text.
halt.mod halts the computer. This command does not work on all firmware.
suspend.mod Halt the system, if possible using APM
hello.mod Say hello
help.mod Show a help message.
hexmp.mod Dump the contents of a file or memory.
ls.mod List devices and files.
lspci.mod List PCI devices
normal.mod Grub2 的常规模式(于此对应的是安全模式,内置于 kernel 中)
pci.mod
play.mod 播放音频文件 (体验功能) Play a tune
read.mod Set variable with user input
reboot.mod Reboot the computer. 重启计算机
search.mod Search devices by file, filesystem label or filesystem UUID.
serial.mod
sleep.mod Wait for a specified number of seconds
terminal.mod Select a terminal.
terminfo.mod Set terminfo type.
test.mod test –
ieee1275_suspend Return to Open Firmware prompt
分区管理
pc.mod pc 机上的分区类型(主分区、扩展分区)管理
sun.mod sun 机上的分区类型管理
gpt.mod Read GUID Partition Tables (GPT).
apple.mod 苹果机的分区管理
acorn.mod Linux/ADFS partition tables.
amiga.mod Amiga partition tables (RDB).
图形相关:
vga.mod 字符终端
gfxterm.mod 图形终端
font.mod Specify one or more font files to display.
vbe.mod pc 上图形核心库
vbeinfo.mod List compatible VESA BIOS extension video modes.
vbetest.mod Test VESA BIOS Extension 2.0+ support
video.mod
videotest.mod Test video subsystem
bitmap.mod 图片格式基类
jpeg.mod JPG 图片格式解码
tga.mod TGA 图片格式解码
png.mod PNG 图片格式解码
文件系统
affs.mod Amiga Fast FileSystem.
afs.mod The native AtheOS file-system.
cpio.mod cpio and tar filesystem.
ext2.mod Second Extended filesystem
fat.mod FAT filesystem
hfs.mod HFS
hfsplus.mod HFS+ Filesystem.
iso9660.mod iso9660 implementation with extensions: SUSP, Rock Ridge. (光盘文件系统)
jfs.mod JFS
minix.mod The minix filesystem, version 1 and 2.
ntfs.mod NTFS filesystem
ntfscomp.mod compression support for the NTFS filesystem
reiserfs.mod ReiserFS versions up to 3.6
sfs.mod Amiga Smart FileSystem.
udf.mod Universal Disk Format filesystem. (光盘文件系统)
ufs.mod Unix File System
xfs.mod XFS
fshelp.mod Filesystem helper functions (查找文件、读取文件操作)
磁盘访问
ata.mod ATA disk access.
fs_uuid.mod Access disks by their filesystem UUID.
host.mod Dummy disk driver to provide access to the hosts filesystem. (grub-emu 用以访问宿主文件系统)
loopback.mod Make a device of a file. (command to add loopback devices.)
biosdisk.mod BIOS 磁盘设备 (cdrom, hdd, cdrom 访问层)
lvm.mod mole to read Logical Volumes. (加密卷)
memdisk.mod Access embedded memory disk
raid.mod mole to read RAID arrays.
引导器
appleloader.mod Boot legacy system. (apple legacy boot loader.)
multiboot.mod multiboot – Load a Multiboot kernel.
linux.mod linux – Load a linux kernel.
loadenv.mod load_env – Load variables from environment block file.
blocklist.mod Print a block list.
boot.mod Boot an operating system.
bsd.mod freebsd – load freebsd kernel
chain.mod load another boot loader
其他 (未知)
aout.mod
elf.mod
_bsd.mod
_chain.mod
_linux.mod
_multiboot.mod
IO hook
bufio.mod buffered io access
gzio.mod decompression support for gzip
GRUB2对设备与分区的命名规则举例如下,看看就能明白。需要说明的是磁盘从”0″开始计数,分区从”1″开始计数。
上面所举的例子仅是最常用的情形,更多高级的设备命名规则请参考GRUB2手册中的”<u> Naming convention </u>”与”<u> How to specify devices </u>”部分。此外,如果你想看看当前系统上有哪些设备可用,可以在GRUB SHELL中使用”ls”命令(可能需要先加载必要的驱动模块)。
文件的命名方法有两种:(1)绝对路径表示法,(2)相对路径表示法。举例如下:
上面所举的例子仅是最常用的情形,更多高级的文件命名规则请参考GRUB2手册中的”<u> How to specify files </u>”部分。
磁盘块的命名方法同样也有两种:(1)绝对路径表示法,(2)相对路径表示法。举例如下:
磁盘块几乎只用于链式引导(chainloader)的场合。更多高级的磁盘块命名规则请参考GRUB2手册中的”<u> How to specify block lists </u>”部分。
这是我记录的一些常用的知识点,详细使用以及例子请到这里:
GRUB2配置文件”grub.cfg”详解(GRUB2实战手册) [金步国]
㈤ ubuntu 怎样修改grub.cfg
grub2的启动配置文件grub.cfggrub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst。如果你是多系统,有Ubuntu和windows,那回么用下答面的命令,可以使grub2得到所以可以启动的系统。sudo update-grub实际就是让系统自己生成合适的grub.cfg文件。这个grub.cfg文件是只读属性,so如果你要修改它,需要权限。sudo chmod +w /boot/grub/grub.cfg然后可以编辑grub.cfg了。sudo gedit /boot/grub/grub.cfg
㈥ Linux系统启动及定制过程
CentOS的启动流程总体顺序如下:
POST –> Boot Sequence –> bootloader(MBR) –> Kernel –> 加载rootfs –> switchroot –> /sbin /init –> (配置文件:/etc/inittab, /etc/init/*.conf) –> 根据init配置文件设置默认运行级别 –> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 –> 开启或关闭用户选定的对应运行级别下所对应的服务 –> 启动终端,打印登录提示符。
注:前面加粗部分代表内核空间的系统启动流程,后面未加粗部分代表用户空间的系统启动流程。
第一步:硬件启动过程
POST加电自检
主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS会检测CPU、Memory以及I/O设备是否能够正常运行,如果是个人计算机的话可能还会检测一下显示器。只要一通电,CPU就会自动去加载ROM芯片上的BIOS程序,是这样来实现的。而检测完成之后就进行硬件设备的初始化。
选择启动设备以加载MBR
主要实现的功能是选择要启动的硬件设备,选择了之后就可以读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到具有引导程序(bootloader)的设备就被作为要启动的引导设备。
MBR(Main Boot Record),是硬盘的0柱面,0磁道、1扇区(第一个扇区),称为主引导扇区,也称为主引导记录。它由三部分组 成:主引导程序(BootLoader)、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。 注:硬盘默认一个扇区大小为512字节。 第一部分,主引导程序(BootLoader)占446个字节,负责从活动分区中装载,并运行系统引导程序。 第二部分,硬盘分区表DPT占64个字节,有4个分区表项,每个分区表项占16个字节,硬盘中分区有多少以及每一个分区的大小都记 录在其中。 第三部分,硬盘有效标志,占2个字节,固定为55AA。如果这个标志位0xAA55,就认为这个是MB
第二步:GRUB引导阶段
不同的系统有不同的主引导程序(BootLoader)。Windows使用的是NTLDR(NT Loader,Windows NT系列操作系统)、Bootmgr(Boot Manager,Windows Vista,7,8,10),Linux一般使用的是grub(也叫grub legacy)和grub2。GRUB程序加载执行并引导kernel(内核)程序,其中有三个阶段,Grub引导阶段的文件都在/boot/grub/目录下。
stage1: 这一阶段执行的就是系统安装时预先写入到MBR的Bootloader程序,即是存放在MBR的前446字节里的程序。它的任务仅是读取(加载)硬盘的0柱面,0磁道,2扇区的内容(/boot/grub/stage1)并执行。
stage1.5: 这一阶段是Stage1阶段和Stage2阶段的桥梁,功能是加载stage2所在分区的文件系统驱动,让stage1中的bootloader能识别stage2所在分区的文件系统,此后grub程序便有能力去访问/boot/grub/stage2。
stage2: 这一阶段读取并解析grub的配置文件/boot/grub/grub.cnf,根据配置文件加载内核镜像到内存中,通过initrd程序建立虚拟根文件系统,最后调用(转交)内核。
第三步:内部引导阶段
加载内核,核心开始解压,启动一些最核心的程序。为了让内核足够的轻小,硬件驱动并没放在内核文件里面。系统仅探测可识别到的所有硬件设备,加载硬件驱动程序,即加载真正的根文件系统所在设备的驱动程序(有可能会借助于ramdisk加载驱动),以只读方式挂载根文件系统,运行用户空间的第一个应用程序:/sbin/init。
第四步:init初始化阶段(系统初始化阶段)
虽然CentOS 5、CentOS 6以及CentOS 7的/etc/init配置文件内容各不相同,但总体的启动流程相同:/sbin/init –> 根据/etc/inittab配置文件设置默认运行级别 –> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 –> 关闭或启动用户选定的默认运行级别所对应的服务 。
对于CentOS 5来说,初始化程序init是SysV init,其配置文件为:/etc/inittab; 对于CentOS 6来说,初始化程序init是upstart,其配置文件为:/etc/inittab, /etc/init/ .conf,也就是upstart将配置文件拆分成多个,在/etc/init/目录下以conf结尾的都是upstart风格的配置文件,而/etc/inittab仅用于设置默认运行级别; 对于CentOS 7来说,初始化程序init是systemd,其配置文件:/usr/lib/system/systemd/, /etc/systemd/system/ ;
具体执行过程:/sbin/init程序会读取/etc/inittab文件确认运行级别,然后执行/etc/rc.d/rc脚本,根据确认的运行级别启动对应/etc/rc.d/rc#.d/目录下的服务(#为0~6),与此同时执行系统初始化脚本/etc/rc.sysinit(软链接,指向/etc/rc.d/rc.sysinit),还会加载/etc/rc.local(软链接,指向/etc/rc.d/rc.local文件)用户自定义服务(脚本)。
CentOS7中初始化进程变为了systemd,systemd即为system daemon,是Linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。与多数发行版使用的System V风格的init相比,systemd采用了以下的新技术:A.采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;B.用Cgroup代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
第五步:启动终端
根据前面获取的运行级别来启动终端,mingetty程序是用于启动终端的,它会调用登录程序login,这样就能显示出登录提示符了,类似mingetty这种用于打开终端的程序还有getty等。而如果默认运行级别为5,则会打开图形界面。
第一步:硬件启动过程
这一步和CentOS6差不多,详细请看1.1内容。
第二步:GRUB引导阶段
从这一步开始,CentOS6和CentOS7的启动流程区别开始展现出来了。CentOS7的主引导程序使用的是grub2,执行过程是先加载boot.img、core.img两个镜像,再加载MOD模块文件,把grub2程序加载执行,接着解析配置文件/boot/grub/grub.cfg,根据配置文件加载内核镜像到内存,之后构建虚拟根文件系统,最后转到内核。
CentOS7中使用命令进行配置,而不直接去修改配置文件了。grub.cfg配置文件开头注释部分说明了由/etc/grub.d/目录下文件和/etc/default/grub文件组成。改好配置后都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,将配置文件重新生成。
第三步:内部引导阶段
这一步与CentOS6也差不多,加载驱动,切换到真正的根文件系统,唯一不同的是执行的初始化程序变成了/usr/lib/systemd/systemd。
第四步:init初始化阶段(系统初始化阶段)
CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target(这是一个软链接,与默认运行级别有关)。然后执行sysinit.target来初始化系统和basic.target来准备操作系统。接着启动multi-user.target下的本机与服务器服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。
注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。
unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。(也就是CentOS6中的服务器启动脚本)
第五步:启动终端
systemd执行sysinit.target systemd启动multi-user.target下的本机与服务器服务 systemd执行multi-user.target下面的/etc/rc.d/rc.local Systemd执行multi-user.target下的getty.target及登录服务 getty.target是启动终端的systemd对象。如果到此步骤,系统没有指定启动图形桌面,到此就可以结束了,如果需要启动图形界面,要在此基础上启动桌面程序。
从 CentOS 7 版本之后,系统开始用 systemd 实现init进程,系统启动和服务器守护进程管理器功能,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程。
unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息。
3.2 system unit文件格式
/usr/lib/systemd/system:发行版打包者使用,每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/
/etc/systemd/system:系统管理员和用户使用,管理员建立的执行脚本,类似于/etc/rcN.d/Sxx的功能,比上面目录优先运行
/lib/systemd/system::ubutun的对应目录
/run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行
unit 格式说明:
service unit file文件通常由三部分组成:
Unit段的常用选项:
Service段的常用选项:
Install段的常用选项:
注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件,而后可以选择重启。
首先在启动界面按e编辑启动参数,
将ro参数更改为rw init=/sysroot/bin/sh,按ctr + x启动系统
按下图执行命令更改root密码
㈦ grub2 怎么安装和使用
grub-install 是gurb1 的命令grub2应该使用grub2-install。在/boot/grub 建立一个配置文件名为: grub.cfg也有可能是/boot/grub2/grub.cfg 这跟你的设置有关。root 权限执行grub2-mkconfig>/boot/grub/grub.cfg或者:grub2-mkconfig>/boot/grub2/grub.cfg重启电脑应该就能看到菜单了。
㈧ grub2引导配置问题 由于特殊需要想在grub.cfg中添加一条菜单引导另一个grub.cfg
grub2:menuentry "Other grub.cfg" { set root= configfile /path/to/other/grub.cfg}syslinux:LABEL othermenuMENU LABEL Other MenuKERNEL vesamenu.c32APPEND othermenu.cfg或者LABEL new_configCONFIG /path/to/new/config.cfg
㈨ 如何配置Ubuntu 16.04 GRUB 2引导加载程序
GRUB2是大多数Linux操作系统的默认引导加载程序。GRUB是GRandUnifiedBootloader的缩写,它是Linux启动时首先要加载的一个程序,此后它会负责载入并将控制权交给Linuxkernel,并由Linuxkernel负责对操作系统的其它部分进行初始化。在本文中,我们将对Ubuntu16.04LTS桌面版GRUB2引导加载程序的重要配置进行介绍,当然操作和配置也与其它Linux发行版中的GRUB配置通用。GRUB2引导加载程序设置GRUB2的默认配置文件是/boot/grub/grub.cfg,它是Linux启动引导过程中非常主要的一个文件,除非你已经非常熟悉,否则不要直接编辑或修改此文件。有关GRUB2的所有设置默认都存放在/etc/default/grub文件中,对其内容的更改将直接反馈到GRUB2。为保险起见,我们先将它进行备份:sudocp/etc/default/grub/etc/default/grub.bak我们先来看看GRUB引导装载程序的主要选项:cat/etc/default/grub每当编辑了该配置文件之后,需要执行如下命令将变更应用到GRUB2:sudoupdate-grub下面我们开始对GRUB2bootloader进行三项重要的优化调整。1.选择默认操作系统为加快开机引导过程,用户可以手动指定默认要从哪个系统开始引导。如果设置为0则表示从GRUB选单中的第一个系统开始引导,如果设置为1则表示从第二个条目开始引导,以此类推。如果你装了多个操作系统,可以使用GRUB_DEFAULT=saved参数从最后一个系统开始引导,配置好后你每次重启计算机都会直接从最后一个系统开始启动。注意:此功能还需配合一个GRUB_SAVEDEFAULT=true条目才能生效。为了不至于数不清楚个数和方便配置,还可以直接指定GRUB开机默认引导系统的名称,例如你的GRUB选单中有「Lubuntu14.04LTS」条目,便可以直接指定GRUB_DEFAULT=Lubuntu14.04LTS默认启动Lubuntu。2.设置超时时间默认情况下,启动菜单停留让用户选择的时间为10秒。用户可以直接在配置文件中增长或缩短等待时间,如果将GRUB_TIMEOUT设置为0,则表示忽略选单直接按上步中选择的默认操作系统进行引导。3.更改GRUB背景图片要更改GRUB背景图片非常简单,只需将准备好的图片复制到/boot/grub/路径即可。GRUB仅支持265色JPG/JPEG格式图片,所以建议大家使用PNG图片。背景图片替换好之后记得执行sudoupdate-grub使之生效。
㈩ 简述grub启动引导程序配置及命令行接口详解
1、grub 命令行接口(一次性设置) 系统启动过程中按 c 键可进入grub 命令行界面,就可以自定义grub 启动参数了。常用命令有: help ##查询帮助 help COMMAND ##查询命令帮助 ls : 显示系统磁盘及分区情况 root (hd#,#) :将hd#的第#号分区设置为根分区;(CentOS 6) kernel /PATH/TO/KERNEL_FILE : 设定本次启动用到的内核文件(CentoS 6) set root=(hd#,msdos#) : 将第#块硬盘的第#个分区设置为根分区;(CentOS 7) linux /PATH/TO/KERNEL_FILE : 设定本次启动用到的内核文件(CentoS 7) r oot=/dev/mapper/cl-root ro init=/bin/sh : 指明根分区路径;以ro/rw格式挂载; 第一个运行的程序是bash ; initrd /PATH/TO/INITRAMFS_FILE_FILE : 为选定的内核提供额外的ramdisk ; CentOS 7: 然后boot 重启,将会出现以下定制的系统了: CentOS 6: 2、grub 配置文件: 永久配置是要在grub 的配置文件中配置的; CentOS 6 : /boot/grub/grub.cfg default=0 : 设置默认启动菜单项;编号从0开始; timeout=5 : 设置菜单项等待被选择的时长 title CentOS Express ##定义内核菜单选项 root (hd0,0) kernel /vmlinuz-VERSION-release ro [selinux=0] root=/dev/mapper/vg0-root (根据系统设置) initrd /initramfs-VERSION-release.img CenOS 7 : /boot/grub2/grub.cfg (/etc/grub2.cfg ), 不要直接修改 ; grub2-mkconfig会调用/etc/grub.d中的脚本去搜集/etc/default/grub 中的配置参数,生成/etc/grub2.cfg ; /etc/default/grub中的参数被修改,就可以使用grub2-mkconfig重新生成/etc/grub2.cfg #grub2-mkconfig –o /boot/grub2/grub.cfg 3、给Grub 添加保护 CentOS 6: 配置项: default=0 timeout=5 password [–md5] STRING : 菜单编辑认证 ; title TITLE : root (hd#,#) : kernel /PATH/TO/VMLINUXZ_FILE [PARAMETERS] initrd /PATH/TO/INITRAMFS_FILE password [–md5] STRING : 启动选定的内核或操作系统时需要进行认证;CentOS 7: a.添加grub菜单和命令行的密码认证: >>> grub2-setpassword ##输入密码两次生成/boot/grub2/user.cfg 文件 >>> cat /boot/grub2/user.cfg GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.CC6F56BFCFB90C49E6E16DC7234….. >>>grub2-mkconfig -o /boot/grub2/grub.cfg ##重新生成配置文件 Generating grub configuration file … Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue- Found initrd image: /boot/initramfs-0-rescue-.img done >>> shutdown -r now 再次键入e 或 c ,系统都会要求输入用户名和密码的; rel: https://www.thegeekdiary.com/centos-rhel-7-how-to-password-protect-grub2-menu-entries/ b. 删除grub 密码保护(删除掉user.cfg,重新生成配置文件即可) >>>rm -rf /boot/grub2/user.cfg >>>grub2-mkconfig -o /boot/grub2/grub.cfg >>>reboot