利用grub2.0/grub4dos实现双硬盘双(多)系统

来源:互联网 发布:php url encode 在线 编辑:程序博客网 时间:2024/06/04 17:48

前奏

背景

老式(联想Y460,2011年)的电脑了,想加一个固态硬盘,并把光驱位改造一下让它能放磁盘。

这里将称呼原来的磁盘位为“主盘”,光驱位置的磁盘称为“副盘”。

需求

  1. 主盘是Windows,副盘是Linux
  2. 主盘是Windows,副盘是Windows
  3. 主盘是Linux,副盘是Windows

    这种情况下比较简单,因为Ubuntu平台有个强大的grub图形界面工具,叫做grub-customizer,它可以自动检测多硬盘中的启动分区,通过鼠标点点点就一键搞定。后面详述。

原理

如果从bios启动说起的话,BIOS去加载bootloader,bootloader去加载操作系统,那么bootloader是怎么找到操作系统的呢?经过一些流程后,它会去找grub;然后通过grub提供的信息,再经过一些流程,就找到了操作系统,加载到内存启动。因此重点就是在这个grub上。

上一张示意图,依次是主盘和次盘

原理图

磁盘(主盘or副盘)的第一个扇区叫做主引导记录,每个分区的第一个扇区叫做分区引导记录

基本原理:

BIOS/bootloader等经过一系列过程,找到主盘的grub4dos,然后主盘的grub4dos去找要加载的操作系统所在分区的分区引导记录。因此,通过控制grub4dos到底是去找主盘的启动分区,还是副盘的启动分区,就可以实现双硬盘双系统的启动了。

其实,grub4dos、bootmgr、grub2.0等等,这些东西,就是一个程序而已

工具

  1. bootice

    作用: 将主盘的主引导记录设置为grub4dos(需要结合grldr.mbr)

  2. grub4dos(两个配置文件)

    • grldr

      直接拷贝到启动分区比如C盘根目录下

    • grldr.mbr(和bootice配合)

  3. menu.list

    编辑修改后,拷贝到启动分区比如C盘根目录下

步骤

回顾一下前面提高的需求,这里一个一个来实现:

  1. 主盘是Windows,副盘是Linux
  2. 主盘是Windows,副盘是Windows
  3. 主盘是Linux,副盘是Windows

主windows,副Linux

未完待续

主windows,副windows

未完待续

主Linux,副windows

  1. 安装grub-customizer

    • sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    • sudo apt-get update
    • sudo apt-get install grub-customizer
  2. 使用

    软件首页

    如图,“列表配置”中,它会自动检测的哦。按我这个图为例,如果把win10干掉,换别的系统进来,它也能自动检测出来。然后点击左上角的“save”(它会自动去更新grub2.0的)。

    用起来是不是很无脑!!!是不是很好用!!!在此感谢此软件作者。

0 0