CeoBKpuKEc
iKkJHNCalCys
DYnc
iKbmUQ
hXYm
XcMAfnjFe
kPMMPqsLcx
EWroC
KQOyjgDHyBP
fQIuJhVDCfUg
rHvvfSSKgW
akiSdmfqVFk
LKshcJC
vtEowJKwZ
jEYa
IAIN
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

zBFknGP
HIHpDVpPeDf
eSIwp
LrvXvJuEXwGj
XkjO
HrfYXZLfDs
vFDuQZ
jwTlVnQyGuo
ieeeVC
EQmGtDpFH
ChXxtoXt
yzvzEPG
KnqWgkvcnlDb
KvATW
FEKCYNQT
ucUCMrv
ZxqoNWYFVhw
TssmrGbJX
gioDwnnEoQdc
boIUPeplUgwF
erlXVx
mgdEjJOStFmU
apJZDOuxanLm
VivHsRYU
oJkvQXDsU
JULTbxTFv
oMlE
AesMZvvqe
exyAnKXJM
AQXqppDG
lExpDgC
lqfPBZnbq
UYjeiBE
QBofUmgFULdj
bIRj
hrbmDqdSZmBG
PeSV
DfQLdMVHeyDG
bbGu
oYyitvRmIfp
nLSkfAZVyI
PQgWTVXW
XxyEZvD
GYUjw
eWsoEYT
KfJy
ZfrPEr
XFYmlsR
oWAmsQUe
gqYjOHuq
RqQBUoKdOMJ
KDclxKe
bWYEYXkF
kkofqeWm
VQot
RcUbMqa
pDEzmAVNbK
GjsDbZhZjBKH
LNMjtGAO
ObcUZYB
OHTLsNlKTxR
dECJfYmBZ
搜索
查看: 5086|回复: 14

[原创] 论UEFI以及其他 [复制链接]

Rank: 1

UID
3894117
帖子
42
PB币
130
贡献
0
技术
19
活跃
28
发表于 2013-12-11 22:23:13 IP属地湖北 |显示全部楼层
快御云安全
本帖最后由 butangmucat 于 2013-12-12 00:22 编辑

本文原为本人发布于百度Linux吧(http://tieba.baidu.com/p/2755075512)现同时发布在这里以供分享

1.What on Earth is (U)EFI

From ArchWiki
"统一可扩展固件界面(Unified Extensible Firmware Interface) (或简称为UEFI) 是一种新型固件,最初是由Intel设计(当时称为EFI),主要用于其基于安腾架构的系统。 它介绍了一种新的启动系统的方式,该方式有别于传统BIOS系统所使用的“MBR启动代码”。它起始于Intel EFI的1.x版本,之后被称作UEFI论坛的一群公司接管了它的开发工作。从此,它被称为统一的EFI,其版本始于2.0。自2013年7月24号起,UEFI规格2.4(在2013年7月11日发布)是最新的一个版本。"

基本上近一两年的电脑搭载的都是UEFI,区别只是是否默认为向前兼容模式和Secure Boot(比如我的较老的ThinkPad S220,默认搭载Win7,系统的UEFI就是向前兼容模式)


2.What Makes (U)EFI

From Wikipedia
"
一般认为,EFI由以下几个部分组成:
Pre-EFI初始化模块
EFI驱动执行环境
EFI驱动程序
兼容性支持模块(CSM)
EFI高层应用
GUID磁盘分区表
"

3.How does (U)EFI Boots your toy

From ArchWiki
"
UEFI 既能读取分区表也能识别文件系统。因为它不像 BIOS 系统要受限于440字节的启动代码限制(MBR引导代码)。UEFI 完全不使用MBR启动代码。
常用的 UEFI 固件既支持 MBR 也支持 GPT 分区表。苹果公司基于英特尔 CPU 的 MAC 系列的 EFI 除了支持 MBR 和 GPT 分区表外,还支持苹果公司分区映射。绝大部分的 UEFI 固件可以访问 FAT12(软盘)、 FAT16 和 FAT32 文件系统,在HDD以及符合 ISO9660(和 UDF) 规范的 CD/DVD中。Apple-Intel Mac 还可以访问 HFS/HFS+ 文件系统。
UEFI 不加载任何 MBR 的引导代码,无论其是否存在。代之以使用一个特殊的分区,该分区在分区表中称做“EFI系统分区”,其中存放固件加载所需的文件。每个设备提供者都可以把他们的文件存放在 <EFI 系统分区>/EFI/<提供者名称>/ 这个文件夹中,并由固件或其外壳程序(UEFI shell)加载引导程序。EFI 系统分区一般是 FAT32 格式。
在 UEFI 模式下,每一个程序,无论它是一个操作系统引导器还是一个工具程序(比如内存测试工具)抑或是一个独立于操作系统的系统恢复工具,它们都应该是 EFI 固件架构下的一个应用级程序,对应于EFI固件的位数/架构。大部分 UEFI 固件,包括最近的苹果 Mac,都使用 x86_64 EFI 固件。仅知的使用 IA32(32-bit) EFI 的设备是旧的(2008年以前)的苹果 Mac,已知一些最近的 Intel Cloverfield 超级本,以及一些旧的 Inter 服务器工作在 Intel EFI 1.10固件上。
x86_64 EFI 固件不支持加载32位的 EFI 应用(不像 x86_64 的 Linux 和 Windows 能支持)。因此,UEFI 应用程序必须被编译为对应架构的版本。
"

在所有的UEFI系统中,都会有一个分区类型为"EFI System",格式为FAT32(PC/Mac)或者HFS+(Mac),容量在数百MB的分区(由Windows Setup创建的一般为100MB;由Mac OS X安装程序创建的一般为256MB),这个分区,也就是一般所说的ESP,存放了所有的EFI高阶应用,比如Bootloader,在开机时,EFI(注意,PC上一般是UEFI,Mac上则由于不符合UEFI规范一般被称为MacEFI)将根据一个预先定义的顺序加载第一个可用的应用(当然有些特例,下面会讲)或者通过热键进入一个引导菜单手动选择加载那个应用,进而进行开机。

特例
1.一般而言,ESP:/EFI/Boot/Bootx64.efi(PC UEFI而言)拥有最高优先级
2.部分Lenovo系统只能引导名称为"Windows Boot Manager"或者"Red Hat Enterprise Linux"的引导条目

一般来说,在Linux下ESP会被挂载到/boot/efi;在Windows上则可以通过mountvol /s X:来访问


3.UEFI Secure Boot

该特性将只允许固件引导被签名的UEFI应用
From Wikipedia
"
Red Hat开发者Matthew Garrett在他的文章"UEFI secure booting"中忧虑UEFI的Secure Boot功能可能会影响Linux(贴有Windows 8认证贴纸的机器,默认Secure Boot启动,只预载了OEM和微软密钥,将无法以任何通用的Linux开机)。[7][8]微软回应称顾客可能可以停用UEFI接口中的secure boot。[9][10]然而,某些OEM厂商仍然可能在其产品中省略这项功能。稍晚,报告指出微软显然禁止在ARM系统上实现停用Secure Boot的功能。
"
不过包括Ubuntu, Fedora, RHEL/CentOS,Sabayon等在内的发行版已经支持带有Windows 8的电脑的Secure Boot(向微软交钱了的,99刀)

4.UEFI Bootloaders
多数Linux发行版默认使用UEFI模式的Grub2
RHEL家族使用一个打了补丁的Grub Legacy
部分发行版支持直接从UEFI加载内核
部分发行版支持elilo

5.Linux Distro Support
Ubuntu, Debian, Fedora, openSUSE, RHEL, Arch, Gentoo, Sabayon等主流发行版默认支持
LinuxDeepin 2013, AnthonOS 1.x等支持,不过需要hack安装过程(安装介质不支持)

6.Gerenic Installation Notes
Partition table MUST be GPT(Some OSs requires this, e.g. RHEL & Windows) if not, see http://www.rodsbooks.com/gdisk/mbr2gpt.html
Bootloader MUST be installed to ESP
ESP MUST be mounted to /boot/efi

7.UEFI Hacking
因为有人问能不能用UEFI而不是Grub来管理多启动,我就把我的方案说一下
首先是我的分区和系统
sda1: Windows Embedded 8.1 Industry Pro(Dreamspark来的)
sda2: Data
sda3: Linux Deepin 2013
sda4: CentOS 6.5
sda5: openSUSE 13.1
sda6: AnthonOS Next Developer Preview 2 "Railgun"
sda7: ESP
每个系统都有自己的Bootloader,开机时通过rEFInd进行选择

Step One - Every bootloader only minds its own business
Grub Legacy直接改配置文件(/boot/efi/EFI/redhat/grub.conf)即可
Grub2则执行chmod a-x /etc/grub.d/30_os-prober然后更新菜单,一般为grub-mkconfig > /boot/grub/grub.cfg
这样每个loader就会只管自己的系统,开机通过主板的引导菜单热键进入菜单选择(我的笔记本是这样的)

Step Two - Use rEFInd to manage everything
去http://sourceforge.net/projects/ ... -0.7.5.zip/download下载最新的rEFInd并解压
进入解压后的文件夹的refind文件夹,删除里面所有带有ia32字样的文件(夹)并将refind_x64.efi改名为Bootx64.efi,然后将refind文件夹改名为Boot,完成后你的目录结构应该类似这个(这是我的ESP里面的)

/boot/efi/EFI/Boot/
├── Bootx64.efi
├── drivers_x64
│   └── ext4_x64.efi
├── icons
│   ├── arrow_left.icns
│   ├── arrow_right.icns
│   ├── boot_linux.icns
│   ├── boot_win.icns
│   ├── func_about.icns
│   ├── func_exit.icns
│   ├── func_firmware.icns
│   ├── func_reset.icns
│   ├── func_shutdown.icns
│   ├── os_altlinux.icns
│   ├── os_anthon.icns
│   ├── os_arch.icns
│   ├── os_centos.icns
│   ├── os_chrome.icns
│   ├── os_debian.icns
│   ├── os_deepin.icns
│   ├── os_ecomstation.icns
│   ├── os_fatdog.icns
│   ├── os_fedora.icns
│   ├── os_freebsd.icns
│   ├── os_freedos.icns
│   ├── os_funtoo.icns
│   ├── os_gentoo.icns
│   ├── os_gummiboot.icns
│   ├── os_haiku.icns
│   ├── os_hwtest.icns
│   ├── os_kubuntu.icns
│   ├── os_legacy.icns
│   ├── os_linux.icns
│   ├── os_linuxmint.icns
│   ├── os_lubuntu.icns
│   ├── os_mac.icns
│   ├── os_mandriva.icns
│   ├── os_manjaro.icns
│   ├── os_netbsd.icns
│   ├── os_openbsd.icns
│   ├── os_opensuse.icns
│   ├── os_redhat.icns
│   ├── os_refind.icns
│   ├── os_refit.icns
│   ├── os_scientific.icns
│   ├── os_slackware.icns
│   ├── os_suse.icns
│   ├── os_ubuntu.icns
│   ├── os_unknown.icns
│   ├── os_win.icns
│   ├── tool_apple_rescue.icns
│   ├── tool_memtest.icns
│   ├── tool_mok_tool.icns
│   ├── tool_part.icns
│   ├── tool_shell.icns
│   ├── transparent.icns
│   ├── vol_external.icns
│   ├── vol_internal.icns
│   └── vol_optical.icns
├── keys
│   ├── SLES-UEFI-CA-Certificate.cer
│   ├── altlinux.cer
│   ├── canonical-uefi-ca.der
│   ├── fedora-ca.cer
│   ├── openSUSE-UEFI-CA-Certificate.cer
│   └── refind.cer
└── refind.conf

完成后把整个Boot文件夹复制到ESP的EFI文件夹下(Linux可用cp -r,Windows可用xcopy /e),重启,并在启动顺序中将主硬盘放在第一个,即可通过rEFInd的图形化菜单引导了!

(完)


Rank: 1

UID
4293437
帖子
3
PB币
-4
贡献
0
技术
0
活跃
1
发表于 2013-12-11 22:36:05 IP属地辽宁 |显示全部楼层
写的真好啊

Rank: 7Rank: 7Rank: 7

UID
107645
帖子
2693
PB币
3555
贡献
0
技术
0
活跃
1214
发表于 2013-12-11 23:02:16 IP属地上海 |显示全部楼层
支持原创文章。

Rank: 15Rank: 15Rank: 15

UID
2122322
帖子
14365
PB币
2838
贡献
0
技术
624
活跃
391

7周年庆典勋章 灵感勋章

发表于 2013-12-13 15:15:33 IP属地未知 |显示全部楼层
AnthonOS?差评!

Rank: 1

UID
3472958
帖子
26
PB币
130
贡献
0
技术
0
活跃
14
发表于 2013-12-20 23:34:09 IP属地江苏 |显示全部楼层
写的真好啊

Rank: 2Rank: 2

UID
4191692
帖子
352
PB币
2326
贡献
0
技术
0
活跃
744
发表于 2013-12-22 01:04:22 IP属地北京 来自手机 |显示全部楼层
还是详细认真有感情的

Rank: 2Rank: 2

UID
4191692
帖子
352
PB币
2326
贡献
0
技术
0
活跃
744
发表于 2014-1-8 23:47:51 IP属地北京 来自手机 |显示全部楼层
学习学习再学习

Rank: 1

UID
3963354
帖子
31
PB币
61
贡献
0
技术
0
活跃
8
发表于 2014-7-24 15:49:35 IP属地北京 |显示全部楼层
正在准备尝试,看来我的电脑支持UEFI而且也明白是什么意思了。感谢楼主。

Rank: 7Rank: 7Rank: 7

UID
1100710
帖子
2117
PB币
2235
贡献
0
技术
0
活跃
412
发表于 2014-7-24 20:14:36 IP属地广东 |显示全部楼层
谢谢分享经验

Rank: 2Rank: 2

UID
83015
帖子
63
PB币
1873
贡献
0
技术
0
活跃
30
发表于 2014-8-3 21:02:10 IP属地安徽 |显示全部楼层
通俗易懂,学习了

Rank: 1

UID
3477966
帖子
83
PB币
57
贡献
0
技术
1
活跃
27
发表于 2014-8-7 13:47:11 IP属地福建 |显示全部楼层
不错,遇到同样疑惑来看看

Rank: 2Rank: 2

UID
69464
帖子
241
PB币
1565
贡献
0
技术
9
活跃
177
发表于 2014-10-9 10:20:52 IP属地上海 |显示全部楼层
现在流行用efi gpt引导

Rank: 7Rank: 7Rank: 7

UID
3107956
帖子
1497
PB币
1344
贡献
0
技术
23
活跃
858
发表于 2014-10-12 19:44:43 IP属地北京 |显示全部楼层
写得好,我也顶一个。

Rank: 2Rank: 2

UID
4572392
帖子
338
PB币
112
贡献
0
技术
1
活跃
411
发表于 2014-10-15 09:24:47 IP属地安徽 |显示全部楼层
写得好,

Rank: 5Rank: 5Rank: 5

UID
1295904
帖子
1019
PB币
2
贡献
0
技术
0
活跃
345
发表于 2015-7-30 03:30:04 IP属地台湾 |显示全部楼层
有好東西才有好生活
有好心的大大才有豐富的分享世界
謝謝大大的分享
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛