linux and windows 双系统启动(详细情况分类说明)


author:

  • luixiao1223
    title: ‘linux and windows 双系统启动(详细情况分类说明)’

双系统启动介绍

很多linux用户实际上是从windows用户转换而来的.一个linux入门人员往往需要另一个windows系统.
因为每个人都有自己的惯性,人往往不能立即的放弃原本熟悉的工具.另外一个原因时有的工具只有windows有,在linux下找不到或者目前还未找合适的替代.
需要保留使用windows,而又要学习linux的人员.通常有两种解决方案,一种是在windows里面安装虚拟机并运行linux.另一种就是本文要讲的双系统.

双系统注意事项

安装双系统面对的异常情况非常之多.我们这里也就列举了常见的情况.作为大家的参考.双系统分类其实还是比较讲究的.我们来看看双系统的具体种类可以复杂到什么程度.因为每个人的硬盘数量可能千奇百怪,主板也可能多种多样.所以实际情况更加复杂.

Motherboard System Windows linux
bios MBR/GPT MBR/GPT
UEFI MBR/GPT MBR/GPT
  1. 你的主板系统可能是bios也可能是uefi
  2. 你的windows系统所在硬盘分区,可能是MBR或者GPT(新硬盘分区类型是可以自己设定的,如果不怕数据丢失可以随意切换硬盘的分区格式)
  3. 你的linux系统所在硬盘分区,可能是MBR或者GPT

这样你面对的情况就有2x2x2,达到8种之多.如果加上安装系统的顺序.是否安装在同一张硬盘上.情况更多.可以达到2x2x2x2x2=32种情况之多.

注意:如果安装在不同的硬盘上,我们可以让每个系统的启动引导位于每个独立的硬盘上.但是你往往想要在一个引导里面引导不同盘上的所有系统.所以我们讨论的就是你在一个引导里面引导所有的系统.

安装系统

windows先安装

主板是bios

  1. 安装在同一张硬盘上

    假如我们在第一个分区安装windows而在第二个分区安装linux,我们不失一般性假设这块硬盘在linux下的名称为/dev/sda.两个分区为/dev/sda1(windows),/dev/sda2(linux).如果windows自己开辟了保留分区我们可以忽略.我的意思是如果windows开辟的保留分区是/dev/sda1那么你的windows就是/dev/sda2,linux就是/dev/sda3.我们的假设是没有保留分区.这样可以更有利于分析.因为安装在同一个盘中,那么分区类型肯定都是一样的.

    因为windows在bios模式下只支持MBR分区格式。所以在同一张盘上装双系统只有一种情况。

    1. windows and Linux (MBR)

      1. 安装windows

        安装windows的过程比较简单,这里就不再赘述了。windows安装引导十分的简单明了。但是需要注意的是,如果你是新硬盘你要确认的windows是按照什么类型的磁盘分区格式进行的分区。因为windows太智能化了,他并没有下放磁盘分区格式选项给客户。所以他已经帮你把事情做好了。这有好有坏。好处是你不用太操心坏处是,你无法控制磁盘分区类型。

        等待windows系统安装完成之后,在windows系统内使用磁盘工具,确认这块硬盘的分区格式是MBR还是GPT,如果是GPT则不使用本条情况。如果是MBR那么我们可以继续看如何安装linux了。

      2. 安装linux

        安装linux的时候,在MBR情况下也很简单.我们直接把/dev/sda2挂载到/root下就可以进行安装了.安装完成之后.通常我们不需要任何设置就可以进行双启动.因为现代linux的启动器grub,能够扫描到windows,并把windows的启动选项添加到grub的启动选单里面.值得注意的是linux的安装会覆盖掉windows的引导记录.所以如果不幸的出现了只能进入linux的情况.我们就需要进行救援.将windows的启动引导选项加入到linux的grub中.

        那么,我们来看看如果你不幸,并不能在安装完linux之后.grub启动选单中只有linux而没有windows的时候该怎么办.这个时候我们一般可以坐4件事来解决.如果不可以,那就需要自行查阅资料了.

        1. install ntfs-3g
        2. mount /dev/sda1 /mnt
        3. os-prober
        4. grub-mkconfig -o /boot/grub/grub.cfg(或者是grub2)
  2. 安装在不同的硬盘上

    1. windows(MBR) and Linux (MBR)

      同样的道理,按照各自的安装方式即可.添加启动项的方式为

      1. install ntfs-3g
      2. mount /dev/sda1 /mnt
      3. os-prober
      4. grub-mkconfig -o /boot/grub/grub.cfg(或者是grub2)
    2. windows(MBR) linux(GPT)

      我们假设windows坐在盘为/dev/sda1,而linux所在盘为/dev/sdb1

      1. windows安装

        按照MBR的方式安装windows即可.

      2. 安装linux

        安装linux的时候,要注意了.这个时候你需要分配一个小的分区具体原因参看我另一篇文章操作系统是如何启动的.
        这个小分区叫做bios boot partition.
        是用来放置grub的启动模组.因为MBR可以把这个启动模组放置在一个没有任何系统使用的间隔区.但是GPT没有这种间隔区,所以要手工的设置开辟一个这样的间隔区.

        1. 分配大概2M左右的bios boot partition
        2. 分配一个linux的partition,并mount它到/root,根目录
        3. 之后照常安装即可.

        安装完成之后应该自然就可以双系统启动了.如果不成,你需要以下步骤应该就可以添加启动选项了.

        1. install ntfs-3g
        2. mount /dev/sdb1 /mnt
        3. os-prober
        4. grub-mkconfig -o /boot/grub/grub.cfg(或者是grub2)

主板是UEFI

这样的话,系统况会更为复杂得多.

  1. 安装在同一张硬盘上

    同样的windows并不能在UEFI模式下在MBR硬盘上安装,它只能在GPT硬盘下安装

    1. windows and linux (GPT)

      1. 安装windows

        按照windows的导引安装即可.

      2. 安装linux

        你需要将esp分区,也就是EFI system
        partition分区挂在到/boot(或者是/boot/efi)上面.然后安装系统即可.这个esp分区,是windows安装的时候会创建的,你不用担心.安装完系统后,就可以引导了如果不可以.按照上面提到过的方法修复即可.

        如果你还是未能修复,这个时候就要使用efibootmgr了.这个东西的详细使用请看相关资料.使用过它来调整UEFI启动顺序.

  2. 安装在不同的硬盘上

    1. windows(GPT) linux(GPT)

      安装方法其实差不多,没有更多要说的.就是要挂载esp分区.

    2. windows(GPT) linux(MBR)

      最主要的还是你要正确挂载esp分区.

可以混合支持bios和UEFI的主板系统.(分别安装在不同的硬盘上)

有的UEFI系统可以发现MBR分区,如果发现这个硬盘是按照MBR分区.系统会自动切换到去找他的MBR记录.然后按照这个MBR来启动.

  1. windows(MBR-bios) linux(GPT-bios)

    这种情况比较简单,只要按照预定的安装流程就可以了.
    linux里面的grub应该是可以自动识别windows的安装的.如果不行按照前面的法子进行修复即可.

  2. windows(MBR-bios) linux(GPT-UEFI)

    这是比较奇葩的情况,这个时候你的linux是GPT-UEFI启动,那么实际上这个通过UEFI启动的grub并不能正常的boot
    windows.因为缺少drivemap.mod.因为drivemap.mod是i386-pc的模组.所以你需要通过启动i386-pc的模组来load可以启动MBR-bios的windows.具体做法是引导安装在windows的硬盘里面.

    详细的步骤是

    1. 你使用grub-install将i386-pc的引导安装到windows的盘上/dev/sda
    grub-install --target=i386-pc /dev/sda
    
    1. 你从/dev/sda重新引导进入linux.这是为了让linux系统加载i386-pc的模组.

    2. 这下使用os-prober就能发现windows了.(如果你还是以UEFI模式进入linux,os-prober是发现不了bios模式的windows的)

    3. 使用grub-mkconfig

      grub-mkconfig -o /boot/grub/grub.cfg
      

      生成启动项即可.

    然后你就可以设置主板从/dev/sda这块硬盘启动.这就会load
    i386-pc的grub模组.然后所有系统就可以正常启动了.

  3. windows(GPT-UEFI) linux(MBR-bios)

    还是按照各自的安装方法安装即可.在linux中扫描添加启动选项.

  4. windows(GPT-UEFI) linux(MBR-UEFI)

    在安装linux的时候,注意将windows
    eps分区挂载到linux的boot/efi下面或者/boot.安装完应该就可以.

linux先安装

先安装linux是不被建议的,原因是后安装的windows会覆盖掉先安装的linux的引导记录.这样你就只能进入windows了.但是万一不幸的你这样做了.你怎么办?还是有办法的,比如centos有rescue模式.在里面会启动一个grub,然后按照grub的操作命令来手动启动linux.当然过程并不复杂,但是你要付出不少精力去研究这些命令.多以重中之重是.

为了不给自己添麻烦,你最好先装windows,再装linux

发布了127 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/luixiao1220/article/details/104384080