阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

详解:Windows8+Centos双系统安装与启动

3次阅读
没有评论

共计 5062 个字符,预计需要花费 13 分钟才能阅读完成。

刚买的 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 http://bug.centos.org/

让提交 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

http://mirrors.163.com/centos/6.4/os/x86_64/EFI/BOOT/ 或者是从 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 还是比较靠谱的。

下载地址:http://sourceforge.net/projects/refind/?source=dlp, 这个是二进制版的。

该工具官方地址:http://www.rodsbooks.com/refind/,下载,安装,以及使用说明都有。

安装配置地址:http://www.rodsbooks.com/refind/installing.html#linux

下面是我的操作:

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 来启动

http://www.rodsbooks.com/refind/installing.html#linux 中的 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 上面。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-12-12发表,共计5062字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中