TL; DR 我如何从头开始创建一个EFI系统分区?我如何在创建后将EFI固件放在上面?
长版
我有一台东芝T430笔记本电脑。我收到的时候已经安装了Windows 7(但我想最初它是以Windows 8出厂的)。我在上面安装了Ubuntu,但是删除了磁盘上的一些分区,这样我就把Windows抹掉了,只剩下Ubuntu了。在被删除的分区中,有EFI系统分区。我发现Ubuntu现在以传统模式启动(而不是UEFI)。我试图按照[这个指南将我的Ubuntu安装从传统模式转换到UEFI](https://help.ubuntu.com/community/UEFI)。问题是--由于没有EFI分区,当我在BIOS中选择使用UEFI启动时,我无法启动。这不仅适用于硬盘,也适用于usb和DVD。我认为这是合乎逻辑的--它期望有一个EFI分区,由于它找不到,它就不能继续启动,无论是从硬盘还是DVD。那么我怎样才能重新创建EFI分区呢?
上面的指南说。
创建EFI分区。
如果你是在Ubuntu安装程序中手动为你的磁盘分区 在Ubuntu安装程序中,你需要确保你有一个EFI 分区的设置。
如果你的磁盘已经包含一个EFI分区(例如,如果你的计算机 已经预装了Windows8),它也可以用于Ubuntu。请不要 格式化它。强烈建议每张磁盘只能有一个EFI分区。 磁盘。
2.EFI分区可以通过最新版本的GParted创建。 创建(12.04磁盘中包含的Gparted版本是可以的),并且必须有 以下属性。
1.挂载点。/boot/efi(注:在使用手动分区时,不需要设置这个挂载点。 使用手动分区时,Ubuntu安装程序会自动检测到它。 自动)。
2.大小:最小100Mib。建议200MIB。
3.类型。FAT32
4.其他:需要一个"引导"标志。
我在创建这个分区时遇到一些麻烦。
/etc/fstab
中设置挂载点,因为这是一张活光盘,而且fstab与我预期的正常启动相比有很大不同。总之,我只是不知道该设置什么值。我通过Live DVD再次启动,然后选择安装Ubuntu。然后我创建了一个具有上述标准的分区--挂载点、200MB、FAT32、启动标志。
然而,我仍然有这个问题,我想这是因为在这个分区上没有EFI固件,它只是一个空分区,适合有EFI固件。
因此,我如何创建一个EFI分区,其中有EFI软件,以便笔记本电脑能够再次以UEFI模式启动?
解决方法谢谢你们两位的回答。我所做的是通过格式化整个磁盘来从头安装Windows 8.1,然后在旁边安装(这次是正确的)Ubuntu。这些是我现在的分区。
磁盘分区]1 !
在Win 8的安装过程中,只要我删除所有现有的分区,让Windows重新格式化磁盘,它就会自动创建,除了主安装分区,还有三个额外的分区,即1、2、3。现在,在我有了适当的ESP之后,我可以在UEFI模式下从硬盘或DVD启动。
你说ESP默认不存储任何信息,但我猜当一个操作系统安装时,它会在那里放置一些信息。所以我想我的情况是这样的。我把它抹掉了,即使我重新创建了它,它也没有任何信息,因为ESP的创建是在安装了操作系统之后进行的。我失去了Ubuntu的安装(没什么大不了的,反正是新安装的),但我想为了保存它,我应该遵循grawity'的建议。虽然没有时间,但很高兴现在一切都好了。
首先,你不会在GParted中设置挂载点;那是通过mount
命令手动(和临时)或通过编辑/etc/fstab
永久完成的。因此,你对这个问题的关注是错误的。
第二,EFI系统分区(ESP)只是一个具有特定类型代码(即C12A7328-F81F-11D2-BA4B-00A0C93EC93B在GPT磁盘上)的FAT分区。注意,"/etc/fstab "中的挂载点并不是ESP定义的一部分;在Linux中,它只是通过挂载在"/boot/efi "来访问ESP,通常是通过"/etc/fstab "条目。你如何设置类型代码在不同的程序中有所不同。
gdisk
中,你将类型代码设置为EF00。(gdisk
使用两个字节的类型代码,扩展到磁盘上的真实类型代码;"EF00"只是"C12A7328-F81F-11D2-BA4B-00A0C93EC93B"的一个记忆法)。parted
中,你可以设置"启动标志",但是请注意,这只对GPT磁盘有效;你不能用这些程序在MBR磁盘上设置ESP类型代码。(这通常不是什么大问题,因为基于EFI的计算机通常从GPT磁盘启动)。/etc/fstab
。fdisk
中,你通过数字来设置分区类型(1代表GPT磁盘上的"EFI系统"或MBR磁盘上的0xEF),或者在GPT磁盘上输入完整的类型代码。第三,ESP不保存固件--根据定义,固件存储在主板的芯片中。因此,你想在ESP上安装EFI固件的努力是痴人说梦。(这条规则有两个例外。首先,你可以在ESP上存储一个固件文件,以便更新你电脑上的固件。不过,这只是一个临时存放区。第二,DUET或Clover启动加载器,EFI是作为一个普通程序加载的,通常是从ESP上加载的。不过,这些工具是BIOS启动加载器,可以使只用BIOS的计算机像EFI机器一样启动;它们**通常不用于具有EFI固件的计算机,而你声称你的计算机具有EFI固件。从技术上讲,DUET和Clover都不是固件;它们是BIOS启动加载器,与EFI做同样的工作)。
最后,我可以想到一些可能导致你的问题的原因,但如果没有进一步的信息,我需要写半本书来涵盖所有这些原因。我建议你在计算机上运行[Boot Info Script](http://sourceforge.net/projects/bootinfoscript/)。这将产生一个名为`RESULTS.txt`的文件。把它贴到[一个贴宾网站](http://pastebin.com/),并把你的文件的URL贴回来。这将提供关于你的配置的硬数据,这将大大减少你的问题的可能原因的范围。
EFI分区不保留firmware(存储在主板的芯片中);它保留已安装的操作系统的boot loaders。它基本上是EFI的替代方案,即把启动加载器放在磁盘的第0个扇区,就像BIOS PC的情况那样。
这意味着,一旦你有了这样一个分区,当你安装操作系统时,它就会自动被填满。(但很可能安装光盘本身也必须以EFI模式启动,否则它不会费力地设置UEFI启动......事实上,设置的某些部分甚至不能从BIOS模式完成)。
如果你已经安装了Ubuntu,你将需要。
1.安装UEFI版本的GRUB;我想它在 "grub-efi-amd64-signed "软件包中。
grub-install --target=x86_64-efi-signed
(对于没有签名的`grub-efi-amd64`版本,是`x86_64-efi`。)
2.确保GRUB在EFI系统分区中以`EFI\Boot\bootx64.efi'的形式安装。(我在这里使用EFI路径语法;如果你在Linux上把分区挂在
/boot,它将是
/boot/EFI/Boot/bootx64.efi`。)
如果没有,手动复制`grubx64.efi`到那个位置。
这是必要的,因为`grub-install`不能将自己添加到EFI启动菜单中,除非系统已经以EFI模式启动。(EFI变量在BIOS中无法访问。)因此,启动GRUB的唯一方法是把它放在后备启动加载器的位置。
3.3. 重新启动。尝试在固件的启动菜单中选择某种EFI模式(EFI固件有自己的启动菜单,甚至在GRUB之前)。
4.4. 检查dmesg | grep "efi:"
是否显示任何东西,以确认你处于EFI模式。
用记事本创建两个文件,并将它们保存在你的USB Windows安装驱动器上。
另存为。CreatePartitions-UEFI.txt
select disk 0
clean
convert gpt
rem == 1. System Partition =====================
create partition efi size=210
format fs=fat32 quick label=”SYSTEM”
active
rem == 2. Microsoft Reserved (MSR) partition ======
create partition msr size=16
rem == 3. Windows partition ===================
create partition primary size=xxxxxx
format fs=ntfs quick label=”Windows”
assign letter=”W”
rem == 4. Recovery tools partition ================
create partition primary size=460
format fs=ntfs quick label=”Recovery”
assign letter=:R”
list volume
用记事本创建另一个文本文件。
SaveAs: diskpart-UEFI.txt
diskpart /s D:\CreatePartitions-UEFI.txt
REM where D:/ is the usb drive. This command runs the text file to install the partitions.
如果你使用的是MBR,那么命令将是:转换MBR。
要得到Windows分区的大小,将你的HD大小乘以1024,一个100G的硬盘乘以1024等于102400减去210(efi大小)减去16(msr大小)减去460(保留大小)等于你将放在Windows分区大小中的大小。(XXXXXX)
你可以从终端(命令提示符)改变分区的大小 cd /d D: > notepad CreatePartitions-UEFI.txt
当你在U盘中时,用记事本打开diskpart-UEFI.txt并保持开放或写下命令,这样你就不会犯错了。
一旦你按照自己的喜好改变了分区的大小,关闭它,然后cd /d x:/Sources然后运行diskpart /s D:\CreatePartitions-URFI.txt。
如果满意的话,最后一条命令中的list volume会向你显示分区。
退出 > 关闭计算机 > 重新启动 > 安装