你需要:
备份你不想丢失的所有Windows文件和文件夹。只要你有足够的硬盘空间来创建新的Ubuntu分区,这个过程就不会干扰Windows文件。不过,"应该"是一个冒险的词。
Windows 8.1有一个"创建恢复盘"工具,但我发现它在恢复我的备份时毫无用处和功能。保留你不想丢失的文件最直接的方法就是打开Windows资源管理器,将它们复制到备份磁盘上。这需要很长时间,但是非常值得。
你需要以管理员身份登录才能进行此操作。
在安装GRUB之前,禁用快速启动非常重要,因为Ubuntu安装程序能否检测到Windows的存在取决于Windows在引导分区中的表示方式。如果快速启动被正确禁用,它应该被检测到。检测将在第4步中进行介绍。
Windows 8、8.1和10使用了一个新的高级功能,叫做快速启动。它会告诉固件加载一个特殊的引导程序,以非常快的速度将系统恢复到关机前的状态。很酷,对吧?但是,由于它会改变EFI系统的下一次启动选项,在安装GRUB时必须禁用此功能。具体操作如下:更详细的说明可以在这里找到。在安装GRUB期间,请确保禁用快速启动。安装完成后,您可以重新启用快速启动,似乎不会对Ubuntu/GRUB的启动造成任何问题。只需确保在安装过程中禁用它即可。
在禁用快速启动后,关闭计算机。由于禁用了快速启动,Windows将进行完全关机,并不会更改固件的EFI管理器中的下一次启动选项。(通俗来说:当下次打开时,Windows不会告诉您的HP系统启动其快速启动文件,而是使用EFI引导管理器的列表,正如它应该做的。GRUB将把自己放在这个列表的第一位。)无论您是从现有的Windows操作系统升级到Windows 10,还是将Windows 10和Ubuntu发行版安装到新的或重新分区的硬盘上,首先安装Ubuntu会更加容易。Ubuntu使用GRUB 2作为其引导加载程序,它以EFI引导加载程序应有的方式进行操作。而Windows 10使用Windows Boot Manager,它以...嗯,Windows的方式进行操作...如果您先安装Windows,那么在启动过程中要想不加载Windows Boot Manager并启动Ubuntu,您可能需要按住一个特殊键,因为Windows Boot Manager在添加到其引导加载程序列表时不会尊重GRUB。所以,相反地,先安装Ubuntu和GRUB,然后在GRUB中添加一个条目用于Windows Boot Manager。
步骤4.1:清理旧的EFI条目(可选)
请务必小心。删除错误的内容可能会导致严重问题。
在安装Ubuntu之前,我们想确保过去的操作系统安装的幽灵不会在将来困扰我们。在UEFI系统中,操作系统使用EFI(可扩展固件接口)文件告诉固件:“嘿,我存在。你可以在这里找到我。”当安装新的操作系统时,它会向EFI引导管理器的列表中添加一个条目,该条目有一个唯一的编号,并告诉EFI引导管理器其EFI文件所在的位置(Windows为常规启动注册多个不同的EFI文件,一个用于恢复启动,一个用于快速启动-根据固件和操作系统版本可能会有更多)。EFI引导管理器还会记录启动顺序:一个包含条目编号的列表,指定首先启动什么。如果你一直在使用EasyBCD;bcdedit;Windows的引导修复或恢复工具;Linux操作系统中的boot-repair;或者即使你更新了Windows或重新安装了它,都有很大可能你的EFI条目列表现在有一些重复项。至少对我来说是这样。在这里有重复项会拖慢启动过程,因为固件要筛选过时或错误的条目,直到找到一个有效的引导程序。它还可能导致引导循环,其中引导程序A将固件指向引导程序B,然后又指向回A,然后事情开始变得非常非常耗时...当我第一次使用这个工具时,在对EasyBCD和bcdedit进行调试后,我发现有超过一百个条目,其中大部分是重复的。
如果您的启动管理器列表不太混乱,或者您不确定哪些可以删除,哪些不能删除,可以直接跳到第4.2步骤。
清理不需要的条目,请使用efibootmgr -b <hex_number> -B
,其中hex_number
是引导项所列编号。因此,要删除上图中编号为Boot2001的USB Drive (UEFI)
条目,可以使用sudo efibootmgr -b 2001 -B
。您会注意到,我保留了一些重复项(所有3000+编号的条目)。您可以使用efibootmgr
以不同选项查看条目的其他属性,例如它们指向的文件路径。这些条目看起来像是重复的,但它们都指向我HP笔记本电脑用于更新其BIOS的不同文件。请小心删除内容。在此处替换事物可能非常困难或无法实现。您还可以使用efibootmgr更改显示的BootOrder。有关此有用工具的更多信息,请参阅手册页。
第4.2步:安装Ubuntu
在清理了EFI引导管理器条目之后(如果你选择这样做),现在是安装Ubuntu的时候了。使用你的Live CD/USB,从引导菜单中选择安装选项,或者在登录后从桌面启动它。在安装程序的第一页上选择你的选项。第二部分将会类似于这样:(我正在使用Xubuntu 14.04,所以你的安装程序可能有所不同,但选项应该相当类似。)
如果您的安装程序无法检测到您的Windows安装(就像我的一样),您需要选择“其他选项”。从那里,您将看到一个类似于您用来设置分区的gparted菜单的屏幕。只需选择您创建的分区,并通过选择一个分区并点击“更改”来将它们分配给正确的挂载点。
如果你正在从Windows 8或Windows 8.1升级,安装过程中不需要做任何特殊操作。完成(非常长的)安装后,继续进行第6步。
如果你要进行全新安装,安装程序会询问你想要安装Windows 10的位置。确保选择在第2步中创建的FAT32分区,而不是其他分区,否则该分区将被清除和格式化。由于Ubuntu已经安装,Windows 10应该尊重引导分区并不重新格式化它。清理EFI引导管理器列表中的垃圾条目还可以释放200 MB引导分区的空间,减少Windows混乱和清除整个分区的可能性。
在安装或升级到Windows 10后,您需要重新启动到Ubuntu以更新GRUB,使其包含Windows引导管理器在其列表中。在执行此操作之前,请再次禁用快速启动。这与第2步中的操作非常相似。控制面板和设置界面可能有些不同,但大多数选项仍然存在。
在你重新禁用快速启动之后,重新启动你的电脑。
如果Windows默认启动,你需要按住笔记本电脑上的特殊键进入系统固件菜单。在我的HP Touchsmart上,该键是Esc键。其他常见的键有F12、Delete、F10...你的电脑手册应该能帮助你找到正确的键。从固件菜单中,引导到GRUB。应该有一个选项叫做“选择引导设备”或类似的内容,Ubuntu或者GRUB应该会列在其中。如果没有列出来,寻找一个从EFI文件引导的选项,并浏览到/EFI/ubuntu/grubx64.efi或(如果启用了安全启动)EFI/ubuntu/shimx64.efi。实际的文件路径可能因你的设置和引导分区的设置而有所不同,但文件名应该是相同的。选择其中一个.efi文件将引导至GRUB,然后你可以引导至你的Ubuntu发行版。登录后,打开终端并输入sudo update-grub
。这将运行GRUB使用的os-prober脚本,编译grub.cfg文件,告诉grub的EFI文件要包括哪些条目,使用什么颜色等等。os-prober脚本应该能识别到Windows引导管理器,并自动添加到列表中。
可选地,您可以安装Grub Customizer来更改菜单项的顺序、更改GRUB菜单的行为、颜色和背景。您可以在终端中使用sudo apt-get install grub-customizer
进行安装,然后运行sudo grub-customizer
。
在与Windows操作系统共享的UEFI系统上使用GRUB时,请勿安装到MBR。一些教程将其列为使用Grub Customizer的“Install to MBR”选项的关键步骤。在大多数UEFI系统上,您不应该这样做。MBR(主引导记录)是为BIOS固件设计的,并且在某种程度上仍然被Windows引导加载程序使用。当GRUB已经在EFI条目列表中时,将GRUB添加到MBR可能会导致许多问题。 如果您需要确保GRUB是启动顺序列表中的第一个条目(即使您已经正确执行了所有操作,Windows仍然启动),请使用efibootmgr(参见步骤4.1)查看/编辑EFI管理器的启动顺序。
请参阅此处以获取有关Ubuntu、Secure Boot和传统引导的更多信息,以及关于UEFI和BIOS安装的一般区别的信息。
以管理员身份打开cmd并挂载EFI文件夹以访问它。逐个执行以下命令。下面我将挂载分配了字母g,请确保在您的电脑上分配一个未使用的字母。第一部分:访问Windows上的EFI文件夹
mountvol g: /s
g:
cd EFI\
cd Microsoft\Boot\
rename bootmgfw.efi bootmgfw_.efi
copy g:\EFI\ubuntu\grubx64.efi g:\EFI\Microsoft\Boot\
rename grubx64.efi bootmgfw.efi
c:
mountvol g: /d
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
。 - newandlost
update-grub
命令?默认情况下,Grub有一个名为os-prober
的脚本,用于搜索系统(或至少是当前磁盘)中的其他操作系统。我不知道它是否会搜索其他磁盘,但如果它确实这样做,我敢打赌那些其他磁盘需要先挂载。尝试运行update-grub
命令,然后如果还不起作用,请尝试挂载Windows引导磁盘并再次运行该命令。请随时告诉我最新情况! :) - Michael Hoffmann