无忧启动论坛

 找回密码
 注册
搜索
一次装机 终生领工资最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
诚聘PE工具开发技术员QQ:1607112133系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 2593|回复: 5

lbw2007的备用收藏

[复制链接]
发表于 2015-10-19 10:37:57 | 显示全部楼层 |阅读模式
本帖最后由 lbw2007 于 2015-11-10 11:59 编辑

专门总结收藏贴:

此为个人收藏列表,不喜可议,请勿狂喷,如有侵权,纯属巧合。也希望大家能够捐献出一些珍贵的教程贴一起分享。
友情提醒:有的旧帖子会出现打开卡死的现象,稍等一会一般都能解决。有强迫症的朋友可以禁用javascript,虽然看不到图片但是不卡了。推测应该是论坛升级导致的……
先把帖子搬出来,日后慢慢整理。
置顶区个个是经典,还是写下来吧,万一取消置顶就可惜了。

========================================================

经典教程
  
  
面向UEFI,兼容bios——U+B+方面的PE、工具和教程汇总帖子!
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=272544
    (置顶帖,不解释,收集的都是精品中的精品,虽然有很多旧的知识,高手和新手都应该看看)
立足BIOS,兼容uefi——UD技术教程和PE汇总帖子!
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=310224
    (置顶帖,不解释)
分区表项法——使ud或U+深藏区中8PE能EFI启动的一种简单方法
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=328601
    (BIOS和UEFI双启的史诗之作)
关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解..
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303679
    (UEFI启动中必须文件的说明)
UEFI启动视频详解:启动分析+N项操作实例,赶紧学习,不要落伍啦,该给自己充电啦...
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=299643
    (置顶帖,详细地介绍了UEFI的启动方式和原理)
2013.10.31重新编辑帖子:BOOTMGR破解,可自由修改: BOOT\BCD
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=211314
    (对多个BCD菜单跳转感兴趣的朋友可以试试)
用WinBuilder制作一个Win8PE (X86,X64)
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=256062
    (经典的PE制作教程,小白通用)
宝贵经验
xp系统支持gpt分区硬盘启动
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=183806
    (目前也只有XP需要添加GPT的支持了)
低端和高端隐藏PE对弱UEFI启动的兼容性重大发现!请广泛测试, 弱UEFI启动惊喜!
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=336801
    (完整介绍UEFI启动能力的文章,分析的非常到位)
轻松手动把PE安装到硬盘 还可实现XP windows7 linux多重引导。启动加背景图片。
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=153128
    (早期的把PE部署到本地磁盘的教程)
Grub4Dos 学习笔记
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=322662
    (没有置顶很可惜,近乎完美的G4D教程)
(译)UEFI 启动:实际工作原理
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=370944
    (作者为UEFI规范编写者之一,真正从本质上解释UEFI工作原理)
UD升级到UDm,U启部署只需“一拖一格”,PE外置改造统一便捷!
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=330493
    (论坛神器之一,可直接将PE制作成BIOS-UEFI双启动)
模板资源
至尊无敌,可直接启动型全能FBA横空出世(内置菜单功能强悍,部署灵活)
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=311239
    (对各种引导感兴趣的可以试试,很全、很全、很全,重要的事情说三遍)
【2015-06-10 终结版(含简化版)】hhh333的多模多启PE发布
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=136576
    (hhh333的PE本身就是一部教程)
现在流行什么菜单?
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=327418
    (各种菜单的模板)
2014.06.11-MAXDOS_9.3增强版、PXE版,附安装程序和使用教程
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=199056
    (经典工具,各大PE都有集成)
2015.03.25-SISO安装系统模块,整合RUN、NTBOOT、F6IMG、DPMS、SRSF6N、理顺盘符
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205934
    (超强全功能G4D模块,如果PE遇到了7B蓝屏等问题建议好好参考)
分区管理/系统设置/ImDisk GUI,x86/x64,仅1.4M
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=365765
    (各种挂载隐藏分区的工具)
UD&FBA安装工具GUI版开源大礼免费分享,感谢原创无私奉献[类似一键工作室
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=193487
    (难得一见的FBA写入工具源码)
Windows 7/8/10  WIMBoot 辅助工具(傻瓜化)
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=365412
    (虽然介绍很少但是确实是一个非常强大的工具)
全系列显卡精简版纯驱动(Windows_6.x_VGA_Drivers_lite_x86&x64)
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=372532
    (喜欢全能PE的朋友一定不要错过)
Clover EFI bootloader  for  USB BIOS双模启动 安装工具
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=366522
【从此不需编写菜单配置文件!贡献一套原创自动菜单生成脚本】
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=369515
心得细节
Windows  is  loading  files 加载白色进度条的显示文字
    http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=325330&pid=2889034
    (流氓PE显示logo通用工具)
制作同时支持UD和UEFI启动的U盘PE。
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=329992
    (最简单的简化版三分区教程,适合小白)
抛砖引玉:优盘EFI Shell 安装系统及脚本的应用
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=333680
    (一个基本的efi  shell脚本)
在win81PE中略过驱动包验证
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=327257
    (81pe无法像以往pe那样直接添加驱动)
03pe引导文件setupldr的修改(新手适用)
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=342486
    (修改pe加载时的字符串)
ud内img以及u+v2各种隐藏挂载驱动【跪求测试】
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=342721
问个比较傻问题高手莫笑,vhd上的Win7搞好了,打算把它弄成内存式的百毒不侵的又该如何
    http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=317867&pid=2856575
    (用NTBOOT引导差分还原VHD的重要实例)
ud.FAT法:把UD扩展区当作fat区
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=356546
    (ud的新玩法,把扩展区设置为fat32并且可以读写)
再说windows7x64不支持UEFI启动安装的小盆友就该打屁屁
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363918
    (分享Win7如何UEFI启动的教程)
UEFI中直接访问NTFS和iso文件系统的驱动
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=275371
    (UEFI是可以访问NTFS文件系统的)
从ISO文件直接安装各版本Windows?? 看这里 -- 更新
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=195573
    (喜欢安装原版的可以试试,不用进PE即可安装的傻瓜教程)
Win10X64中运行32位程序的临时办法
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=371490
    (Win10pe的新成果)

========================================================
PS:请帮忙看看,如果有错误理论请帮忙指出
PS2:本来想弄颜色的,结果从word复制出来的颜色都没了,还是算了吧,本来也没有多少人用
发表于 2015-10-19 10:48:21 | 显示全部楼层
占前排,观察一下
回复

使用道具 举报

发表于 2015-10-19 11:55:45 | 显示全部楼层
先找个沙发坐一坐,看看有多少好东西
回复

使用道具 举报

 楼主| 发表于 2016-2-8 19:47:06 | 显示全部楼层

UEFI在wiki上的解释(20150227)

Unified Extensible Firmware Interface (简体中文)                                                                                                                                               
                                                                               
                                                                               
相关文章

翻译状态: 本文是英文页面 Unified_Extensible_Firmware_Interface翻译,最后翻译时间:2015-02-27,点击这里可以查看翻译后英文页面的改动。
统一可扩展固件界面(Unified Extensible Firmware Interface) (或简称为UEFI) 是一种新型固件,它引入了一种新的启动系统的方式,该方式有别于传统BIOS系统所使用的“MBR启动代码”(其二者区别见 Arch boot process#Firmware_types )。本文介绍了 什么是UEFI 以及 UEFI在Linux内核中的支持 。若要配置 UEFI 引导器,详见 Boot loaders.
Contents



UEFI 发展历史
  • UEFI起始于Intel的EFI 1.x版。
  •   从2.0版本起,一个名为UEFI论坛的公司组织接管了其开发工作,并更名为Unified EFI(统一EFI).
  • 除非特别指明是EFI 1.x, EFI和UEFI均指代UEFI 2.x固件。
  • 自2013年七月24日起,UEFI标准2.4 (发布于013年7月11日)是最新的版本。
  • 苹果公司的EFI实现不是EFI 1.x也不是UEFI 2.x而是这两者的混合体。这类固件不被归入到任何(U)EFI规格中,因而并没有一个标准的UEFI固件。除非特别指明,以下说明可通用但部分可能会在Apple Macs上有所不同或是会不起效。
UEFI 引导过程
  • 系统开机 - 上电自检(Power On Self Test 或 POST)。
  • UEFI 固件被加载,并由它初始化启动要用的硬件。
  • 固件读取其引导管理器以确定从何处(比如,从哪个硬盘及分区)加载哪个 UEFI 应用。
  • 固件按照引导管理器中的启动项目,加载UEFI 应用。
  • 已启动的 UEFI 应用还可以启动其他应用(对应于 UEFI shell 或 rEFInd 之类的引导管理器的情况)或者启动内核及initramfs(对应于GRUB之类引导器的情况),这取决于 UEFI 应用的配置。
Note: 在有些 UEFI 系统中,唯一可行的启动时(如果应用没有在 UEFI 启动菜单定制条目的话)加载 UEFI 应用的方法是把它放在此固定位置:<EFI SYSTEM PARTITION>/EFI/boot/bootx64.efi (对于 64 位的 x86 系统)
UEFI 的多重引导因为每个操作系统或者提供者都可以维护自己的 EFI 系统分区中的文件,同时不影响其他系统,所以 UEFI 的多重启动只是简单的运行不同的UEFI 程序,对应于特定操作系统的引导程序。这避免了依赖 chainloading 机制(通过一个引导程序加载另一个引导程序,来切换操作系统)。
启动 Microsoft Windows64位版本的 Windows Vista (SP1+)、Windows 7 和 Windows 8 源生支持通过 UEFI 固件引导,但是这需要将硬盘格式化为 GPT 格式。64位版本的 Windows 系统支持 UEFI-GPT 模式引导或 BIOS-MBR 模式引导,而32位版本的 Windows 系统仅支持 BIOS-MBR 模式引导。具体做法请参考论坛参考文献章节中提供的链接。查看 [这里] 来获得更多信息。
检测 UEFI 固件架构非 Mac 机检查目录 /sys/firmware/efi 是否存在,如果存在表明内核已经以 UEFI 模式启动,这种情况下 UEFI 架构等同于内核架构。(例如: 32位 或者 64位)
注意: Intel 的 Atom 片上系统 附带32位的 UEFI (自2013年11月2日). 更多信息见 这个页面
Apple Mac2008年以前的 Mac 大都使用 i386-efi 固件, 2008年以后大都使用 x86_64-efi 。有能力运行 Mac OS X Snow Leopard 64位内核的 Mac 都是 x86_64 EFI 1.x 版的固件。在 Mac OS 下输入以下命令可以找出该 Mac 的 efi 固件:
ioreg -l -p IODeviceTree | grep firmware-abi如果命令返回 EFI32 则对应的是 i386 EFI 1.x 版本的固件,返回 EFI64 对应的则是 x86_64 EFI 1.x 版的固件. Mac 没有 UEFI 2.x 固件,Apple的 EFI 实现也不完全跟 UEFI 标准兼容。
Secure Boot关于在 Linux 中 Secure Boot 的概述请参考文章 Rodsbooks' Secure Boot. 本节的重点在于如何在 Arch Linux 中设置安全启动。本节暂时仅介绍在开启 Secure Boot 模式的情况下启动 archiso 的步骤。因为 EFI 程序 PreLoader.efi 和 HashTool.efi 已经添加到 archiso 中,所以在开启 Secure Boot 模式的情况下启动 archiso 是可以的,将会显示一条 "Failed to Start loader...I will now execute HashTool". 的消息。要使用 HashTool 来注册 loader.efi 和 vmlinuz.efi 的 hash 值,执行如下步骤:
  • 选择 OK
  • 在 HashTool 主菜单先选择 Enroll Hash,再选择 \loader.efi,然后点击 Yes 确认。再选择 Enroll Hash 和 archiso,进入 archiso 目录,然后选择 vmlinuz-efi 并且点击 Yes 确认,最后点击 Exit 返回启动设备选择菜单。
  • 在启动设备选择菜单选择 Arch Linux archiso x86_64 UEFI CD。
archiso 启动后会自动以 root 登陆,并且出现 shell 提示符。使用以下命令检查 archiso 是否以 Secure Boot 模式启动:
$ od -An -t u1 /sys/firmware/efi/efivars/SecureBoot-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX如果以 Secure Boot 模式启动,命令会返回以 1 结尾的五个整数,例如:
6  0  0  0  1XXXX 部分因不同机器而各不相同。可以使用 tab 补全来获取帮助或者列出 EFI 变量。
此外,另一种方法是执行:
$ bootctl statusLinux 内核中有关 UEFI 的配置选项UEFI 系统所要求的 Linux 内核配置选项设置如下:
CONFIG_RELOCATABLE=yCONFIG_EFI=yCONFIG_EFI_STUB=yCONFIG_FB_EFI=yCONFIG_FRAMEBUFFER_CONSOLE=yUEFI运行时变量支持 (efivarfs 文件系统 - /sys/firmware/efi/efivars). 该选项十分重要,因为它是使用如 /usr/bin/efibootmgr 的工具来操作UEFI运行时变量所必须的。下面的选项已添加进了版本3.10及以上的内核中。
CONFIG_EFIVAR_FS=yUEFI运行时变量支持 (老式 efivars sysfs 接口 - /sys/firmware/efi/vars). 应当禁用该选项来防止同时启用 efivarfs 和 sysfs-efivars 所导致的潜在问题。
CONFIG_EFI_VARS=nGUID 分区表 GPT 配置选项 - UEFI 支持的强制需求
CONFIG_EFI_PARTITION=y 注意: 以上所有选项是通过 UEFI 启动 Linux 所必须的,并已在官方源的 Archlinux 内核中启用。
来自于 https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt .
UEFI 变量UEFI 定义了变量,通过它们操作系统可以与固件进行交互。 UEFI 引导变量只在早期系统启动时由引导加载程序和操作系统使用。UEFI运行时变量允许操作系统来管理固件的某些设置(如UEFI引导管理器)或 UEFI Secure Boot 协议的密钥。你可通过下面的命令来获得变量列表:
$ efivar -lLinux 内核中的 UEFI 变量支持Linux 内核通过两个接口来把 EFI 变量数据传递给用户空间:
  • 老式 sysfs-efivars 接口 (CONFIG_EFI_VARS) - 由位于 /sys/firmware/efi/vars 的内核模块 efivars 生成  - 每个变量数据最大大小为1024B, 不支持 UEFI Secure Boot 变量(由于大小限制),并再也不被上游推荐使用。现仍被上游支持但在 Arch 官方内核中已完全禁用
  • 新式 efivarfs (EFI VARiable FileSystem) 接口 (CONFIG_EFIVAR_FS) - 由位于 /sys/firmware/efi/efivars 的 efivarfs 内核模块挂载使用 - 老式 sysfs-efivars 接口的替代品,不限制变量数据大小,支持 UEFI Secure Boot 变量并被上游推荐使用。在3.8版的内核中引入,新的 efivarfs 模块在3.10版内核中从旧的 efivars 内核模块中分离。
efivarfs 和 sysfs-efivars 的不一致同时启用老式的 sysfs-efivars 和新式的 efivarfs 会导致数据不一致的问题(更多信息见 https://lkml.org/lkml/2013/4/16/473 )。由于(自从 core/linux-3.11core/linux-lts-3.10)老式的 sysfs-efivars 在 Arch 官方内核中已完全禁用,新式的 efivarfs 将会被继续地启用/支持下去。自2013年10月1日起,在官方源中所有与 UEFI 变量相关的工具都支持 efivarfs.
注意: 作为禁用老式 sysfs-efivars 的副作用,efi_pstore 在 Arch 官方内核中也被禁用,因为 EFI pstore 功能依赖老式 sysfs-efivars 支持。
如果在使用任何用户空间工具访问 EFI VAR 数据前你同时开启了这两者,请禁用其中之一并重新开启另一个接口 (为了刷新数据和防止不一致) :
禁用 sysfs-efivars 并刷新 efivarfs:
# modprobe -r efivars# umount /sys/firmware/efi/efivars# modprobe -r efivarfs# modprobe efivarfs# mount -t efivarfs efivarfs /sys/firmware/efi/efivars禁用 efivarfs 并刷新 sysfs-efivars:
# umount /sys/firmware/efi/efivars# modprobe -r efivarfs# modprobe -r efivars# modprobe efivarsUEFI 变量正常工作的需求
  • EFI 运行时服务支持应出现在内核中 (CONFIG_EFI=y, 运行 zgrep CONFIG_EFI /proc/config.gz 来核对是否共存 ).
  • 内核处理器的位数/架构应该与EFI处理器的位数/架构相符。
  • 内核应以 EFI 模式(通过 EFISTUBEFI 引导器,而不是 BIOS/CSM 或者同为 BIOS/CSM 的"bootcamp")启动。
  • EFI 运行时服务在内核命令行中不应被禁用,即不应使用内核参数 noefi.
  • efivarfs 文件系统应被挂载在 /sys/firmware/efi/efivars, 否则参考下文 #挂载 efivarfs 部分。
  • efivar 应无错列出 (选项 -l) EFI 变量。参见输出内容 #Sample_List_of_UEFI_Variables.
如果 EFI 变量支持在满足以上条件后仍有问题,尝试以下解决方案:
  • 如果所有的用户空间工具都不能修改 EFI 变量数据,检查 /sys/firmware/efi/efivars/dump-* 文件是否存在。如果是,删掉,重启,再试一次。
  • 如果上面的步骤没有解决问题,尝试以内核参数 efi_no_storage_paranoia 启动以禁用内核 EFI 变量存储空间来防止对 EFI 变量的写入/修改。
注意: efi_no_storage_paranoia 仅当需要时使用且不应留下作为正常启动参数。该内核参数的效果是关闭正在实施的安全保护,来避免 NVRAM 过满时机器故障。
挂载 efivarfs如果 efivarfs 启动时并没有被 systemd 自动挂载在 /sys/firmware/efi/efivars, 你需要手动挂载来把 EFI 变量支持传递给像 efibootmgr 等的用户空间工具:
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars 注意: 这个命令即使要运行的话也要在 chroot 之外(之前)和之内都运行一次。
如下通过 /etc/fstab 来自动挂载 efivarfs 也是极好的:
/etc/fstabefivarfs    /sys/firmware/efi/efivars    efivarfs    defaults    0    0用户空间工具只有少量工具能够访问/修改 UEFI 变量,即
efibootmgr 注意:
  • 如果 efibootmgr 完全无效,你可以重启进入 UEFI Shell v2 使用 bcfg 命令来给引导器创建一个启动条目。
  • 如果你不能使用 efibootmgr, 某些 UEFI 固件允许用户用内建的启动时界面管理启动条目。例如,某些华硕机有 "Add New Boot Option" 选项,能让你选择本地 EFI 系统分区并手动进入 EFI 存根位置 (例如 \EFI\refind\refind_x64.efi).
  • 下面的命令用 refind-efi 引导器作为例子。

假设要启动的引导器文件是 /boot/efi/EFI/refind/refind_x64.efi, /boot/efi/EFI/refind/refind_x64.efi 可被分拆为 /boot/efi 和 /EFI/refind/refind_x64.efi, 其中 /boot/efi 是 EFI 系统分区的挂载点,假设是 /dev/sdXY (在这里 X 和 Y 只是真实值的占位符 - 例如:- 位于 /dev/sda1 , X==a Y==1).
为确定 EFI 系统分区的设备路径 (此例假设挂载点是 /boot/efi) (应为 /dev/sdXY 形式), 尝试:
# findmnt /boot/efiTARGET SOURCE  FSTYPE OPTIONS/boot/efi  /dev/sdXY  vfat         rw,flush,tz=UTC检查内核中的 UEFI 变量支持是否正常运行:
# efivar -l如果 efivar 无错列出变量,那么你可以开始了。如果不是,检查 #Requirements for UEFI Variables support to work properly 中的要求是否全部满足。
然后用 efibootmgr 如下创建启动条目:
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L "rEFInd" 注意: UEFI 使用反斜杠 \ 作为路径分隔符 (类似于 Windows 路径),但是官方 efibootmgr 包使用 -l 选项时也支持 Unix 风格的路径分隔符斜杠 / . Efibootmgr 解析路径之前内部会把 / 转换为 \ . 有关纳入此功能的 git 评论是 http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/commit/?id=f38f4aaad1dfa677918e417c9faa6e3286411378 .
在上面的命令中 /boot/efi/EFI/refind/refind_x64.efi 转译为 /boot/efi 和 /EFI/refind/refind_x64.efi , 进一步译为 /dev/sdX -> 分区 Y -> 文件 /EFI/refind/refind_x64.efi.
'label' 是出现在 UEFI 启动菜单的菜单条目名。用户可随便起名,这并不影响系统启动。更多内容见 efibootmgr GIT README .
FAT32 文件系统大小写不敏感因为它默认不使用 UTF-8 编码格式。这种情况下固件使用大写字母 'EFI' 而不是小写的 'efi', 因此 \EFI\refind\refindx64.efi 或 \efi\refind\refind_x64.efi 都没问题 (当文件系统采用 UTF-8 编码时就不同了).
EFI 系统分区EFI 系统分区(也称为 ESP 或者 EFISYS)是一个 FAT32 格式的物理分区 (在硬盘主分区表上,而不是 LVM 或软件 RAID 等等) ,从这里 UEFI 固件启动 UEFI 引导器和应用程序。
它与操作系统无关而是作为 EFI 固件要启动的引导器和应用程序的存储空间,是 UEFI 启动所必须。它的分区类型应该是 EFI 系统分区 (见 #GPT_partitioned_disks). 推荐 ESP 大小为 512 MiB 尽管大一点小一点都没问题 (见下面的注意)。更多信息见 Wikipedia:EFI System partition.
注意:
  • 推荐使用 GPT 和 UEFI 搭配因为有的 UEFI 固件不支持 UEFI-MBR 启动。
  • GNU Parted 中, boot 参数 (不要与 legacy_boot 参数搞混了) 在 MBR 和 GPT 盘上作用不同。在 MBR 硬盘上,它标识分区为活动分区。在 GPT 硬盘上,它把分区编码改为 EFI System Partition 类型。 Parted 没有在 MBR 上标识 ESP 的参数 (尽管可以通过 fdisk 完成)。
  • Microsoft 文献注解了 ESP 大小: 对高级格式化 (Advanced Format) 4K 本地驱动器 (每扇区4KB) 来说,由于 FAT32 文件格式的限制,最小为 260 MB。 FAT32 的最小分区大小可由扇区大小 (4KB) x 65527 = 算出 256 MB。高级格式化 512e 驱动器不受此限制影响,因为其虚拟扇区是 512B.  512 bytes x 65527 = 32 MB, 这比 100 MB 最小限制还要小。[1]
  • 为防止 EFISTUB, 内核以及 initramfs 文件应储存在 EFI 系统分区。精简起见,当以 EFISTUB 启动时你可以把 ESP 当做 /boot 分区而不是单独分一个 /boot 分区。

GPT 磁盘分区
  • fdisk/gdisk: 创建类型为 EFI System (EFI System (在 fdisk 中) 或 ef00 (在 gdisk 中)的分区。然后运行 mkfs.fat -F32 /dev/<THAT_PARTITION> 格式化为 FAT32 格式。
(或)
  • GNU Parted: 创建一个 FAT32 分区然后在 Parted  中为那个分区设置/激活 boot 参数 (不是 legacy_boot 参数).
注意: 如果你收到消息 WARNING: Not enough clusters for a 32 bit FAT!, 运行 mkfs.fat -s2 -F32 ... 或 -s1 以减小簇大小,否则 UEFI 无法读取分区。
MBR 磁盘分区
  • fdisk: 使用 fdisk 创建类型为 EFI System 的分区,然后运行 mkfs.fat -F32 /dev/<THAT_PARTITION> 格式化为 FAT32.
RAID 上的 ESP将 ESP 包含进 RAID1 组是可行的,但是会有数据污染的危险,创建 ESP 时请三思。 细节见 https://bbs.archlinux.org/viewtopic.php?pid=1398710#p1398710https://bbs.archlinux.org/viewtopic.php?pid=1390741#p1390741 .
UEFI ShellUEFI Shell 是固件的终端,可用于启动包括引导器的 UEFI 程序。除此之外, Shell也可用于采集固件和系统的各种信息,例如内存映射 (memmap), 修改启动管理器变量 (bcfg), 运行分区程序 (diskpart), 加载 UEFI 驱动,编辑文本文件 (edit), 十六进制编辑等等。
获取 UEFI Shell你可从 Intel 的 Tianocore UDK/EDK2 Sourceforge.net 工程下载以 BSD 许可证发布的 UEFI Shell.
Shell v2 在 UEFI 2.3+ 系统上表现最好,并比 Shell v1 优先推荐。Shell v1 应该在所有 UEFI 系统上有效并且与它们遵循的 UEFI 标准版本无关。更多信息见 ShellPkg这封邮件
启动 UEFI Shell部分基于华硕和 AMI Aptio x86_64 UEFI 固件的主板 (从 Sandy Bridge 起) 提供了一个叫做 "Launch EFI Shell from filesystem device" 的选项。对于这些主板,下载 x86_64 UEFI Shell ,复制进 EFI 系统分区,命名为 <EFI_SYSTEM_PARTITION>/shellx64.efi (大部分是 /boot/efi/shellx64.efi) .
Phoenix SecureCore Tiano UEFI 固件已内嵌 UEFI Shell, 可按 F6, F11 或 F12 键来启动。
注意: 如果你用以上方法不能启动 UEFI Shell, 创建一个 FAT32 格式的 USB 并把 Shell.efi 复制到 (USB)/efi/boot/bootx64.efi. 这个 USB 会出现在固件的启动菜单里。启动它就会启动到 UEFI Shell.
重要 UEFI Shell 命令UEFI Shell 命令通常支持 -b 选项,它在输出的每页末尾暂停。 map 能列出识别出的文件系统 (fs0, ...) 和存储设备 (blk0, ...). 运行 help -b 来列出所有可用命令。
更多信息见 http://software.intel.com/en-us/articles/efi-shells-and-scripting/
bcfgBCFG 命令用于修改 UEFI NVRAM 条目,它能让用户改变启动条目或驱动器选项。在"UEFI Shell Specification 2.0" PDF 文档的83页 (Section 5.3) 有详细描述。
注意:
  • 仅当 efibootmgr 无法创建启动条目时才推荐尝试 bcfg.
  • UEFI Shell v1 官方二进制文件不支持 bcfg 命令。你可以下载一个 modified UEFI Shell v2 二进制文件,它在 UEFI 2.3前的固件有效。

转储当前启动条目:
Shell> bcfg boot dump -v为 rEFInd (作为例子) 添加一个启动菜单条目,在启动菜单里是第4个 (从0开始计数) 选项:
Shell> bcfg boot add 3 fs0:\EFI\refind\refind_x64.efi "rEFInd"fs0: 映射到 EFI 系统分区,fs0:\EFI\refind\refind_x64.efi i是要启动的文件。
删除第4个启动选项:
Shell> bcfg boot rm 3把第3个启动选项移动到第0 (也就是说第1个是 UEFI 启动菜单的默认启动选项):
Shell> bcfg boot mv 3 0bcfg 帮助文档:
Shell> help bcfg -v -b或:
Shell> bcfg -? -v -beditEDIT 命令提供了类似于 nano 界面的基本编辑器,但是功能略少一点。它以 UTF-8 编码并且行尾结束符兼容 LF 和 CRLF.
本例中,编辑在固件 EFI 系统分区 (fs0: 中 rEFInd 的 refind.conf
Shell> fs0:FS0:\> cd \EFI\arch\refindFS0:\EFI\arch\refind\> edit refind.conf输入 Ctrl-E 以获得帮助。
UEFI Linux 硬件兼容性主要文章见 HCL/Firmwares/UEFI.
UEFI 可启动介质从 ISO 创建 UEFI 可启动 USB教程见 USB flash installation media#BIOS and UEFI Bootable USB.
从光学介质里移除 UEFI 启动支持 注意: 本部分提及的是给 CD/DVD only (光学介质)而不是 USB 闪存移除 UEFI 启动支持。
大部分32位 EFI Mac 机和部分64位 EFI Mac 机无法从 UEFI(X64)+BIOS 可启动 CD/DVD 启动。如果希望使用光学介质完成安装,可能首先需要移除 UEFI 启动支持。
  • 挂载官方安装介质并如前所述获取 archisolabel .
# mount -o loop input.iso /mnt/iso
  • 然后重建 ISO,  使用 libisoburn 的 xorriso 移除 UEFI 光学介质启动支持。确认已设置正确的 archisolabel, 例如 "ARCH_201411"或类似的:
$ xorriso -as mkisofs -iso-level 3 \    -full-iso9660-filenames\    -volid "archisolabel" \    -appid "Arch Linux CD" \    -publisher "Arch Linux <https://www.archlinux.org>" \    -preparer "prepared by $USER" \    -eltorito-boot isolinux/isolinux.bin \    -eltorito-catalog isolinux/boot.cat \    -no-emul-boot -boot-load-size 4 -boot-info-table \    -isohybrid-mbr "/mnt/iso/isolinux/isohdpfx.bin" \    -output output.iso /mnt/iso/
  • output.iso 烧制进光学介质并照常完成安装。
原生无支持情况下测试 UEFI虚拟机使用 OVMFOVMF 是一个 tianocore 工程用以对虚拟机支持 UEFI. OVMF 为 QEMU 包含了一个样本 UEFI 固件。
你可从 AUR ovmf-svnAUR[broken link: archived in aur-mirror] 建立 OVMF (有 Secure Boot 支持), 运行如下命令:
$ qemu-system-x86_64 -enable-kvm -net none -m 1024 -pflash /usr/share/ovmf/x86_64/bios.bin仅 BIOS 的系统使用 DUETDUET 是一个 tianocore 工程用以从 BIOS 启动到完整 UEFI 环境,这与 BIOS 启动操作系统相似。在 http://www.insanelymac.com/forum/topic/186440-linux-and-windows-uefi-boot-using-tianocore-duet-firmware/ 里有广泛讨论。预建立的 DUET 镜像可从其中一个源 https://gitorious.org/tianocore_uefi_duet_builds 下载。教程见 https://gitorious.org/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/blobs/raw/master/Migle_BootDuet_INSTALL.txt.
也可考虑 http://sourceforge.net/projects/cloverefiboot/ , 它提供的 DUET 镜像可能包含了一些系统的专用补丁,并且比 gitorious 源更新得更频繁。
疑难问题Windows 7 无法以 UEFI 模式启动如果你把 Windows 安装进了另一个 GPT 格式的硬盘并且你电脑里还有一个 MBR 格式的硬盘,那么可能 UEFI 固件启动了 CSM 支持(为从 MBR 分区启动的支持) 因而 Windows 无法启动。为解决问题,把 MBR 硬盘的内容合并到 GPT 硬盘中并禁用 MBR 硬盘使用的 SATA 接口或者直接把硬盘拔下来。
有此类问题的主板:
Gigabyte Z77X-UD3H rev. 1.1 (UEFI 版本 F19e)
- 固件启动选项 "UEFI Only" 并不妨碍以 CSM 启动。
Windows 改变了启动次序某些主板上 (ASRock Z77 Extreme4 确认有此问题) Windows 8 每次启动时改变了 NVRAM 中的启动次序。解决方式是让 Windows Boot Manager 加载另一引导器而不是启动 Windows.Windows 下以管理员模式执行如下命令:
bcdedit /set {bootmgr} path \EFI\boot_app_dir\boot_app.efiUSB 介质卡在黑屏界面
  • 如果不是 KMS 的问题,那么可能是 EFISTUB 启动的 bug (更多信息见 [2] and [3] ). 官方 ISO (Archiso) 和 Archboot iso 都用 EFISTUB (通过 Gummiboot 启动管理器) 来让内核以 UEFI 模式启动。这种情况下参考下文来使用 GRUB 作为 USB 的引导器。
使用 GRUB
  • link 所述创建 USB 闪存安装介质。之后按照以下步骤来使用 GRUB 替代 Gummiboot.
  • 把 <USB>/EFI/boot/loader.efi 备份为 <USB>/EFI/boot/gummiboot.efi
  • 按如下内容创建 <USB>/EFI/boot/grub.cfg (替换 ARCH_YYYYMM 为 USB 盘,例如 ARCH_201404):
grub.cfg for Official ISOinsmod part_gptinsmod part_msdosinsmod fatinsmod efi_gopinsmod efi_ugainsmod video_bochsinsmod video_cirrusinsmod fontif loadfont "${prefix}/fonts/unicode.pf2" ; then    insmod gfxterm    set gfxmode="1024x768x32;auto"    terminal_input console    terminal_output gfxtermfimenuentry "Arch Linux archiso x86_64" {    set gfxpayload=keep    search --no-floppy --set=root --label ARCH_YYYYMM    linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap    initrd /arch/boot/x86_64/archiso.img}menuentry "UEFI Shell x86_64 v2" {    search --no-floppy --set=root --label ARCH_YYYYMM    chainloader /EFI/shellx64_v2.efi}    menuentry "UEFI Shell x86_64 v1" {    search --no-floppy --set=root --label ARCH_YYYYMM    chainloader /EFI/shellx64_v1.efi}grub.cfg for Archboot ISOinsmod part_gptinsmod part_msdosinsmod fatinsmod efi_gopinsmod efi_ugainsmod video_bochsinsmod video_cirrusinsmod fontif loadfont "${prefix}/fonts/unicode.pf2" ; then    insmod gfxterm    set gfxmode="1024x768x32;auto"    terminal_input console    terminal_output gfxtermfimenuentry "Arch Linux x86_64 Archboot" {    set gfxpayload=keep    search --no-floppy --set=root --file /boot/vmlinuz_x86_64    linux /boot/vmlinuz_x86_64 cgroup_disable=memory loglevel=7 add_efi_memmap    initrd /boot/initramfs_x86_64.img}menuentry "UEFI Shell x86_64 v2" {    search --no-floppy --set=root --file /boot/vmlinuz_x86_64    chainloader /EFI/tools/shellx64_v2.efi}    menuentry "UEFI Shell x86_64 v1" {    search --no-floppy --set=root --file /boot/vmlinuz_x86_64    chainloader /EFI/tools/shellx64_v1.efi}另见
转载:https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#.E9.9D.9E_Mac_.E6.9C.BA
回复

使用道具 举报

发表于 2016-6-30 12:36:47 | 显示全部楼层
参考参考,我认为很好,大家说说
回复

使用道具 举报

发表于 2016-11-30 15:21:33 | 显示全部楼层
看看吧,大家都会支持你
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持本站|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2019-4-22 22:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表