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

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

  1. linux与windows双系统启动引导

    在做完linux和windows双系统后,开机后只能进入其中一个默认系统,没有进入时选择系统的选项. 进入ubuntu系统后,更新引导信息,执行: sudo update-grub 重新启动即可

  2. linux efi 双系统,EFI+GPT模式下Linux与Windows双系统要诀

    本文并非要对 BIOS/EFI/MBR/GPT 等进行理论探讨,相关知识请各位自行搜索学习.本着薄荷网一贯坚持的实操原则,本文主要是介绍在"EFI引导+GPT分区"模式下,安装 L ...

  3. linux和windows启动,Linux和Windows双系统的启动

    问题 Linux和Windows双系统的启动 解决方案 在某些特殊情况下,服务器可能要安装双系统 一个linux系统,一个windows系统 这种情况下,安装顺序是,先装Windows系统,后装Lin ...

  4. 【疑难杂症爆破委员会】UEFI Linux、Windows双系统,丢失Windows的efi文件导致找不到启动项(恢复Windows的efi文件)

    [疑难杂症爆破委员会] UEFI Linux.Windows双系统,丢失Windows的efi文件导致找不到启动项,导致无法进入Windows系统 状况说明 状况是这样的:我本来好好的装着Linux和 ...

  5. 安装linux和windows双系统

    很多人一提到安装linux和windows双系统就会想到单独将磁盘划一个分区给linux,如果一块磁盘上已经安装了windows,并且所有分区都有数据,那就麻烦了,即使有了单独的分区,还需要安装gru ...

  6. 关于Linux和Windows双系统共存时间问题

    关于Linux和Windows双系统共存时间不同步的问题,原理的东西我不想写太多,这方面的资料网上很多,只需改动一点即可解决,就是把Linux系统的UTC关掉即可.方法如下: vim /etc/def ...

  7. [arch Linux] 使用grub实现Linux和Windows双系统的引导

    安装Linux和Windows双系统后,需要对grub进行一些设置,以添加Windows启动项,在电脑启动时就可以选择要进入哪一个系统. 1.查看Windows引导分区的UUID sudo fdisk ...

  8. linux与windows双系统windows无法连网问题的解决

    linux与windows双系统windows无法连网问题的解决 最近小白在学ubuntu的使用,装了win10 和ubuntu14的双系统.使用了一圈后,切换为windows系统后突然发现wifi列 ...

  9. linux和windows双系统怎么引导,如何解决Linux和Windows双系统的引导问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 现在大家应该都在上班吧,咱今天探讨的是解决Linux和Windows双系统的引导问题 本文中, Windows使用XP, Linux选用Ubuntu. 但 ...

最新文章

  1. 通过PowerDesigner实现sql-pdm-sql
  2. Java线程CAS原子操作
  3. (软件工程复习核心重点)第五章详细设计习题
  4. 如何使用反意疑问句来确认请求_24
  5. Windows7磁盘检查与整理的使用
  6. TCP的几个状态对于我们分析所起的作用SYN, FIN, ACK, PSH,
  7. java 规范 阿里巴巴_阿里巴巴 Java 代码规范
  8. 【驱动安装及keil使用】win10 stm32 stlink驱动安装,检测不到芯片,下载不了程序
  9. html js显示文字乱码怎么解决,javascript中汉字显示乱码怎么解决?
  10. cad2016中选择全图字体怎么操作_CAD2016(精简版)安装教程
  11. 《2018版-业余无线电(相关频率)对照表》
  12. java实现即时通讯_java实现WebSocket即时通信
  13. 【机器学习】详解 TF-IDF 与 TF-IWF
  14. 亚马逊测评项目怎么做?市场如何?测评资源怎么找​?
  15. wireshark抓rtsp rtp rtcp包手把手教你分析包结构 H264 H265
  16. 西门子博途软件TIA PORTAL不同版本安装在一台电脑上的个人总结
  17. JTAG的TAP状态机介绍
  18. 在ThinkPHP中开启调试模式
  19. JAVA里的jsp网页背景_【JavaWeb】JSP 页面
  20. 9个好用的生命科学研究工具分享

热门文章

  1. ssm驾考预约管理系统设计与实现毕业设计源码250910
  2. 【海云捷迅云课堂】vGPU在OpenStack中的应用
  3. linux编译grpcswift,grpc使用记录(一)编译(mscv/gcc)
  4. WebRTC正当时:一场技术开发者不容错过的直播
  5. JavaScript实现表格全选、全不选、反选
  6. 利用Resttemplate进行put请求
  7. python统计excel某一列中文字数
  8. 移动联通基站接口以及电信基站接口分享
  9. php 调用百度AI实现图像审核功能
  10. java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法