U盘UEFI引导OS内核的小白教程

本文参考田宇老师的《一个UEFI引导程序的实现》一文,使用U盘进行UEFI的内核引导,在VMware虚拟机上运行内核。

一、工具

  1. DiskGenius磁盘格式化工具。
  2. TianoCore EDK2开发环境(编译UEFI程序),本文直接使用了编译后的BootLoader.efi文件。
  3. 资料链接,主要使用了引导文件Bootloader.efi和kernel文件夹编译后的内核文件kernel.bin。

二、准备工作

  • 首先使用磁盘管理软件DiskGenius清空U盘扇区里的所有数据,然后选择磁盘->转换分区表类型为GUID格式。
  • 点击新建分区,配置如下:
    在这里插入图片描述
    在这里插入图片描述
    如果上述步骤成功,在linux下使用ls /dev/sdb*可以看到如下结果:
[root@promote edk2]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2

三、文件拷贝

  • 随后将内核程序复制到U盘下,具体命令如下:
mount /dev/sdb1 /mnt/
mkdir /mnt/EFI/BOOT
cp Bootloader.efi /mnt/EFI/BOOT/BOOTx64.EFI
cp kernel.bin /mnt
sync
umount /mnt/
  • efi文件放在/mnt/EFI/BOOT/目录下,且命名为BOOTx64.EFI的目的是,UFEI可以开机时自动执行该efi并引导内核。

  • 同时内核必须放在根目录下,否则无法找到内核文件,下文中为efi的文件操作代码,可以看到kernel.bin为是在根目录下,也可改成绝对路径:

	status = RootFs->Open(RootFs,&FileHandle,(CHAR16*)L"kernel.bin",EFI_FILE_MODE_READ,0);

四、在VMware中创建和配置虚拟机运行环境

首先新建虚拟机:
版本选择其他64位
首先在虚拟机创建完毕后还要将虚拟机的引导固件改为UEFI。首先进入虚拟机设置->选项->高级->固件类型界面将固件类型改为UEFI:
引导模式选UEFI
如果创建的虚拟机环境中没有USB控制器,可进入虚拟机->硬件界面添加USB控制器,下图示意了USB控制器的添加过程。
安装USB控制器
当点击“添加硬件向导”对话框的“完成”按钮后,可对USB控制器的兼容性和连接状态进行设置。
USB配置
单击“打开电源时进入固件”按钮启动虚拟机后,虚拟机直接进入UEFI固件的引导管理界面,与BIOS类似。
管理界面
主要的操作是将“EFI Network”引导项移动至序列末尾,可避免由于网络检测带来的引导启动速度过慢,同时将将屏幕尺寸从80 * 25改为128 * 40。
引导顺序更改

显示尺寸修改
之后挂载U盘,重启虚拟机,可以看到内核程序引导成功,泪目。
内核部分
详细内容可参考田老师的书,图书链接

### 回答1: 请问您是想了解关于Android操作系统使用UEFI和x64架构的相关信息吗? Android操作系统最初是设计用于移动设备的,如智能手机和平板电脑等。然而,随着计算机技术的发展和用户的需求,Android逐渐扩展到可在台式机和笔记本电脑上运行的操作系统。 UEFI(统一的可扩展固件接口)是用于计算机系统引导和初始化的软件接口标准。相比于以前的BIOS(基本输入输出系统),UEFI提供了更多的功能和灵活性,能够更好地支持新一代硬件和操作系统。 x64是一种64位的处理器架构,也称为x86-64(或AMD64)。与传统的32位处理器相比,x64处理器能够处理更大的内存空间和更高的计算性能。 Android操作系统在部分新款笔记本电脑上使用UEFI和x64架构。这种配置能够提供更好的性能和兼容性,使Android在类似于Windows的桌面环境中更加流畅地运行。 同时,UEFI和x64架构也为用户提供更多选择。使用UEFI和x64架构,用户不仅可以使用Android本身的应用程序和生态系统,还可以在同一设备上运行Windows或其他基于UEFI的操作系统,扩展了设备的功能和用途。 总体而言,Android操作系统使用UEFI和x64架构带来了更好的性能和灵活性,使其适用于更多的设备类型和用户需求,同时也提供了更多的选择和可能性。 ### 回答2: Android操作系统不支持UEFI x64。UEFI(统一的可扩展固件接口)是一种新的固件接口规范,提供了一种更现代化、安全、稳定的启动环境。x64是指64位的处理器架构,可以支持更大的内存和更高的性能。 Android操作系统主要是为移动设备设计的,多数运行在基于ARM架构的处理器上。通常情况下,移动设备上使用的是ARM架构的32位处理器。因此,Android操作系统并不兼容x64架构。 同时,Android操作系统没有原生支持UEFI。相反,Android设备使用的是一种名为“引导加载程序”(bootloader)的启动程序,它负责初始化硬件并引导操作系统。 但是值得一提的是,在某些特殊场景下,一些厂商推出了运行Android系统的x86架构设备。这些设备可以兼容UEFI x64,并具备更高性能的特点。然而,这种情况还比较少见,大多数Android设备仍然是基于ARM架构的。 总结而言,Android操作系统不支持UEFI x64,它主要运行在基于ARM架构的32位处理器上,并使用引导加载程序进行启动。 ### 回答3: Android操作系统是一种基于Linux内核的开源操作系统,主要用于移动设备和平板电脑。UEFI是一种新一代的PC固件规范,取代了传统的BIOS。x64是指64位计算机架构。那么,Android OS UEFI x64是指运行在64位PC上的Android操作系统,采用了UEFI固件规范。相比传统的BIOSUEFI具有更多的功能和优势,包括更快的启动速度、更好的安全性、支持更大的硬盘容量等。 Android操作系统在移动设备上得到了广泛的应用,然而,随着移动设备与PC之间的界限越来越模糊,一些用户希望在PC上也能够运行Android。而采用UEFI固件的64位PC则提供了更好的兼容性和性能,更适合运行Android操作系统。 在Android OS UEFI x64环境中,用户可以利用PC的大屏幕、键盘和鼠标来更方便地操作Android应用和进行多任务处理。同时,Android OS UEFI x64还可以在PC上运行一些特定的Android应用,比如游戏和娱乐应用,提供更丰富的使用体验。 另外,Android OS UEFI x64也为开发人员提供了一个更广阔的平台,可以开发更强大和复杂的应用程序。通过利用PC强大的处理能力和存储容量,开发人员可以更方便地进行应用程序的测试和调试。 总之,Android OS UEFI x64是一个将Android操作系统和更先进硬件平台结合起来的解决方案,提供了更丰富的应用场景和开发的可能性,符合用户对于更好使用体验的需求。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值