玩Linux的人,有时候为了方便,一般会安装双系统,但是安装双系统时,一般会被提示首先安装windows,再安装Linux会比较方便。这到底是为什么呢?且听我慢慢道来。
首先,得从计算机的启动流程说起,我们知道,计算机就是一堆硬件,只有操作系统才能控制硬件并且对系统资源进行合理分配。但是操作系统也是一套软件,开机的时候怎么载入这套软件的呢?这就要用到BIOS了,BIOS是写在主板上的一个程序,它的功能是识别计算机里的存储设备并且读取该设备上的启动信息,一般我们是从硬盘启动,那么当开机时,BIOS就会读取系统的第一块硬盘(注意是硬盘不是磁盘或者分区)的第一个扇区的前446个字节---MBR。MBR我们叫他主引导记录或者主启动记录,它记录着计算机最基本的开机管理程序,在linux中,这个管理程序叫做grub,它就在MBR中记录着。之后呢,MBR就会加载内核,内核负责启动操作系统。
开机流程:BIOS-->MBR-->grub-->kernal-->opreate system
接着我们再看看这个开机管理程序,以Linux中的grub为例,它一般有三个作用:
1.提供选单,以选择不同的开机项目(注意是不同的开机项目而不是操作系统)
2.加载内核,启动操作系统
3.指向其他的开机管理程序
必须要注意的是,这个程序不能随意选择操作系统,只能指向其他的开机程序,然后被指向的这个程序打开它所对应的操作系统。
另外,一块硬盘中只有一个MBR,当然,若有多个硬盘,也可以有多个MBR,但BIOS只能读取第一块可用设备的第一个扇区,也就是只能读取一个MBR。
由以上我们还可以知道,计算机中可以有多个开机管理程序,也就是说,这个程序除了可以安装在MBR中之外,还可以安装在其他地方,也就是每一个分区的启动扇区中。
接着我们言归正传,看看windows和linux双系统是怎么启动的。
直接加载linux内核-->打开linux
bios-->mbr-->开机管理程序{
指向windows的开机管理程序-->加载windows内核-->打开 windows
上图就是所谓的多重引导。
以上就是先安装双系统时的启动流程,那么为什么要先安装windows后安装Linux呢?主要有以下两个原因:
1.windows在安装的时候会自动覆盖掉mbr以及它所在分区的启动扇区,并且windows的开机管理程序让你没有选择另一个系统的机会,也就是不会指向其他开机程序,直接加载windows内核打开系统。
2.linux在安装的时候你可以手动选择将grub安装在mbr或者各分区的启动扇区中,并且grub选单中可以让你自由选择,也就是grub选单中可以指向其他开机程序,打开其他系统。
我们分别来看看两种系统安装次序不同的情况:
1.先安装linux,再安装windows:
先安装linux之后,不论我们将grub安装在分区的启动扇区还是MBR中,后安装的windows的开机程序都会将这两个区域覆盖掉,结果就是我们开机后直接打开windows,不能打开Linux.
2.先安装windows,后安装linux:
先安装windows之后,它会在MBR中和分区的启动扇区中各有一个开机启动程序,之后我们再安装linux,将grub安装到MBR中(注意一定要把grub安装到MBR中),再让grub指向windows分区中的启动扇区的那个开机程序,那么就可以自由选择系统了,达到了双系统的目的。
注意:2中若是没有将grub安装在MBR中,那么MBR中还是windows的开机管理程序,仍然会直接打开windows,也就达不到双系统的效果了。