麒麟SP1/SP2 系统切换

随笔记录

目录

1. 背景介绍

2. efibootmgr

2.1 什么是efibootmgr?

2.2 安装efibootmgr

2.3 使用efibootmgr查看EFI引导项

2.4 添加新的EFI引导项

2.5 修改EFI引导顺序

2.6 删除EFI引导项

2.7 更改引导超时时间

2.8 查看更详细的帮助信息

3. 常见问题收集整理

3.1 找不到EFI分区

3.2  引导项无法启动

3.3 无法删除引导项


1. 背景介绍

因需要覆盖ARM 结构麒麟SP1/SP2 OS,此处随机记录一下,仅供随笔记录

信创操作系统上使用EFI引导管理器配置工具efibootmgr命令详解的文章。efibootmgr是一个在基于UEFI的系统中管理EFI引导条目的命令行工具,它允许用户查看、添加、删除和修改EFI引导项

2. efibootmgr

2.1 什么是efibootmgr?

efibootmgr是一个用于管理EFI引导条目的命令行工具。

EFI(Extensible Firmware Interface)是BIOS的替代品,广泛用于现代计算机中。

EFI引导项存储在NVRAM中,efibootmgr工具允许用户在操作系统中直接管理这些引导项,而不需要进入BIOS设置界面。

2.2 安装efibootmgr

大多数现代的Linux发行版都预装了efibootmgr工具。

如果您的系统中没有安装,可以通过包管理器进行安装。


1. 在Debian/Ubuntu系统上,使用以下命令安装:

    # sudo apt-get update
    # sudo apt-get install efibootmgr

2. 在RHEL/CentOS系统上,使用以下命令安装:

    # sudo yum install efibootmgr

2.3 使用efibootmgr查看EFI引导项

要查看当前系统的EFI引导项,可以直接运行efibootmgr命令:
# sudo -i
# efibootmgr 


[root@localhost ~]# sudo -i
[root@localhost ~]# 
[root@localhost ~]# efibootmgr
BootCurrent: 0006
Timeout: 10 seconds
BootOrder: 0006,0007,0002,0003,0004,0005,0001,0000
Boot0000* BootManagerMenuApp
Boot0001* ByoUiApp
Boot0002* UEFI PXEv4 (MAC:A4178BA4B4E0)
Boot0003* UEFI PXEv4 (MAC:A4178BA4B4E1)
Boot0004* UEFI PXEv4 (MAC:A4178BA4B4E2)
Boot0005* UEFI PXEv4 (MAC:A4178BA4B4E3)
Boot0006* Kylin
Boot0007* Kylin
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# cat /etc/os-release 
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"

[root@localhost ~]# 


//******************************* 各行内容解释 *******************************

# BootCurrent: 0006
意味着当前系统是从编号为 0006 的启动项启动的,从后面的 Boot0006* Kylin 可以知道对应的启动项名称是 Kylin,也就是当前系统启动的是名为 Kylin 的启动项(很可能是基于麒麟操作系统相关的启动配置)。


# Timeout: 10 seconds
系统在启动过程中等待用户选择引导项的时间是 10 秒。如果用户在此期间没有选择,引导过程会按照 BootOrder 中的顺序自动继续。


#BootOrder: 0006,0007,0002,0003,0004,0005,0001,0000
这是系统启动时会依次尝试的引导项顺序。系统会从这个列表的第一个引导项开始尝试,如果失败则会尝试下一个(列出了各个启动项的启动顺序优先级,从左到右优先级依次降低)


在这里启动顺序依次是 0006(对应 Kylin)、0007(同样对应 Kylin,可能是不同配置版本之类的情况)、0002(对应 UEFI PXEv4 (MAC:A4178BA4B4E0) 等,
这几个 UEFI PXEv4 相关的启动项可能是和基于 PXE 网络启动相关且带有不同 MAC 地址区分的设置),最后是 0000(对应 BootManagerMenuApp)和 0001(对应 ByoUiApp)。


注意:此系统目前 

Boot0006* Kylin  -- 麒麟SP1

Boot0007* Kylin  -- 麒麟SP2

\

2.4 添加新的EFI引导项

如果您需要添加一个新的EFI引导项,可以使用以下命令:
# root@pdsyw-pc:~# efibootmgr -c -d /dev/nvme0n1 -p 1 -L "Windows10" -l "\EFI\Microsoft\Boot\bootmgfw.efi"


// 参数解释说明

-c:创建新的引导项。
-d /dev/nvme0n1:指定引导项所在的磁盘设备。
-p 1:指定引导项所在的分区号。
-L “Windows10”:为引导项指定一个标签名称。
-l “\EFI\Microsoft\Boot\bootmgfw.efi”:指定引导程序的路径。

2.5 修改EFI引导顺序

# 要修改系统的引导顺序,可以使用-o选项指定新的引导顺序:

# 此命令将引导顺序设置为首先尝试引导项0007,然后依次尝试0006等。
# 注意:    
        00006: 麒麟SP1
        00007:  麒麟SP2

切换系统 麒麟SP1 切换 麒麟SP2:
1. 执行命令 # efibootmgr -o 0007,0006,0002,0003,0005,0004,0001,0000
2. reboot
3. 登录系统即可


切换系统 麒麟SP2 切换 麒麟SP1:
1. 执行命令 # efibootmgr -o 0006,0007,0002,0003,0005,0004,0001,0000
2. reboot
3. 登录系统即可

2.6 删除EFI引导项

如果需要删除某个EFI引导项,可以使用-b选项指定引导项标识符,并使用-B选项删除它:

1. 此命令将删除引导项0007(例如,删除麒麟SP2)。
[root@localhost ~]#efibootmgr 
[root@localhost ~]# efibootmgr -b 0007 -B


2. 删除 /boot/efi/EFI/ 目录中文件夹


[root@localhost ~]# 
[root@localhost ~]# cd /boot/efi/EFI/
[root@localhost EFI]# 
[root@localhost EFI]# ll
total 8
drwx------ 2 root root 4096 Sep 18  2022 BOOT
drwx------ 3 root root 4096 Aug  7 11:44 kylin
[root@localhost EFI]# 
[root@localhost EFI]# rm -rf <已删除引导项标识中文件夹>


2.7 更改引导超时时间

# 更改引导时间
# efibootmgr 
# efibootmgr -t 15


[root@localhost Kylin]# 
[root@localhost Kylin]# 
[root@localhost Kylin]# efibootmgr
BootCurrent: 0006
Timeout: 15 seconds                     # 引导时间已更改
BootOrder: 0006,0007,0002,0003,0004,0005,0001,0000
Boot0000* BootManagerMenuApp
Boot0001* ByoUiApp
Boot0002* UEFI PXEv4 (MAC:A4178BA4B4E0)
Boot0003* UEFI PXEv4 (MAC:A4178BA4B4E1)
Boot0004* UEFI PXEv4 (MAC:A4178BA4B4E2)
Boot0005* UEFI PXEv4 (MAC:A4178BA4B4E3)
Boot0006* Kylin
Boot0007* Kylin
[root@localhost Kylin]# 
[root@localhost Kylin]# 
[root@localhost Kylin]# 

2.8 查看更详细的帮助信息

# 更多使用方法,可以查看帮助文档

#  efibootmgr --help

[root@localhost Kylin]# 
[root@localhost Kylin]# 
[root@localhost Kylin]# efibootmgr --help
efibootmgr version 16
usage: efibootmgr [options]
	-a | --active         sets bootnum active
	-A | --inactive       sets bootnum inactive
	-b | --bootnum XXXX   modify BootXXXX (hex)
	-B | --delete-bootnum delete bootnum
	-c | --create         create new variable bootnum and add to bootorder
	-C | --create-only	create new variable bootnum and do not add to bootorder
	-D | --remove-dups	remove duplicate values from BootOrder
	-d | --disk disk       (defaults to /dev/sda) containing loader
	-r | --driver         Operate on Driver variables, not Boot Variables.
	-e | --edd [1|3|-1]   force EDD 1.0 or 3.0 creation variables, or guess
	-E | --device num      EDD 1.0 device number (defaults to 0x80)
	-g | --gpt            force disk with invalid PMBR to be treated as GPT
	-i | --iface name     create a netboot entry for the named interface
	-l | --loader name     (defaults to "\EFI\kylin\grub.efi")
	-L | --label label     Boot manager display label (defaults to "Linux")
	-m | --mirror-below-4G t|f mirror memory below 4GB
	-M | --mirror-above-4G X percentage memory to mirror above 4GB
	-n | --bootnext XXXX   set BootNext to XXXX (hex)
	-N | --delete-bootnext delete BootNext
	-o | --bootorder XXXX,YYYY,ZZZZ,...     explicitly set BootOrder (hex)
	-O | --delete-bootorder delete BootOrder
	-p | --part part        (defaults to 1) containing loader
	-q | --quiet            be quiet
	-t | --timeout seconds  set boot manager timeout waiting for user input.
	-T | --delete-timeout   delete Timeout.
	-u | --unicode | --UCS-2  handle extra args as UCS-2 (default is ASCII)
	-v | --verbose          print additional information
	-V | --version          return version and exit
	-w | --write-signature  write unique sig to MBR if needed
	-y | --sysprep          Operate on SysPrep variables, not Boot Variables.
	-@ | --append-binary-args file  append extra args from file (use "-" for stdin)
	-h | --help             show help/usage
[root@localhost Kylin]# 

3. 常见问题收集整理

3.1 找不到EFI分区

确认引导项的分区和设备路径正确无误。
使用lsblk命令查看分区结构,并确保EFI分区已正确挂载。

3.2  引导项无法启动

检查引导程序的路径是否正确。
确认引导项的顺序和设置已正确保存。

3.3 无法删除引导项

使用sudo命令获取超级用户权限后再尝试删除。
确保标识符正确无误,并使用-B选项进行删除。

到此简单介绍efibootmgr 使用已完成

麒麟SP系列是华为公司推出的一系列高性能芯片。麒麟SP1SP2SP3是该系列中的三款芯片产品,它们在性能、功能和用途等方面有一些区别。 首先,麒麟SP1是该系列的基础芯片,主要面向入门级和中低端手机市场。它采用8核心处理器,结合先进的制程工艺,能够提供较为出色的性能和功耗表现。由于设计面向入门级市场,因此在一些高要求的应用场景下,可能会有一些性能瓶颈。 其次,麒麟SP2是该系列的进阶型芯片,主要面向中高端智能手机市场。相比于SP1SP2在性能方面有一定的提升。它采用更为先进的制程工艺和多核心处理器架构,可以提供更快捷的多任务处理能力和更高的算力表现。此外,SP2还在AI处理和图形渲染等方面有所优化,能够提供更加出色的用户体验。 最后,麒麟SP3是该系列的旗舰级芯片,主要面向高端智能手机市场。它采用更为先进的7nm工艺,采用了多核心处理器和人工智能神经网络结构,能够提供极强的算力和处理能力。与SP2相比,在性能、功耗和AI处理等方面都有进一步的提升,能够满足高端用户对于高性能和创新功能的需求。 总而言之,麒麟SP系列芯片的区别主要体现在性能水平、处理能力和面向市场的定位上。不同级别的芯片面向不同的用户需求,提供不同水平的性能和功能,以满足不同层次消费者的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值