bootmgr引导Centos?centos7如何进入bios
大家好,今天小编来为大家解答bootmgr引导Centos这个问题,centos7如何进入bios很多人还不知道,现在让我们一起来看看吧!
grub4dos引导启动文件
grub4dos引导启动文件(开机进入grub4dos)一、准备一个U盘
这里用到是30G的。
二、写入Grub4dos(以下简称g4d)
首先,将U盘格式化为FAT32。
先在网上下载g4d0.4.5c,打开压缩袋,复制压缩袋grldr放入U盘,我们只需要这个文件。
现在打开UltraISO,注意管理员的权限。
选择写入硬盘图像。
点击方便启动-分区表编辑器。
将U盘设置为活动分区。
电脑
再选择写入grldr引导。
这个U盘应该已经可以启动了。
现在我们来试试效果。新建U盘menu.lst。电脑
打开记事本,随便写两行字。
保存后重启电脑,选择从U盘开始。下图显示我们成功了一半。
三、引导Linux
在U盘中新建几个文件夹,用于放置系统镜像。
顺便说一句,放一些实用工具。
现在把ubuntu.iso和mint.iso放到Ubuntu文件夹,并从Mint从镜像中提取以下两个文件。
最后变成下图。
注意镜像名称不包含空格等字符,只使用字母和数字,否则谁知道会发生什么Bug。
现在修改menu.lst,改成下面的样子。
title启动mint18.3 livecdkernel/ubuntu/vmlinuz boot=casper iso-scan/filename=/ubuntu/mint183kdex64.iso locale=zh_CN.UTF-8initrd/ubuntu/initrd.lztitle启动ubuntu18.04 livecdkernel/ubuntu/vmlinuz boot=casper iso-scan/filename=/ubuntu/ubuntu18042x64.iso locale=zh_CN.UTF-8initrd/ubuntu/initrd.lz不要问他们为什么这么像,反正他们是兄弟。
这样一来,Ubuntu和Mint应该可以启动。让我们谈谈CentOS。
这样一来,Ubuntu和Mint应该可以启动。让我们谈谈CentOS。
下载centos6.10minimal,提取其中的images文件夹。至于为什么需要images,因为安装时要填写。
menu.lst写起来简单一点。title安装centos6.10find--set-root/cent/centos610x64.isomap/cent/centos610x64.iso(0xff)|| map--mem/cent/centos610x64.iso(0xff)map--hookchainloader(0xff)四、引导androidx86先下载安卓系统,根据客户要求,我选择了凤凰系统,版本是3.听说更高的版本会弹出可怕的广告。
这次不需要iso直接解压。这次不需要iso直接解压。
修改menu.lst,由于试用时不能安装,所以试用和安装要分开写。title启动android(凤凰3.06)find--set-root/androidx86/kernelkernel/androidx86/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/androidx86initrd/androidx86/initrd.imgtitle安装android(凤凰3.06)find--set-root/androidx86/kernelkernel/androidx86/kernel root=/dev/ram0 androidboot.hardware=android_x86 INSTALL=1 SRC=/androidx86initrd/androidx86/initrd.img该系统有时无法运行,但只要显卡不太新,应该没问题。五、引导WinPEg4d不支持UEFI,要通过Win10PE解决这个问题。五、引导WinPE
g4d不支持UEFI,要通过Win10PE为了解决这个问题。所以现在我们需要解决这个问题。PEU盘根目录中提取的所有文件。
这样使用UEFI启动时进入WinPE。然后将安装镜像放入文件夹中,进入pe后挂载即可安装。
这样大功告…等一下,Windows10镜像超过4GB,放不进FAT32的U盘。
打开万能的UltraISO,选择压缩镜像。压缩文件在pe里面还是可以用万能的。UltraISO挂载。
六、制作ISO
现在唯一的问题是菜单太丑了。
但g4d也可以制作主题。现在使用MsgDiyer来制作一个message文件,别忘了修改字库,加入菜单中使用的所有汉字。
将该文件放在U盘根目录中menu.lst加入一行。
总结完整的菜单写法。
default 0timeout 10gfxmenu/messagetitle启动Win10PEchainloader/bootmgrtitle启动mint18.3 livecdkernel/ubuntu/vmlinuz boot=casper iso-scan/filename=/ubuntu/mint183kdex64.iso locale=zh_CN.UTF-8initrd/ubuntu/initrd.lztitle启动ubuntu18.04 livecdkernel/ubuntu/vmlinuz boot=casper iso-scan/filename=/ubuntu/ubuntu18042x64.iso locale=zh_CN.UTF-8initrd/ubuntu/initrd.lztitle安装centos6.10find--set-root/cent/centos610x64.isomap/cent/centos610x64.iso(0xff)|| map--mem/cent/centos610x64.iso(0xff)map--hookchainloader(0xff)title启动android(凤凰3.06)find--set-root/androidx86/kernelkernel/androidx86/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/androidx86initrd/androidx86/initrd.imgtitle安装android(凤凰3.06)find--set-root/androidx86/kernelkernel/androidx86/kernel root=/dev/ram0 androidboot.hardware=android_x86 INSTALL=1 SRC=/androidx86initrd/androidx86/initrd.img现在好看多了…emmm,更难看了。总之,这个U盘现在要做成ISO,以后更换U盘时可直接刻录。总之,这个U盘现在要做成ISO,以后更换U盘时可直接刻录。打开万能的UltraISO,默认情况下,新建了一个空光盘,盘中的所有文件,然后添加grldr作为指导文件。现在这个光盘变成了引导光盘,可以保存。顺便说一句,别忘了把光盘大小增加到25g。
centos6 系统启动过程及相关配置文件
Boot Loader是操作系统启动前运行的主引导程序,如 GRUB、NTLDR或 Bootmgr。CentOS6使用 GRUB作为 bootloader,而 CentOS7和 8使用 GRUB2。Boot Loader具有菜单功能、加载核心文件以及控制权转移的功能,仅由446个字节组成,因此它分为两个阶段运行:第一阶段运行446个字节的主程序,第二阶段加载配置文件和环境参数文件。这些文件位于/boot目录下,例如/boot/grub/grub.conf或/boot/grub2/grub.cfg。
MBR包含主引导程序、硬盘分区表 DPT和硬盘有效标志。MBR的分区表只能分4个主分区,因为MBR由三部分组成:主引导程序(446个字节)、分区表(64个字节)和有效标识位(2个字节)。每个分区表项占用16个字节,共4个分区表项,因此只能划分4个分区。
CentOS6的启动配置文件位于/boot/grub/grub.conf。配置文件中包含:默认启动菜单项(default=0)、菜单项等待选项时间(timeout=5)、菜单背景图片路径(splashimage)、隐藏菜单(hiddenmenu)和菜单项定义(title)。菜单项定义包括根设备路径(root)、启动内核(kernel)、内核匹配的 ramfs文件(initrd)等。
修改系统启动级别的方法是编辑/etc/inittab文件。文件中定义了系统默认启动的级别(id:3:initdefault),并列出了不同的启动级别和相应的操作脚本。例如,init 3表示启动多用户模式。
系统初始化和启动对应级别下的服务通过/etc/rc.d目录下的脚本完成。该目录下包括 init.d、rc0.d、rc1.d等目录,分别对应不同的启动级别。使用 ls命令可以查看每个目录下的文件和软链接,了解每个服务在哪些启动级别下运行。例如,network服务在启动级别 2、3、4、5下运行。
使用 chkconfig命令可以查看服务在哪些启动级别下运行。例如,network服务在所有启动级别下运行。通过 chkconfig命令还可以关闭服务在特定启动级别的运行,例如使用 chkconfig network off命令关闭 network服务在启动级别 3的运行。
所有服务运行成功后,可以通过编辑/etc/rc.local文件设置开机自动执行某个命令。该文件位于/etc/rc.d/rc.local目录下,可以通过编辑和添加命令来实现开机自动执行功能。
通过 Ctrl+ Alt+ F2可以切终端,这是由 mingetty调用的 tty2、tty3、tty4、tty5、tty6字符设备文件完成的。这种切换允许用户在不同终端之间进行操作,以查看系统状态或执行其他任务。
启动盘安装centos
启动盘安装centos(启动盘安装centos7)刚买的thinkpad t430u 64位的笔记本,发现装Linux是一件非常麻烦的事,以前装个linux系统,配置双启,1个小时就能搞定,而这一次我连装centos6.4带配置双启,花了三个星期。双启后成功后又装了Arch,现在笔记本是三系统,三周的时间里,笔记本重启不下300次。我也不知道能不能成功,所以事先,并没有做详细的笔记电脑。所以下面,只是大致的记录。
关闭secure boot
开机按F1进入bios=>security=>secure boot
笔记本不同,可能secure boot的配置不同,将其disabled掉,要不然,选择U盘启动,光盘启动都无效,报没有权限。
bios里面配置启动项,默认efi only,改为both
bios=>startup=>uefi/legacy boot
启动优先级里面有三个选择,
1,efi only(注释:默认)
2,both(注释:二种方式都可以)
3,legacy only(注释:grub1)
这里说的启动根选择U盘启动,光盘启动不一样。这里的启动是,多系统安装好了,而选择的启动模式。而U盘启动,电脑光盘启动这种情况是系统还没有装时选择的安装启动。我的本子,按F12可以选择U盘启动,或者光盘启动。
为什么要进行这一步,如果不改,默认是装在第二块硬盘上面的,也就是efi的默认启动盘,安装CentOS时:
win8装centos
根本没有“更换设置”这个按钮,并且引导程序只能安装在/dev/sda2上面,选中的情况下,centos6.4 64位,根本安装不成功,所有包安装完后,配置时提示报错,
an unhandled exception has occurred.this is most likely a bug.plese copy the full text of this exeception and file a detailed bug report.against anaconda at
让提交bug到centos,这个有点坑爹。
将efi only改成both后,重新安装,“更换设置”就会出现,并把引导程序装到centos所在的分区,这样centos可以顺利装完,怎么安装网上太多,在这儿就不哆嗦了。
用easybcd和纯grub1实现双启都不可能
用easybcd和纯grub1实现双启根本不可能,大家就不要浪费时间了。网上有说easybcd2.2可以实现,我试过无数次不行。
在启动优先级里面选择,legacy only,保存重启,久违的centos界面出现了,那叫一个激动。下方向键选择others,windows进不去。总之还是有点高兴的,centos装成功了,我信心大增,通过grub1,我想能启动win8,然后我就开始尝试用grub1启动win8,又试了不知道多少次不行。我想完全靠grub1启动是不可能了
用centos自带的efi实现双启
1,启动优先级里面,选择legacy only,进入到centos
2,下载三个文件,BOOTX64.conf BOOTX64.efi splash.xpm.gz
或者是从iso镜像中解压也行。
3,挂载efi的启动盘
mkdir/mnt/usb
mount/dev/sda2/mnt/usb
cd/mnt/usb
mkdir image
cp/boot/initramfs-2.6.32-358.el6.x86_64.img./image/initrd.img
cp/boot/vmlinuz-2.6.32-358.el6.x86_64./image/vmlinuz
在efi启动盘的根目录也就是/dev/sda2上面,建一个image文件夹,把装好的cenots内核考过来,我为什么要这么干呢,因为BOOTX64.conf这个文件就是这么干的。
[root@localhost image]# ll/mnt/usb/image/
总用量 26812
-rwxr-xr-x. 1 root root 16532286 6月 1 18:11 initrd.img
-rwxr-xr-x. 1 root root 3089184 6月 1 19:11 initrd.img-arch//这是arch的,装了三系统
-rwxr-xr-x. 1 root root 4043888 6月 1 18:10 vmlinuz
-rwxr-xr-x. 1 root root 3778496 6月 1 19:10 vmlinuz-arch//这也是arch的,
4,这一步建redhat目录是多余的,我是按照操作时候的步骤来写这篇博客的
[root@localhost EFI]# mkdir/mnt/usb/EFI/redhat
为什么要redhat,而不是centos呢,装好的centos,/boot/efi/EFI(注:这个目录在系统的boot下面,不在sda2上面),这个目录下就有redhat,后来我才知道,这个目录没用。
将上面的三个文件BOOTX64.conf BOOTX64.efi splash.xpm.gz,copy到/mnt/usb/EFI/redhat目录下面
看一下我的配置:
[root@localhost redhat]# cat BOOTX64.conf
#debug--graphics
default=1
#splashimage=/EFI/BOOT/splash.xpm.gz
timeout=5
#hiddenmenu
title CentOS 6.4
kernel/image/vmlinuz ro root=/dev/sda7
initrd/image/initrd.img
title Windows8
chainloader/EFI/Microsoft/Boot/win8.efi
title Archlinux
kernel/image/vmlinuz-arch ro root=/dev/sda9
initrd/image/initrd.img-arch
上面的win8.efi是bootmgfw.efi的备份,后来我把bootmgfw.efi也替换了,下面会提到的,这东西启动win8用的。
重启测试
重启F1,进bios,把启动优先级设为efi only,保存重起进grub
grub> configfile/efi/redhat/BOOTX64.conf
注意:grub下面是小定的,linux系统下是大写的,最好是用tab键提示。然后三个启动选项就出现了,我选了一下,都是可以进的,那叫一个激动啊,离成功不远了。
grub> chainloader/efi/Microsoft/Boot/win8.efi
win8也是可以进的
只要启动时能让EFI识别BOOTX64.conf这个文件,并读取,就搞这定了。
然后我就开始把redhat这个目录到处copy,发现不行,我又把BOOTX64.conf BOOTX64.efi splash.xpm.gz,这三个文件到处copy,EFI下面的每个目录我都试了。不行。
refind efi启动器
没办法啊,就上google上面找efi启动工具,看了好多,发现The rEFInd Boot Manager还是比较靠谱的。
下载地址:,这个是二进制版的。
该工具官方地址:,下载,安装,以及使用说明都有。
安装配置地址:
下面是我的操作:
cp-r refind/mnt/usb/EFI/
cd/mnt/usb/EFI/refind
rm-rf drivers_ia32
rm-f refind_ia32.efi
rm-rf tools_ia32
[root@localhost boot]# ll/mnt/usb/EFI/refind///删除后就是这样子
总用量 224
drwxr-xr-x. 2 root root 4096 6月 1 17:52 drivers_x64
drwxr-xr-x. 2 root root 8192 6月 1 17:52 icons
-rwxr-xr-x. 1 root root 17774 6月 1 20:55 refind.conf
-rwxr-xr-x. 1 root root 17911 6月 1 17:52 refind.conf-sample
-rwxr-xr-x. 1 root root 170824 6月 1 17:52 refind_x64.efi
drwxr-xr-x. 2 root root 4096 6月 1 17:52 tools_x64
如果你是64的系统,就把32的删除掉,反之就删64的。
mv refind.conf-sample refind.conf
然后配置refind.conf,我的配置肯定不对,如果要对的话,直接是可以用refind进入centos,win8,arch的。而不是refind去调用grub来启动
中的Installing rEFInd Manually Using Linux,安装方法中,6,7这二步,没敢做,我实在无法预测,efibootmgr-c-l\EFI\refind\refind_x64.efi-L rEFInd,执行这个命令到底会有什么后果。
重启后,无法进入refind界面
然后就在仔细阅读文件
rename EFI/BOOT/refind_x64.efi to the name of the boot loader it's replacing—it should become EFI/BOOT/bootx64.efi or EFI/Microsoft/Boot/bootmgfw.efi.
发现有上面的东西,操作如下:
[root@localhost EFI]# cp-r./Microsoft/Boot/./Microsoft/Boot_bak
[root@localhost EFI]# cp-r./refind/*./Microsoft/Boot/
[root@localhost EFI]# cd./Microsoft/Boot/
[root@localhost Boot]# cp bootmgfw.efi win8.efi//上面提到的win8.efi就是在这儿来的
[root@localhost Boot]# mv refind_x64.efi bootmgfw.efi
先把EFI/Microsoft/Boot/这个目录备份,这样我不管怎么配置Boot的目录,我可以还原,进WIN8绝对没问题。efi启动,会默认读取/EFI/Microsoft/Boot/bootmgfw.efi,我的机子是这样子的,规定死了。
重启后,可以进入refind的引导界面,但是没有一个系统能进
refind配置不正确,无法进入任何一个系统,但是我发现refind的第二个引导项读取到了/grub/BOOTX64.conf,并且是默认的centos的BOOTX64.conf,grub是什么时候建的我都忘了,里面是下载的原始的centos的BOOTX64.conf BOOTX64.efi splash.xpm.gz
[root@localhost refind]# cp/mnt/usb/EFI/redhat/*/mnt/usb/EFI/grub
[root@localhost refind]# cd/mnt/usb/EFI/Microsoft/Boot/
[root@localhost Boot]# vim refind.conf
timeout 2
default_selection 2//将第二引导项调为默认
知道refind读取哪个启动文件就好办了,把redhat下面已经配置好的文件copy到grub目录下就搞定了。
就这样我的三系统启动搞定了,不过还有缺点,
第一,引导是分二步的,首先是refind引导,然后refind调用BOOTX64.conf,在通过grub来引导,之后才能进入系统。
第二,内核版本,是copy到了,efi的启动盘上面,升级内核,也用不了,除非在重新将内核copy到sda2上面。