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

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

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

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

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

然后在网上查资料,问网友,于是乎就在win7下装了一个EasyBCD,

然后重启电脑,就可以看到NeoSmart Linux了(这个名称可以自己改,我改为了“menu list”)。

 

 

回车进入该启动项列表

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

发现这个启动菜单有些问题,我的电脑是三硬盘,而我的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都没有问题,系统可以启动,但是为什么在多硬盘多系统下就无法启动!如果有懂这个东西的麻烦指教一下

转载于:https://www.cnblogs.com/Kosese-zhanglei/p/4153486.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux Apache php MySQL 安装配置(Centos 6.4 yum安装)

一、yum准备 1.Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安…

公司用章知识

最近在走公司的财务报销流程,了解公司财务运作过程中的一些用到的章,现在把公司用章之类的知识点搜集起来,汇总在这里,留以备用。 了解总喜欢刨根问底,那就开始刨起来。 印章的历史 印章是融合了雕刻、书法和绘画等多种…

可变参数模板

【导读】:C 可变参数模板对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象,使用…

【LeetCode】44. Wildcard Matching (2 solutions)

Wildcard Matching Implement wildcard pattern matching with support for ? and *. ? Matches any single character. * Matches any sequence of characters (including the empty sequence).The matching should cover the entire input string (not partial).The functi…

ANTLR 4(一)Getting Started

1. 配置java环境 安装jdk1.7以上版本,我装的是“jdk-8u181-windows-x64.exe”。 设置 “C:\Program Files\Java\jdk1.8.0_181\bin" 到path环境变量。 设置 "C:\Program Files\Java\jdk1.8.0_181" 到 JAVA_HOME 环境变量。 设置 "%JAVA_HOME%\l…

【iOS】Quartz2D图片剪切

一、使用Quartz2D完成图片剪切1.把图片显示在自定义的view中  先把图片绘制到view上。按照原始大小,把图片绘制到一个点上。  代码: 1 - (void)drawRect:(CGRect)rect 2 { 3 UIImage *image2[UIImage imageNamed:"me"]; 4 [image2…

InstallShield 2020

1.新建工程:HOME-New-Basic MSI 2.Gereral Information设置(根据需求自行设置,例如下图) 3.Files and Folders设置 a.将需打包工程拖拽至下方目标文件夹内 b.创建新的Feature c.设置结果如下 4.Shortcuts设置 a.Desktop右键-New…

iOS项目开发— CoreLocation的定位服务和地理编码与发编码实现

一、CoreLocation简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如 (1)导航:去任意陌生的地方 (2)周边:找餐馆、找酒店、找银行、找电影院 2.在上述应用中&#xff0c…

OpenGL-坐标系

笛卡尔坐标系 二维绘图:笛卡尔坐标有一个X轴和一个Y轴组成,X轴为水平方向,Y轴为垂直方向,X和Y相互垂直二维笛卡尔坐标系 三维绘图:笛卡尔坐标多了一个Z轴,Z轴同时垂直于X和Y轴。Z轴的实际意义代表着三维物…

UML类图与类间六种关系表示

1.类与类图 类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性,操作,关系的对象集合的总称. 类图是使用频率最高的UML图之一. 类图用于描述系统中所包含的类以及它们之间的相互关系,帮助开发人员理解系统,它是系统分析和设计阶段的重要产物,也是系统编码和测试…

PlacementBrowser源码分析

PlacementBrowser的源码在 Editor/PlacementMode下面 一、Placement分类的创建 1. Placement分类被存贮在 FPlacementModeModule 的成员变量 Categories里面。 2. 在 FPlacementModeModule::StartupModule() 创建出所有的Placement分类 3. 每个大类由RegisterPlacementCat…

menu源码分析

1. 菜单根据功能不同被划分了不同的section,不同的section的源码被分布在不同的地方 例如,主菜单的源码在Editor/Mainframe,datavaildation菜单的源码在Plugins\Editor\DataValidation下 2. 以主菜单为例,菜单以如下方法构建 首先…

根据select不同的选项实现相应input框添加项的显示

实现效果&#xff1a; 1.单击包时&#xff0c;显示包时的添加项 2.单击包里程&#xff0c;显示包里程的添加项 二 代码实现&#xff1a; 给select添加change事件 获取当前select的value 根据value判断对象显示其添加项框 <script> $(document).ready(function() {$(#typ…

内联汇编用法

在 Linux 代码中&#xff0c;经常可以看到在 C 代码中&#xff0c;嵌入部分汇编代码&#xff0c;这些代码要么是与硬件体系相关的&#xff0c;要么是对性能有关键影响的。 在很久以前&#xff0c;我特别惧怕内嵌汇编代码&#xff0c;直到后来把汇编部分的短板补上之后&#xf…

epoll怎么实现的

epoll 可以说是编写高性能服务端程序必不可少的技术&#xff0c;在介绍 epoll 之前&#xff0c;我们先来了解一下 多路复用I/O 吧。 多路复用I/O 多路复用I/O&#xff1a;是指内核负责监听多个 I/O 流&#xff0c;当任何一个 I/O 流处于就绪状态&#xff08;可读或可写&#…

平衡树以及AVL树

平衡树是计算机科学中的一类数据结构。 平衡树是计算机科学中的一类改进的二叉查找树。一般的二叉查找树的查询复杂度是跟目标结点到树根的距离&#xff08;即深度&#xff09;有关&#xff0c;因此当结点的深度普遍较大时&#xff0c;查询的均摊复杂度会上升&#xff0c;为了更…

法线和法线贴图

法线和法线贴图 1、法线无处不在&#xff0c;这是图形学基础中的基础。 2、法线贴图&#xff0c;凹凸图&#xff0c;位移图等等&#xff0c;在图形学历史上有着比较重要的位置&#xff0c;在很多图形学的架构中都有应用&#xff0c;典型的例如延迟渲染架构。 法线 法线&…

Unicode、UTF-8、UTF-16

计算机起源于美国&#xff0c;上个世纪&#xff0c;他们对英语字符与二进制位之间的关系做了统一规定&#xff0c;并制定了一套字符编码规则&#xff0c;这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码规则&#xff0c;用七位二进制表示 ( 0x00 - 0x7F ), …