efi 添加linux启动项,用efibootmgr管理UEFI启动项,添加丢失的启动项
UEFI用来替代传统BIOS引导操作系统,学会修改UEFI启动项也变得十分重要,UEFI全称为:“统一的可扩展固件接口”(Unified Extensible Firmware Interface),目前新购入的计算机都支持UEFI固件,若是需要启动传统MBR设备,则需开启CSM(Compatibility Support Module)。关闭CSM则变成纯UEFI启动,且完全支持安全启动。Secure Boot(安全启动),安全启动仅适用于使用UEFI启动的操作系统。如果电脑要启动不完全支持UEFI的设备,就必须关闭Secure Boot,然后打开CSM。如Win7系统,必须开启CSM兼容模式。Windows8及以上都能很好的支持UEFI,而为了设置系统引导,必须要管理UEFI启动项。
在国内个人物理机直接安装Linux系统时,一般都会再安装个Windows系统实现双系统,这样有时候就会出现系统启动项丢失的情况多为Linux系统
解决方法就是使用efibootmgr命令添加启动项,而在Windows下可以使用EasyUEFI这个软件。
1、如果系统丢失Linux启动项,如果是双系统就只能进入Windows,但是我不喜欢用EasyUEFI,这时可以选择一个Linux liveCD系统,如Ubuntu,
将Ubuntu liveCD 刻录成U盘启动,如果刻录成光驱启动系统会很慢。
2、在Ubuntu(非liveCD)下我使用efibootmgr命令,显示如下:
pipci@ubuntu:~$ efibootmgr
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0012,0010,0011,000F,000B,000A,0006,0007,0008,0009,000C,000D,000E
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash Screen
Boot0003 Lenovo Diagnostics
Boot0004 Rescue and Recovery
Boot0005 Startup Interrupt Menu
Boot0006* USB CD
Boot0007* USB FDD
Boot0008* ATAPI CD0
Boot0009* ATAPI CD1
Boot000A* ATA HDD0
Boot000B* ATA HDD1
Boot000C* ATA HDD2
Boot000D* USB HDD
Boot000E* PCI LAN
Boot000F* Windows Boot Manager
Boot0010* ubuntu
Boot0011* ubuntushim
Boot0012* opensuse-secureboot
pipci@ubuntu:~$
列表还是很直观的显示了当前启动项,启动超时,EFI启动顺序,0012是第一启动项对应的是opensuse系统,0011是第二启动项对应ubuntu系统这个是我手动添加的,
000F是四启动项对应的Windows系统。
3、查找系统启动文件,每个系统都会在EFI分区建立自己的启动文件。
pipci@ubuntu:~$ sudo fdisk -l #产看EFI所在分区
设备 Start 末尾 扇区 Size 类型
/dev/sdb1 2048 206847 204800 100M EFI System #EFI所在分区
/dev/sdb2 206848 468991 262144 128M Microsoft reserved
/dev/sdb3 468992 83888127 83419136 39.8G Microsoft basic data
/dev/sdb4 83888128 92276735 8388608 4G Microsoft basic data
/dev/sdb5 92276736 176168959 83892224 40G Microsoft basic data
/dev/sdb6 176168960 254294015 78125056 37.3G Linux filesystem
/dev/sdb7 254294016 262682623 8388608 4G Linux filesystem
/dev/sdb8 262682624 468860927 206178304 98.3G Microsoft basic data
pipci@ubuntu:~$
4、挂在EFI分区
pipci@ubuntu:~$ sudo mount /dev/sdb1 /mnt/ #挂载EFI分区到/mnt目录
5、进入EFI分区
pipci@ubuntu:~$ cd /mnt/
bash: cd: /mnt/: 权限不够
pipci@ubuntu:~$ sudo -i #以root用户身份运行一个登录 shell
root@ubuntu:~# cd /mnt/
6、产出EFI分区
root@ubuntu:/mnt# ls
EFI
7、进入EFI目录,查看
root@ubuntu:/mnt# cd EFI/
root@ubuntu:/mnt/EFI# ls
Boot Microsoft opensuse ubuntu #可以看出安装的系统
root@ubuntu:/mnt/EFI#
8、查看EFI下各目录内容:
root@ubuntu:/mnt/EFI# ls Boot/
bootx64.efi
root@ubuntu:/mnt/EFI# ls Microsoft/
Boot
root@ubuntu:/mnt/EFI# ls opensuse/
boot.csv grub.cfg grub.efi grubx64.efi MokManager.efi shim.efi
root@ubuntu:/mnt/EFI# ls ubuntu/
fw fwupx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi
root@ubuntu:/mnt/EFI#
9、添加启动项
root@ubuntu:~# efibootmgr -c -w -L "BootOptionName" -d /dev/sda -p 1 -l \\EFI\\Boot\\bootx64.efi
其中BootOptionName替换成你设定的名字,-d后面是启动分区所在的硬盘(默认为/dev/sda),-p后面是分区位置(默认为1),-l是启动efi文件的路径。
这样就添加了EFI启动项。
举例:
root@ubuntu:~# efibootmgr -c -w -L "BootOptionName" -d /dev/sdb -p 1 -l \\EFI\\Boot\\bootx64.efi #我的启动分区所在的硬盘为/dev/sdb
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0013,0012,0010,0011,000F,000B,000A,0006,0007,0008,0009,000C,000D,000E
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash Screen
Boot0003 Lenovo Diagnostics
Boot0004 Rescue and Recovery
Boot0005 Startup Interrupt Menu
Boot0006* USB CD
Boot0007* USB FDD
Boot0008* ATAPI CD0
Boot0009* ATAPI CD1
Boot000A* ATA HDD0
Boot000B* ATA HDD1
Boot000C* ATA HDD2
Boot000D* USB HDD
Boot000E* PCI LAN
Boot000F* Windows Boot Manager
Boot0010* ubuntu
Boot0011* ubuntushim
Boot0012* opensuse-secureboot
Boot0013* BootOptionName
通过上面的操作可以看出已经添加了 BootOptionName这个启动项,编号是0013,BootOrder:处可以看出已经成为第一启动项。
如果是Linux系统启动项丢失不要添加/EFI/Boot/bootx64.efi这个启动项,因为这个文件可能被Windows系统替换,添加后会直接进入Windows系统,
不能进入GRUB引导程序,可以尝试添加/EFI/opensuse/ 目录下的grubx64.efi grub.efi shim.efi MokManager.efi 等文件,每个Linux发行版
对应的目录下的文件可能不一样,根据实际情况添加,我的电脑安装了3个系统,安装顺序为Windows Ubuntu openSUSE,所以要添加最后安装的那个
系统对应的启动文件,因为最后安装的系统的GRUB才会把前面系统添加进去,才可以通过一个GRUB管理多个系统。
10、删除启动项的命令为:
root@ubuntu:~# efibootmgr -b 0013 -B #删除刚才添加的BootOptionName启动项,对应的编号为0013
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0012,0010,0011,000F,000B,000A,0006,0007,0008,0009,000C,000D,000E
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash Screen
Boot0003 Lenovo Diagnostics
Boot0004 Rescue and Recovery
Boot0005 Startup Interrupt Menu
Boot0006* USB CD
Boot0007* USB FDD
Boot0008* ATAPI CD0
Boot0009* ATAPI CD1
Boot000A* ATA HDD0
Boot000B* ATA HDD1
Boot000C* ATA HDD2
Boot000D* USB HDD
Boot000E* PCI LAN
Boot000F* Windows Boot Manager
Boot0010* ubuntu
Boot0011* ubuntushim
Boot0012* opensuse-secureboot
11、删除多余的启动项从新查看启动项:
root@ubuntu:~# efibootmgr
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0012,0010,0011,000F,000B,000C,000D
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash Screen
Boot0003 Lenovo Diagnostics
Boot0004 Rescue and Recovery
Boot0005 Startup Interrupt Menu
Boot000B* ATA HDD1
Boot000C* ATA HDD2
Boot000D* USB HDD
Boot000F* Windows Boot Manager
Boot0010* ubuntu
Boot0011* ubuntushim
Boot0012* opensuse-secureboot
12、修改boot 顺序
root@ubuntu:~# efibootmgr -o 0012,0010,0011,000F,000D,000C,000B
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0012,0010,0011,000F,000D,000C,000B
Boot0000 Setup
Boot0001 Boot Menu
Boot0002 Diagnostic Splash Screen
Boot0003 Lenovo Diagnostics
Boot0004 Rescue and Recovery
Boot0005 Startup Interrupt Menu
Boot000B* ATA HDD1
Boot000C* ATA HDD2
Boot000D* USB HDD
Boot000F* Windows Boot Manager
Boot0010* ubuntu
Boot0011* ubuntushim
Boot0012* opensuse-secureboot
root@ubuntu:~#
通过efibootmgr -o 命令将000B和000D调换,如果要设置第一启动,把相应的编号放到命令后的最前面,如上面的0012
UEFI启动视频详解:启动分析+N项操作实例
============================================================= ※※※※最给力的视频解说※※※※ 2011hiboy全部共享资料:立刻去 ...
为win7添加ubuntu的启动引导项
利用MBRFix删除ubuntu的开机引导界面,恢复成win7引导之后,为win7添加ubuntu的启动引导项: 直接利用EasyBCD添加一个Grub2的引导项即可 参考:http://mathis ...
win10应用程序添加到开机启动项的两种解决办法
原文 win10应用程序添加到开机启动项的两种解决办法 在windows10系统中,如果想让应用程序在开机之后自动运行起来,可以怎么做呢? 方法一: 1.首先创建应用程序的快捷方式 找到自己想加入开机 ...
使用GRUB 添加新的启动项 (menu entry)
GRUB版本: Grub2 基础知识: 相关的文件和目录结构: A./etc/grub.d/ 上图中有一个40_custom的脚本: 可以通过修改40_custom脚本来加入自定义的启动项. B./e ...
win10启动项添加方法
1.添加或删除启动文件夹下的快捷方式实现开机自启动 我们可以直接将应用软件的快捷方式拖到启动文件夹里,下次开机时便会自动运行这些软件. 不需要开机启动某些软件了就将启动文件夹里的该软件的快捷方式删除掉 ...
.Net Core MVC 网站开发(Ninesky) 2.2、栏目管理功能-System区域添加
在asp或asp.net中为了方便网站的结构清晰,通常把具有类似功能的页面放到一个文件夹中,用户管理功能都放在Admin文件夹下,用户功能都放在Member文件夹下,在MVC中,通常使用区域(Area ...
每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询
前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...
redis 3.2.5单机版安装、使用、systemctl管理Redis启动、停止、开机启动
参照地址 http://www.mamicode.com/info-detail-1488639.html 前提:防火墙安装,然后打开端口,设置开机启动 一.redis源码安装 [root@host- ...
如何添加Tomcat为启动服务
tomcat8.0, 可以用startup.bat启动, 但注销又不能启动服务,但现在的系统不知出了什么问题 ? 答 1.我这个是zip版本的,所以里面有一个service.bat的文件,所以很简单 ...
随机推荐
springmvc 文件下传、上载、预览。以二进制形式存放到数据库(转载)
springmvc 文件上传.下载.预览.以二进制形式存放到数据库.数据库中的关于传入附件的字段我写了2个:一个存放内容accessory,一个存放文件的后缀filetype 上传:首先需要2个必须的 ...
BYTE 和字符串转换
string hanzi = "汉字"; byte[] arr = System.Text.Encoding.UTF8.GetBytes(hanzi); string temp = ...
常见的几种 CSS 水平垂直居中解决办法
用CSS实现元素的水平居中,比较简单,可以设置text-align center,或者设置 margin-left:auto; margin-right:auto 之类的即可. 主要麻烦的地方还是在垂 ...
【python】python异常类型
python2: BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- Stop ...
1080. Graduate Admission (30)
时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It is said that in 2013, there w ...
RUBY的类封装,继承,多态简单演示
class Person def initialize(name,age=18) @name=name @age=age @motherland="China" end def t ...
转载 iOS拦截导航栏返回按钮事件的正确方式
原文链接:http://www.jianshu.com/p/25fd027916fa 当我们使用了系统的导航栏时,默认点击返回按钮是 pop 回上一个界面.但是在有时候,我们需要在点击导航栏的返回按钮 ...
BZOJ-1010-[HNOI2008]玩具装箱toy(斜率优化)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
dgraph解决社交关系中的正反向查找
dgraph解决社交关系中的正反向查找 本篇介绍的是, 社交关系中的关注者与被关注者在dgraph中如何实现查找. 对dgraph的基本操作不太清楚的可以看看我之前写的博客 dgraph实现基本操作 ...
ACdream - 1060 递推数(矩阵+循环节)
https://vjudge.net/problem/71677/origin 已知A(0) = 0 , A(1) = 1 , A(n) = 3 * A(n-1) + A(n-2) (n ≥ 2) 求 ...
efi 添加linux启动项,用efibootmgr管理UEFI启动项,添加丢失的启动项相关推荐
- 在linux环境中利用efibootmgr管理efi启动项[添加、删除、改变顺序]
在linux环境中利用efibootmgr管理efi启动项[添加.删除.改变顺序] 本例可以解决uefi双系统中启动顺序的问题,首先确保自己的机器为uefi固件 在Terminel中输入efiboot ...
- linux efi启动,在linux环境中利用efibootmgr管理efi启动项
UEFI用来替代传统BIOS引导操作系统,学会修改UEFI启动项也变得十分重要,UEFI全称为:"统一的可扩展固件接口"(Unified Extensible Firmware I ...
- uefi怎么添加linux启动项,LINUX下EFIBOOTMGR的使用,删除UEFI主板多余启动项和添加启动项...
用uefi装了几回次archlinux,搞的uefi启动选项下多出来好多启动项..这东西重格硬盘也是很差用的.发现如下方法能够解决.linux efibootmgr //显示efi的启动项ubun ...
- uefi怎么添加linux启动项,linux下添加UEFI启动项
今天突然发生了一件怪事,系统重启后没有了硬盘的uefi启动项, 吓了我一跳,我以为硬盘挂了,立即进livecd查看硬盘信息,好在一切正常. 我的电脑通常会自动添加应该第一分区(esp分区)里的一些启动 ...
- bcdedit添加linux引导,强大的BCDEdit工具-启动项等相关问题-设置默认开机启动项
在windows中,我们会采用BCDEdit来修改菜单启动项. 1.打开方法:以管理员身份运行,输入命令行bcdedit 则出现: Windows 启动管理器 -------------------- ...
- win8手动添加linux启动项,Win8下添加开机启动项的简单办法
Win8的用户越来越多,大家会发现任务管理器新添加了一个"启动"的功能,我们可以在其中随意删减开机启动项,以达到提高开机效率的目的.但是怎样才能添加我们平时经常用到的软件作为开机启 ...
- 鸟哥的Linux私房菜(基础篇)- 第二十章、启动流程、模块管理与 Loader
第二十章.启动流程.模块管理与 Loader 最近升级日期:2009/09/14 系统启动其实是一项非常复杂的程序,因为核心得要侦测硬件并加载适当的驱动程序后,接下来则必须要呼叫程序来准备好系统运行的 ...
- 安装linux戴尔找不到引导,dellR720重启找不到启动引导项,手动选择也无用。
机器重启后显示 no boot device available.(如下图)检查bios中设置也是没问题的,因为装完系统后根本没动过什么.F11手动选择启动项也还是会跳到这里来. 这台机子做的Raid ...
- Linux启动流程与模块管理(15)
系统的启动其实是一项非常复杂的过程,因为内核得要检测硬件并加载适当的驱动程序,接下来则必须要调用程序来准备好系统运行的环境,以让用户能够顺利的操作整台主机系统,如果你能够理解系统启动的原理,那么将有助 ...
最新文章
- 浅谈WPF的VisualBrush
- 使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit
- BugKuCTF WEB web2
- spark太基础了,今天聊下阿里 2 面必问的数据中台
- mysql多大_洞悉MySQL底层架构:游走在缓冲与磁盘之间
- U盘 制作 win 7 64bit 旗舰版 安装盘
- java的condition_java并发编程之Condition
- 为什么重写equals方法时,要求必须重写hashCode方法?
- 阿里巴巴对外开源液冷数据中心技术
- 测试和维修电脑软件,常用的电脑维修软件有哪些?
- abaqus算出来的转角单位是什么_ABAQUS中的单位制是如何规定的;
- oracle查询备份backup失败,NBU备份Oracle问题,status96 和status6 典型报错
- linux启动tomcat后,浏览器访问不到
- Similarity-Preserving Knowledge Distillation
- 腾讯bugly接入详解
- 微信小程序搜索,搜索历史,清除搜索历史,以及点击搜索历史实现搜索功能
- java通过API给企业微信用户发送微信消息
- 带有风的诗词_带风字的古诗有哪些
- 树莓派无显示器连接无线
- 用C++11的多线程读文件
热门文章
- python中凯撒密码加密_凯撒密码加密Python
- python锁屏后就无法模拟键盘_为什么我不能用python处理键盘中断?
- 关于js-xlsx设置单元格ws['!cols']的使用
- 珍藏多年的MySQL函数大全笔记,掌握数据库真不难
- 【架构实战】构建企业级软件架构的技术与实践
- 新增软文一键发布系统源码接口
- 魅蓝metal是android吗,魅蓝metal电信版和公开版/联通版相比有什么区别?
- java处理word公式(wmf格式转换成svg)(svg格式转换成png)
- 金仓数据库KingbaseES高可用概述(高可用架构与最大高可用性的特性)
- scrapy 二次爬网站 显示 Filtered offsite request to 错误