2024年2月21日发(作者:)
LinuxGrub总结GNUGRUB的前身为GrandUnifiedBootloader。目前GRUB分成GRUBlegacy和GRUB2。版本号是0.9x以及之前的版本都称为GRUBLegacy,从1.x开始的就称为GRUB2。grub2采用模块化的设计,主要配置文件是/boot/grub/,但是这个文件的权限是444,连root也不让修改,这是刻意为之的,不要修改文件权限,的内容更新由update-grub命令来更新,其实就是执行grub-mkconfig-o/boot/grub/来更新,此文件会在更新内核自动更新,在/boot/grub目录下有很多模块文件,以在按需时自动加载模块每段模块配置的加载以###BEGINxxx###开始,以###ENDxxx###结尾。一、grub2主要有三部分组成:配置文件/etc/default/grub/etc/grub.d/boot/grub/描述grub的默认配置文件,可以修改一些常见的参数这个文件夹下面是一些生成文件的可执行脚本,可以修改系统引导时读取的文件之一,由其他文件生成的,一般不在这里修改update-grub和grub-mkconfig的作用都是一样的。update-grub是Debian系Linux操作系统专用的,其它Linux操作系统不一定可以使用。grub-mkconfig是Linux操作系统都通用的命令。-grubupdate-grub主要是在每次配置文件有更新后生成新的,其实update-grub是调用grub-mkconfig,在系统中还有一个update-grub2,发现他是调用-mkconfig调用grub-mkdevicemap和grub-probe生成-probe从给定的设备上探测设备信息
二、/etc/default/grub/etc/default/grub控制grub-mkconfig的操作,grub里面是以键值对存在的选项,如果值有空格或者其他字符需要用引号引起来,参数如下参数描述默认的菜单选择项,值可以是数字,默认从0开始,值也可以是title后面的字符串,当值是‘saved’时有特殊含义:默认的菜单选则项会被保存在GRUB_SAVEDEFAULT中,下次启动时会从这个值启动。当值为saved是可以用grub-set-default和grub-reboot来设置默认启动项,grub-set-default直到下次修改前都有效,grub-reboot下次启动时生效只有这个值是true,GRUB_DEFAULT是saved时才会起作用选择菜单的显示时间,默认是5,值是0表示不显示菜单选项,值是-1表示无限期的等待做出选择grub2第一次执行时会寻找其他操作系统,如果没有检测到则会将菜单隐藏,如果有其他操作系统才会显示菜单,如果参数大于0,则会等待响应的秒数,但是不会显示菜单,可以按住shift显示菜单菜单中的描述名称,采用命令lsb_release判断,应该是红帽系列的,如果不是就归为Debian此行将追加到所有的linux定义内核行的后面,不论是救援模式还是一般模式次选项只会追加在一般模式后面,同上启用console,默认注释状态在grub中指定root时可以使用UUID,默认注释图形化菜单的分辨率,默认注释GRUB_DEFAULTGRUB_SAVEDEFAULTGRUB_TIMEOUTGRUB_HIDDEN_TIMEOUTGRUB_DISTRIBUTORGRUB_CMDLINE_LINUXGRUB_CMDLINE_LINUX_DEFAULTGRUB_TERMINAL=consoleGRUB_DISABLE_LINUX_UUID=trueGRUB_GFXMODE=640x480GRUB_DISABLE_LINUX_RECOVERY=true禁止显示救援模式#Ifyouchangethisfile,run'update-grub'afterwardstoupdateGRUB_DEFAULT=0#设置默认启动项,按menuentry顺序如果要默认从第四个菜单项启动,数字改为3,若改为saved,则默认为上次启动项GRUB_TIMEOUT="10"#设置进入默认启动项的等候时间,默认值10秒,按自己需要修改,单位为秒改改为零和负值为无限等待操作GRUB_DISTRIBUTOR=`lsb_release-i-s2>/dev/null||echoDebian`#获得发行版名称(比如Ubuntu,Debian
GRUB_CMDLINE_LINUX_DEFAULT="quietsplash"#选择启动的环境,“quietsplash”为图像界面,“text”为文本界面#GRUB_CMDLINE_LINUX="noresume"#手动添加内核启动参数,比如acpi=offnoapic等可在这里添加#Uncommenttodisablegraphicalterminal(grub-pconly)#GRUB_TERMINAL=console#设置是否使用图形介面。前面有#注释(使用图形界面),前面没有#注释(仅使用控制台终端,不使用图形介面))#Theresolutionusedongraphicalterminal#notethatyoucanuseonlymodeswhichyourgraphiccardsupportsviaVBE#youcanseetheminrealGRUBwiththecommand`vbeinfo'#GRUB_GFXMODE=640x480#设定图形介面分辨率,如不使用默认。把前面#去掉,把分辨率改为800x600或1024x768#Uncommentifyoudon'twantGRUBtopass"root=UUID=xxx"parametertoLinux#GRUB_DISABLE_LINUX_UUID=true#取消注释以阻止GRUB将传递参数"root=UUID=xxx"传递给Linux内核#Uncommenttodisablegenerationofrecoverymodemenuentrys#GRUB_DISABLE_LINUX_RECOVERY="true"#定是否创建修复模式菜单项,前面有#注释(建立修复模式).前面没有#注释(不建立修复模式#Uncommenttogetabeepatgrubstart#GRUB_INIT_TUNE="4804401"#当GRUB菜单出现时发出鸣音提醒,户无法看到屏幕特别有用,默认关闭----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------GRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed's,release.*$,,g'/etc/system-release)"GRUB_DEFAULT=savedGRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="gfxterm"GRUB_BACKGROUND=/boot/grub2/images/B_GFXMODE=1440x900,1024x768,640x480GRUB_CMDLINE_LINUX="crashkernel=autospectre_v2==centos/=centos/swaprhgbquiet"
GRUB_DISABLE_RECOVERY="true"GRUB_TERMINAL_OUTPUT这个变量在Centos/RHEL系统中,默认值是”console”,需要修改成”gfxterm”,才能显示图片背景。添加GRUB_BACKGROUND变量,指定图片背景的位置。添加GRUB_GFXMODE变量,指定grub引导界面的分辨率。----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------三、/etc/grub.d/目录update-grub命令执行时会读取此目录下的文件,并将配置合并至中,中的菜单顺序是由此目录中的文件顺序决定的,文件开头数字较小的会先执行,全英文名字的文件将会在最后执行,自定义选项在40_custom中定义,或者建立一个新文件,此目录下的文件必须有执行权限才会被update-grub读取,并把配置合并到中。配置文件00_header描述配置初始的显示项目,如默认选项,时间限制等,一般由/etc/default/grub导入,一般不需要配置05_debian_theme配置引导画面,文字颜色等主题10_linux30_os-prober40_custom41_custom定位当前操作系统使用中的root设备内核的位置用来搜索linux和其他系统,此脚本中的变量用来指定在/boot/grub/和grub2菜单中的名称显示方式,可以修改/etc/default/grub光比这个脚本用来加入用户自定义的菜单样板,将会在执行update-grub时更新至中判断此配置文件是否存在,如果存在就加载它
四、查看是否安装grub及版本Grub-install--version五、手动更新grub


发布评论