问题表现:联想扬天老台式机,机械硬盘安装有windows10和UbuntuStudio,后加装一块SSD后在其上安装了Manjaro,安装的时候并未关闭机械硬盘,重启后Manjaro的grub主引导菜单正常显示,可以启动三个系统,点ubuntu可进入ubuntu的grub引导菜单,俄罗斯套娃的表现是预料之中的,开始用了几天倒也正常,后来可能是两个linux更新时因update-grub带来一个问题,Manjaro的grub引导菜单出不来,按F12也只显示机械硬盘SATA2上的ubuntu和windows,导致无法启动Manjaro。虽然UbuntuStudio的grub启动菜单上显示有Manjaro引导项但无法启动,屏幕显示LENOVO标识但始终没反应。两个硬盘都是GPT格式,在SSD上安装Manjaro时并未预先分区是整盘安装的,没有预留ESP分区,有16M的MSR分区。本想干掉ubuntu的grub并以Manjaro的grub作为主引导菜单,在Manjaro下无论是sudo grub-install /dev/sda还是sudo grub-install /dev/sdb都未能在SATA1即SSD硬盘上成功搞定grub引导(grub一直都存在于/boot/grub下,只是因为从一个磁盘上使用 UEFI 模式启动,磁盘上必须要先有一个 EFI 分区,而且这个分区已被标志为boot才具备引导功能),都是首次可以出现Manjaro的grub启动菜单,但只要进入任一系统后再重启Manjaro引导菜单又消失了。

  单硬盘安装双系统或多系统不是难事,只要先安装windows再安装linux的话grub自动搞定多系统启动菜单问题,除非重装windows或者分区发生调整,一般不会带来问题。但多硬盘多linux系统确实要复杂些,可能与主板也有关系。系统无法引导问题都能修复,只要硬盘没坏、数据未被毁,我曾数十次地碰到过此类问题都能逢凶化吉,此时也未曾着急。

  我的解决思路:

  1.无引导菜单启动Manjaro。LliveCD可以解决,但复杂些,启动进入后需要挂载硬盘文件系统再chroot。好在UbuntuStudio的grub可用,点c进入grub命令行模式,执行四条命令即可启动。set root=(hd0,gpt3);set prefix=(hd0,gpt3)/boot/grub;insmod normal;normal,分别回车即可。hd0,gpt3因机而异,比如我的Manjaro的ext4分区一开始是gpt2,后来增加ESP分区后变为gpt3,可用ls查询其所在分区。

  2.解决两个grub启动引导器相互干扰的问题。我希望至少各管各的,一个硬盘装一个,既互不相干,也相互调用。用分区软件无损调整SSD,压缩ext4分区,为ESP和MSR分区调出400多M的空间。将其新建为ESP和MSR两个分区,至少ESP是必须的,一般300M, 大一点无妨,是安装grub的EFI引导文件需要占用的。格式化为fat32格式前或后,须设置boot(还有个选项是 bios-grub)标志,我是在Manjaro的KDE分区管理器右键点击sda1即ESP分区选择属性打钩选择的,不标识可能无法正确安装grub,此前多次安装再查看该分区一点空间都没有被占用,也有可能与之前未挂载ESP分区有关,也未可知。分区并标识后,执行sudo mount /dev/sda1 /boot/efi(即将ESP分区挂载到/boot/efi下,/boot/efi本是空的,挂载后可向ESP分区写文件);再执行sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro(安装grub的EFI引导文件到ESP分区下,使该硬盘具备UEFI引导grub功能。可能需要提前安装efibootmgr)。再sudo update-grub。

  操作完成后重启电脑,原来SATA1依赖STAT2硬盘引导的问题得以解决,启动时按F12可以发现SATA1具备了grub引导功能,标识是Manjaro,点击后进入Manjaro的grub引导菜单。问题得以解决,对grub、GPT、EFI等知识点有了一些认识,但还是不甚了解,需要再学习。现在两个硬盘各有各的grub引导管理器,在BIOS里关闭任何一块硬盘都不影响硬盘本有的系统的正常运行,两块硬盘都不关闭也可相互引导,只是一直存在的ubuntu的grub无法引导manjaro的问题仍未解决,检查了分区uuid没发现异常,再琢磨。

  收获:区分BIOS 系统、UEFI系统和磁盘分区表对象及概念上的不同。BIOS无法识别GPT分区,BIOS下GPT磁盘不能用于启动操作系统,在操作系统提供支持的情况下可用于数据存储。UEFI可同时识别MBR分区和GPT分区,UEFI下MBR磁盘和GPT磁盘都可用于启动操作系统和数据存储,不过微软限制UEFI下使用Windows安装程序安装操作系统是只能将系统安装在GPT磁盘中(ESP和MSR分区就是Windows系统安装时自动创建的,我们往往没注意,而本文中我在一个新磁盘上安装的是linux系统,虽然磁盘分区表是GPT,但由于另一块磁盘已有ESP分区,grub就自动选择有ESP分区的磁盘作为启动磁盘。我上面的操作是基于UEFI系统+GPT分区表,在操作中因混淆概念走了一些弯路,将BIOS的一些过时的操作用在UEFI系统上,比如sudo grub-install /dev/sda就是基于BIOS的,一度因张冠李戴耽误了太多时间。使用UEFI安装时,一定要让安装介质以UEFI模式启动,否则 efibootmgr 将无法添加 GRUB UEFI 启动项,而且要从一个磁盘上使用 UEFI 模式启动,磁盘上必须要先有一个 EFI 分区,在其上安装grub必须先挂载EFI 分区也就ESP分区才能写入 GRUB EFI 应用(引导文件)并在固件启动管理器中创建一个条目(也就是我们看到的引导菜单项目)。BIOS下启动操作系统之前,必须从硬盘上指定扇区读取系统启动代码(包含在主引导记录即MBR中),然后从活动分区中引导启动操作系统,而在UEFI下,这些都不需要,不再需要主引导记录,不再需要活动分区,只要有ESP分区并在其中写入引导文件即可,其他的事交给UEFI系统来做。UEFI 会启动 EFI 应用程序。例如引导加载程序、引导管理器和 UEFI Shell 等等。这些应用程序通常以文件形式存储在 EFI 系统分区中,厂商可以将其特定文件存储在 EFI 系统分区中的 /EFI/vendor_name 文件夹下,应用程序可以通过在 NVRAM 中添加引导项或从 UEFI shell 中启动。如果要用多系统,某块硬盘未安装过windows且今后可能安装windows,比如先装linux后装windows,在安装其他操作系统前最好先用分区软件建立ESP和MSR分区特别是前者,这将为此后安装windows留有空间。同时,还是注意grub版本的不同以及针对不同分区表磁盘的处理方式的不同,可参照以下引用。

  引用:选择 GPT 还是 MBR

  GUID Partition Table (GPT)是一种更灵活的分区方式。它正在逐步取代Master Boot Record (MBR)系统。GPT相对于诞生于MS-DOS时代的MBR而言,有许多优点。新版的fdisk(MBR)和gdisk(GPT)使得使用GPT或者MBR在可靠性和性能最大化上都非常容易。

  在做出选择前,需要考虑如下内容:

  如果使用 GRUB legacy 作为bootloader,必须使用MBR。
  如果使用传统的BIOS,并且双启动中包含 Windows (无论是32位版还是64位版),必须使用MBR。
  如果使用 UEFI 而不是BIOS,并且双启动中包含 Windows 64位版,必须使用GPT。
  非常老的机器需要使用 MBR,因为 BIOS 可能不支持 GPT.
  如果不属于上述任何一种情况,可以随意选择使用 GPT 还是 MBR。由于 GPT 更先进,建议选择 GPT。
  建议在使用 UEFI 的情况下选择 GPT,因为有些 UEFI firmware 不支持从 MBR 启动。

  注意: 为了使 GRUB 从一台有 GPT 分区的基于 BIOS 的系统上启动,需要创建一个 BIOS 启动分区, 这个分区和 /boot 没关系,仅仅是 GRUB 使用,不要建立文件系统和挂载。

解决双硬盘下一个windows两个linux操作系统的grub引导问题相关推荐

  1. 双系统,重装windows后修复linux的grub启动

    2019独角兽企业重金招聘Python工程师标准>>> 之前硬盘安装的linux deepin再装64位的win7后,启动就没了.上网找的要么说要grub2dos或者得找启动盘修复, ...

  2. 要点初见:双硬盘下的Win10+Ubuntu16.04双系统安装

    按照网上博客的安装教程安装的Win10+Ubuntu16.04双系统安装了好几遍都不成功?启动Ubuntu左上一直有个光标在闪?如果你的电脑也是双硬盘(装Windows系统的固态硬盘+机械硬盘),在安 ...

  3. Win\Linux 双系统,如何删除linux的grub引导

    前言 之前在实验室电脑上装了一个ubuntu系统,当时为了方便,选择了linux的grub引导,现在windows上的磁盘空间有点不足,想要把这个linux系统删除了. 这就有了困难,如果将之前分配给 ...

  4. 关于双硬盘电脑装Windows纯净系统的问题(已解决)

    硬件环境:双硬盘 一个ssd 一个机械硬盘 装纯净版win10出现问题: win10我们无法创建新的分区也找不到现有的分区        解决办法:把机械硬盘拆掉,再装系统,亲测有效 在双硬盘电脑上装 ...

  5. 解决SSD+HDD双硬盘下电脑卡顿问题,CPU和内存使用率低,电脑依旧卡顿

    问题描述:SSD+HDD混合双硬盘电脑,新装系统后系统卡顿,多次重装系统.更换硬盘依然无效: 症状:电脑CPU和内存使用率很低,但硬盘读写慢.电脑卡: 解决方案参考:https://www.gwygd ...

  6. UEFI+GPT+双硬盘下 搭建Windos10 和CentOS7 双系统

    centos官方帮助(安装)文档:https://docs.centos.org/en-US/centos/install-guide/ (可用谷歌浏览器进行翻译) 以下为转载内容 转载自:https ...

  7. 深度学习环境配置:华硕主板的Win 10 + UEFI + GPT条件下且在SSD + HDD双硬盘下安装Ubuntu+Gtx 1080Ti显卡驱动 + CUDA 9.1 + Cudnn 7.1...

    本文写文章日期为2018.03.13   因为买电脑自带了win10系统,自己就没有重新安装win10,而是在原win10环境下分割一个磁盘来安装ubuntu16.04,本人电脑GPU为Gtx 108 ...

  8. 双硬盘下安装win+linux关于开机引导的问题

    前面写的文章只使用于win+linux在同一个硬盘上,因为现在很多笔记本都是固态+机械!!! 本人是固态安装win,机械安装linux,各自安装好系统后发现每次开机默认直接进入win,也无法进入lin ...

  9. 计算机不工作时硬盘自动响,解决双硬盘计算机硬盘频繁启停(发出声响)的问题...

    这里前提先说明一下,标题里的"发出声响"是指硬盘转动的声音,因为电脑在工作时候,特别像笔记本一类,在风扇不转时候非常安静,此时是可以听到硬盘运行时候转动的声音的,是正常的,并非故障 ...

最新文章

  1. VTK:细胞中心演示用法实战
  2. 后端技术:Java编程中忽略这些细节,Bug肯定少不了
  3. 国外的程序猿可以工作到退休而国内的为什么这么短命(思维认知)
  4. 是雏还是鹰mdash;mdash;编程规范之代码注释
  5. 关于OCR,做个记录。
  6. HDU2042 不容易系列之二【递推】
  7. python主程序子程序_python子程序
  8. 服务器系统监控工具,10款超实用的服务器监控工具和软件
  9. kali系统怎么ssh远程连接
  10. 大多数人奋斗一辈子才能得到的东西,你见过吗?
  11. 解决Can not add resource (com.android.aaptcompiler.ParsedResource@a980fbb) to table
  12. excel数据分析--仪表板制作
  13. Microsoft Visual Studio 2013 产品密匙
  14. 基于MATLAB APP Designer 和 Python 的音视频剪辑
  15. VSCode如何去掉Monokai主题下的绿色下划线
  16. stm32的内存分布
  17. 用友数据库表名参照表
  18. oracle查询当天的数据(当年,当月,当日)
  19. vite.config.ts找不到模块“path”或其相应的类型声明
  20. 用数组实现随机生成双色球号码

热门文章

  1. 计算机运维中常见英语单词,芯片常用英文词汇整理.doc
  2. 计算机新建没有excel,win7系统右键新建没有word、Excel、ppT选项的图文教程
  3. 安灯(Andon)系统,生产车间的得力助手
  4. 手机app抓包https请求信息,解决SSL Pinning验证
  5. chmod +s权限升级小结
  6. 如何制定客户留存策略_14个成功的客户留存策略举例
  7. Halcon/C++编程
  8. 2022-2028年全球与中国近红外光谱仪行业竞争格局与投资战略研究
  9. 工业检测产品中,用到的PPM, DPPM和DPMO的定义
  10. 微信表情与输入法无缝切换(原理篇)