笔记本多硬盘win7下U盘安装Cnetos7引导问题!

CentOS7出来的时间已经不算短了,前段时间一直在虚拟机上使用,最近闲下来了,就像在本身的笔记本上装一个win7和Centos7的双系统体验如下实体机的效果,几经波折以后终于顺利的装上了WIN7和CentOS7的双系统!在这里主要是想分享一下本身遇到的问题,以供网友门参考借鉴!html

首先介绍一下个人电脑配置,个人笔记本型号是Y400,一共有三块硬盘,128ssd(1号) + 1T的hdd(2号) + 1T的hdd(3号);128的SSD被分为两个分区,第一个分区装win7,第二个放游戏和一些免安装的软件;我在第二块硬盘和第三块硬盘用做仓库盘,由于都没有用完,因此随时能够从两块hdd后边划一部分出来使用!linux

我刻录U盘镜像使用的是UltraISO(软碟通) ,刻录完成后的安装步骤网上已经介绍的很详细了,我这里就很少做介绍了,我在安装过程当中选择的是第二块硬盘(也就是2号硬盘,提早已经在windows下画出了136G的未分配空间),选择“我要配空间”,点击“完成”后,选择“标准分区”,而后经过左下角的“+”号分区,分500mb的/boot分区,120GB的/分区,16GB的swap空间,此时而后点击完成,选择“接受更改”,而后一步一步安装配置就好,安装完成后点击重启;ubuntu

因为个人电脑是多硬盘,因此在安装Centos7时安装引导只能装在Centos7所在的那块硬盘上(默认的,若是更改也只能选择不安装引导),此时重启后的电脑没有像网上网友所说的那样“只有Centos7的启动菜单,而没有了win7的引导菜单”,个人电脑直接向往常同样直接进入win7的界面,而后启动进入win7,由于个人ssd默认为第一启动盘,而我装Centos7装在了第二块硬盘上,因此对ssd上的东西都没有影响,所以我尝试用第二块硬盘启动(F12选择以第二块硬盘启动),结果是屏幕左上角只有一个点和一个光标,此方法失败(仅仅是个人电脑这样失败了,有网友这样成功过,你也能够试一试);windows

而后在网上查资料,问网友,因而乎就在win7下装了一个EasyBCD,ui

而后重启电脑,就能够看到NeoSmart Linux了(这个名称能够本身改,我改成了“menu list”)。spa

 

 

回车进入该启动项列表htm

启动项列表了,这下总算弄好了,可是回车后,发现屏幕黑屏,没什么反应,因而强制重启电脑,到CentOS Linux启动项列表这里时,不按回车,按字母“E”键,查看一下启动菜单哪有问题:blog

发现这个启动菜单有些问题,个人电脑是三硬盘,而个人CentOS7是装在第二块硬盘上的,上图中我用红色圈出来的那块区域中显然不对,接口

set root='hd0,msdos2'  指定root为第一块硬盘的第二个分区,这里的root对应的是/boot分区(若是没有单独指定/boot分区的,这个root应该指向"/"分区)。游戏

题外话(基础知识补充)

hdx,msdosy

hd指定的是硬盘,以0开始,hd0表明第一块硬盘,以此类推

msdos指定一块硬盘上的分区,以1开始,msdos1表明第一个分区,以此类推(其实直接写1也是能够的)

hda 和sda的区别:

hd表明本机磁盘接口为IDE接口

sd表明本机磁盘接口为SCSI接口

他们都以a开始,以hda或sda表明第一块磁盘,a,b,c,d...以此类推

hda和sda后能够跟数字,表明第一块磁盘的不一样分区;如sda1表明第一块磁盘的第一个分区;

以个人电脑硬盘为例加以说明:

个人电脑有三块硬盘(我电脑是scsi接口的,因此用sd描述,而没有用hd描述):

SSD整块磁盘       分区一(C)       分区二(F)

sda          sda1            sda2

第一块HDD        分区一(D)       分区二(/boot)      分区三(/)     分区四(swap)

sdb                   sdb1               sdb2      sdb3          sdb5

第二块HDD       分区一(E)

sdc                   sdc1

 新手们确定会疑惑为何第一块HDD的分区四编号为sdb5,而不是sdb4,那是由于在mbr分区模式(还有一种GPT分区没有此限制,可是我对这中分区不太了解)下一块硬盘最多有四个主分区,那么超过四个主分区怎么办?此时只能将第四块分区会变成扩展分区,在扩展分区中在进行分区,之后所分配的区域都将被成为逻辑分区,整个扩展分区表明的是sdb4,扩展分区内部进行分区时是从编号5开始的。

若是一个电脑有一块硬盘,硬盘有两个分区,一个主分区,一个扩展分区,扩展分区里只一个逻辑分区,那么主分区就是sda1,另外一个逻辑分区就是sda5

我就说到这里,若是又不明白的或是不懂得,直接问我,或者百度,这些都是很是基础的东西。

 

这句配置语句显然与个人实际状况不符,个人Centos7是装在第二块硬盘的,因此应该是hd1,/boot是第二块硬盘的第二个分区,因此这句应改成

set root='hd1,msdos2',

if下边那一段和else下边那一段是在寻找/boot分区,并为其设定uuid(全球惟一标示),这个东西知不知道无所谓,你只要知道if和else之间那一段中出现hd的地方都必须是hd1,msdos2就好了(这里我查过我经过虚拟机安装的Centos7的grub.cfg,事实证实确实出现hd的地方都要和root设定的值一致)。

知道了这个我就进行了临时修改,而后经过ctrl+X执行启动菜单,结果依然没法进入系统,这就令我很郁闷,难道多硬盘引导Centos7就这么困难?

因而就在网上发帖求教,有个大神告诉我在启动项列表 处选中第一项按"C"(或者在启动项菜单页面按"ctrl + C")进入   grub>  界面,

而后执行(一行一行的执行,不要一次写完再执行)

linux    (hd1,msdos2)/vmlinuz-3...     root=/dev/sdb3  (若是/boot分区不为单独分区,则执行 linux    (hd1,msdos2)/boot/vm...   root=/dev/sdb2);

initrd   (hd1,msdos)/initramfs-3....img    (若是/boot分区不为单独分区,则执行  initrd  (hd1,msdos2)/boot/initramfs-3...img);

boot

上边三行代码,前两行写到数字3时能够按下tab键补齐,root前有空格,其中(hd1,msdos)表明的是/boot分区,root表明的是/分区,因此/boot分区是单独分区和不是单独分区有一点小小差异,老鸟们不要吐槽,我写这么详细主要是为了帮助新手们的!

执行完上边的代码后果然进入了系统,进入新的Centos7配置完成后,再次手动启动了Centos7,有点郁闷,说不定之后启动系统都得用手动加载的方式了,因而我又看了下启动菜单的代码,最终发现菜单用的是linux16和initrd16,以下图

 

我以前能顺利启动用的命令是linux和initrd啊,因而乎抱着试一试的心态将/boot/grub2/grub.cfg里的linux16与initrd16后的16都去掉,将set以后else以前出现hd的地方都改成了'hd1,msdos2',而后重启系统,居然真的经过Centos的启动菜单进入系统了 。

至此,多硬盘下,win7和Centos7双系统的引导终于算是完成了,可是如今终于能正常的使用双系统了!

可是躁动个人并无就此罢手,我忽然想起我以前在个人双硬盘电脑上装win7和ubuntu的双系统时好像也遇到相似的状况(忘记当初有没有使用easyBCD了,可是帮同窗在单硬盘上安装win7和ubuntu的双系统时确实成功了),总是没法启动成功,也没有启动项,因而我在第三块硬盘上分出一块100G的为分配空间,在那块空间安装了ubuntu14.04,安装完成后仍是因为多硬盘的的关系没法启动,本身引导竟然也没有成功,经过在网上查阅相关资料,grub2有一个比较方便而强大的功能,grub2-mkconfig -o /boot/grub2/grub.cfg,这条命令可扫描全部的启动项,并将其显示在启动菜单上(在linux下使用时,它只能扫描到linux能识别的盘符,若是你的windows盘的ntfs的格式,则没法扫描到windows的启动项,若是你想让它扫描到windows的启动项,就必须经过ntfs软件挂在相应的windows系统盘,挂在以后就能扫描到了,关于挂在windows盘可参照个人“Centos6.5系统初学者基本系统配置1”),由于Centos7使用的是grub2做引导的,其内部使用的是grub2,因此我直接进入CentOS7,经过root用户执行grub2-mkconfig -o /boot/grub2/grub.cfg,而后重启电脑,发现果真有有ubuntu的启动项了

而后真的能够进入ubuntu了,看来grub2仍是蛮强大的,有兴趣的可一多多研究,

这里面还有一个不懂得地方,就是若是装单系统或是在虚拟机里装Centos7,linux16和initrd16都没有问题,系统能够启动,可是为何在多硬盘多系统下就没法启动!若是有懂这个东西的麻烦指教一下

相关文章
相关标签/搜索