其时装双系统这个词并不陌生了,就是系统共用一套硬件平台,跑两个或者多个系统;
这篇文章过后,相信你不是仅仅局限双系统了,你可以一套硬件系统运行多个系统了,只要该系统兼容你的硬件平台。
本篇以windows系统为例子,也是我们平时接触最多的一种,在这里抛砖引玉。水水文章。
需要上手操作的请直接看第二章节,第一章节都是基本原理
目前主要的系统引导方式有两种:传统的Legacy BIOS和新型的UEFI BIOS。
Legacy BIOS只能识别MBR格式磁盘,无法识别GPT格式磁盘;
UEFI BIOS可同时识别MBR分区和GPT分区,所以UEFI下,MBR和GPT磁盘都可用于启动操作系统。不过由于微软限制,UEFI下使用Windows安装程序安装操作系统是只能将系统安装在GPT磁盘中。
简单的来讲在什么模式下安装的系统就得在什么模式下引导启动。
区别 | Legacy | UEFI |
---|---|---|
默认支持磁盘格式 | MBR | GPT |
速度 | 快 | 更快 |
是否支持win7 | 支持 | 支持win7以上(一般不支持win7) |
引导过程:上电–>Legacy BIOS–>MBR–>DPT–>PBR–> Bootmgr(vista开始)/NTLDR–>BCD(vista开始)/boot.ini–>Winload.exe–>内核加载 –>windows vista/windows xp
启动管理器bootmgr和启动设置文件BCD合称为启动文件,IPL以及SPL(winload.exe)合称为载入程序。启动文件与载入程序合在一起叫做boot loader。
MBR磁盘分区格式下,只允许有一个分区是活动的,因此启动文件(bootmgr、BCD)必须存放在活动的主分区内,这样才能找到系统载入程序。
如果使用Windows的官方安装程序,会自动写入MBR,此外还会建一个隐藏的活动主分区,写入启动管理器和启动设置文件,并将自身的以及可识别的所有二级引导载入程序加入启动设置文件中(多系统引导原理2)。以后装入其它windows系统时,则会重写MBR和该分区。当然也可以不使用这个隐藏分区,而将bootmgr、BCD放在系统所在分区的PBR(PBR容量远远大于MBR)中,并设置系统分区为活动分区。但要注意的是:虽然可以在多个分区中安装系统,但只有一个分区是活动分区,能够引导系统,删除该分区,其他分区的系统也无法启动。
引导过程:上电–>UEFI–>GPT分区表–>EFI分区–>\efi\Microsoft\boot\bootmgfw.efi–>efi\Microsoft\BCD–>\Windows\system32\winload.efi
需要注意的是:GPT磁盘格式下,windows系统的启动文件(bootmgfw.efi、BCD)是存放在一个FAT格式的分区里的,有些出厂预装win10系统的电脑下将该FAT分区称之为ESP分区或EFI分区。
可见,UEFI+GPT模式引导windows系统时,并不需要mbr主引导记录,也不需要活动分区,只需要你一个存放了引导启动文件的fat格式分区就可以了,这个fat分区当然也可以是U盘等外接USB设备了。所以我们在安装第一个系统时,需要由系统自动或手动建立一个EFI分区,用来存放启动文件,之后在其它分区安装系统时,会覆盖之前的启动文件(不是系统载入程序)。
每个分区都有一个boot sector,如果该分区有操作系统,操作系统会将份启动文件 写入到各自所在分区的boot sector中,也可以选择写入MBR中。
在 Linux 系统安装时,你可以选择将 boot loader 安装到 MBR 去,也可以选择不安装。 如果选择安装到 MBR 的话,那理论上你在 MBR 与 boot sector 都会保有一份boot loader 程序的。 至于 Windows 安装时,预设主动的将 MBR 与 boot sector 都装上一份boot loader!
因此安装多个系统时,MBR、活动分区会不断的被覆盖。但是启动管理程序能够识别其他分区引导扇区中的启动管理器,因此可以根据用户选择将控制权交给相应的启动管理器从而实现多重引导。但如果无法识别,则不能实现多系统。
Linux的启动管理器能够识别Windows的,但Windows的启动管理器则无法识别Linux的。又由于Windows在装系统时,默认覆盖MBR和活动分区。所以先装Linux再装windows,则无法引导Linux。而Linux则可以选择是否覆盖MBR分区和活动分区。如果不覆盖,则需要原来的MBR支持。
对GPT来说也类似,只不过覆盖的是EFI分区。
这里我们进入主题,我的电脑是UEFI启动模式的,怎么看自己电脑的启动模式有很多种,这里给出常见的几种方法:
tips
软碟通是收费软件,提供试用。rufus 是免费软件。
如果是制作 Windows 启动盘,软碟通和 rufus 没有很大的区别。但是如果是制作 Linux 的启动盘。我建议不要使用软碟通,建议使用 rufus。
1.右击 我的电脑→管理
2. 把有足够空间的盘压缩一部分出来给linux,我这里压缩了150G(根据你自己需求来)
这里准备工作全部完成,接下来就是安装过程
剩余操作部分请看另一篇博客的第一章节,图文非常详细,这里不需要再压缩母盘了红帽7或8安装过程,从上1.所示图位置开始操作。
这里不设置默认是先启动linux,若想让windws在前面默认,请看这里
1. 使用root用户的登录系统
2. vim /boot/grub2/grub.cfg
### BEGIN /etc/grub.d/30_os-prober ###(大致在164行)加入以下内容
menuentry 'Windows 10'{
set root=(hd0,1)
chainloader +1
} ##设置完后默认是先登陆linux系统
说明:set root=(hd0,1) 其中 hd0 表示硬盘,1表示C盘 ,我的win10装在C盘,它是sda1
3. 保存重启
4. 设置默认登陆win10系统(视自己情况而定)
grub2-editenv list ##验证默认启动项(默认是Redhat8.2)
grub2-set-default 'Windows 10' ##设置默认启动项为win10
grub2-editenv list ##验证默认启动项(显示以下内容修改成功)
saved_entry=Windows 10
到这里,本篇文章结束了,附录是我自己装机配置,为了以后实验作准备的,仅供参阅
Linux基础之系统软件管理
[root@haojin network-scripts]# cat ifcfg-br0
DEVICE=br0
NAME=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR1=192.168.1.200
NETMASK1=255.255.255.0
IPADDR2=172.25.254.200
NETMASK2=255.255.255.0
IPADDR3=172.25.200.250
NETMASK3=255.255.255.0
TYPE=Bridge
linux下的网络部署(RHEL8)
dnf install -y linuxqq flameshot chrome
这里为了以后使用虚拟机做的映射
[root@haojin ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.200.250 haha(真机)
172.25.200.1 server1
172.25.200.2 server2
172.25.200.3 server3
172.25.200.4 server4
172.25.200.5 server5
172.25.200.6 server6
172.25.200.7 server7
172.25.200.8 server8
172.25.200.9 server9
172.25.200.10 server10
172.25.200.11 server11
172.25.200.12 server12
172.25.200.13 server13
172.25.200.14 server14
172.25.200.15 server15
红帽7或8安装过程