我在计算机上安装了Windows,然后安装了Ubuntu。但是,现在我无法启动Windows安装。
我该怎么做才能解决此问题?
我在计算机上安装了Windows,然后安装了Ubuntu。但是,现在我无法启动Windows安装。
我该怎么做才能解决此问题?
Answers:
我将做一些假设:
如果这些假设中的任何一个都不成立,那么以下建议将无济于事(尽管它也不会造成任何伤害):
/boot/grub/custom.cfg
(通过运行sudo -H gedit /boot/grub/custom.cfg
)创建一个包含以下内容的文件:
#This entry should work for any version of Windows installed for UEFI booting
menuentry "Windows (UEFI)" {
search --set=root --file /EFI/Microsoft/Boot/bootmgfw.efi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
(将以上内容复制并粘贴到出现的Gedit窗口中,然后保存并退出Gedit)
重新启动,您将看到标题为“ Windows(UEFI)”的条目,如果选择它,则Windows应该启动。如果那不起作用,请运行启动信息脚本(http://bootinfoscript.sourceforge.net/)并发布RESULTS.txt
它所产生的信息,以便我获得必要的信息,以为您提供适当的建议。
如果计算机在完全不显示GRUB菜单的情况下自动引导到Ubuntu,则有时可以在引导时按制造商的BIOS / UEFI键,而在UEFI或BIOS模式下,从固件菜单中选择所需的操作系统。使用的通用键为Esc,Delete,F1,F2,F10,F11或F12。在平板电脑上,常用按钮为“提高音量”或“降低音量”。在启动过程中,通常会出现一个屏幕,其中包含密钥。如果没有,或者屏幕显示速度太快,请查看制造商的网站。*
如果在引导时未出现GRUB菜单时此方法不起作用,则在引导期间使用BIOS通过BIOS / UEFI启动屏幕后立即快速按住该Shift键,将弹出GNU GRUB菜单屏幕。使用UEFI按下(也许几次)Esc键,可以转到GNU GRUB菜单屏幕。有时,制造商的启动屏幕是Windows引导程序的一部分,因此,在打开计算机电源时,它会直接进入GNU GRUB菜单屏幕,然后Shift无需按。
如果在启动时未显示GRUB菜单时此方法不起作用,请尝试以下答案:
在Ubuntu中,打开终端并输入:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install -y boot-repair
sudo boot-repair
打开启动修复应用程序,然后选择高级选项 -> 其他选项选项卡-> 修复Windows启动文件。引导标志应放置在已安装Ubuntu的同一分区上。可以从Ubuntu内置的“磁盘”应用程序中识别安装了Ubuntu的分区。
如果由于灰色而无法选择“ 修复Windows启动文件”选项,请参考此答案。
Rescatux是免费的可引导实时CD / USB,可以修复GRUB和Windows引导程序。Rescatux具有图形界面,其中包含操作系统救援任务菜单。如果您的硬盘具有MBR分区格式,则可以选择“ 还原Windows MBR(BETA)”选项来修复Windows引导加载程序。如果您的计算机装有UEFI固件,则可以在UEFI选项的引导选项中进行选择。
启动选项:
GRUB选项:
Windows选项:
密码选项:
插入USB闪存驱动器,并检查是否已使用GParted应用程序在闪存驱动器上启用了启动标志。卸载USB闪存驱动器。打开GParted,然后从驱动器菜单列表中选择USB闪存驱动器。从GParted菜单中选择:分区 -> 管理标志 ->检查启动。
确认要安装Rescatux live USB的设备确实是您的闪存驱动器,这一点非常重要,这样您就不会覆盖任何可能导致操作系统无法启动的系统或个人文件。在Ubuntu中,您可以使用“ 磁盘”应用程序找到闪存驱动器的设备名称。
卸载USB分区设备。假设USB分区设备是/dev/sdc1
sudo umount /dev/sdc1 # replace sdc1 with the partition name of your USB drive
将目录更改为使用cd
下载的Rescatux iso文件所在的目录的路径。
将Rescatux iso文件写入USB闪存驱动器。在以下命令中,用rescatux_0.xxxx.iso
您下载的Rescatux iso文件的名称替换。
sudo dd if=rescatux_0.xxxx.iso of=/dev/sdc # this command also works in Windows Subsystem for Linux
sudo sync
我还能够使用内置的Startup Disk Creator应用程序制作Rescatux live USB。
无法撤消对Windows的分区更改。您将必须重新安装或恢复Windows,然后重新安装Ubuntu。
首先,尝试运行Boot-Repair(info),看看是否有帮助。要运行此命令:
从Ubuntu Live DVD或USB启动。
在终端中一次键入这些行。
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
在Dash中搜索启动修复并启动它。
要使用引导修复来修复计算机,只需单击“推荐修复”按钮。如果成功,您就完成了。
如果启动修复不起作用,请使用Windows恢复CD(从您的PC制造商那里索要一张)运行修复程序。
从恢复CD引导。您应该看到这个。
打开命令提示符应用程序,然后键入bootrec /fixmbr
。
(图片来自HowtoGeek)
关闭窗口,然后选择“启动修复”。等待该过程完成。通常大约需要30分钟至2个小时。
如果Windows成功修复,则操作完成。如果不是,则必须使用Windows安装CD重新安装Windows。
如果没有Windows安装CD,则可以引导Ubuntu live DVD / USB并安装具有与Windows Bootloader等效功能的Bootloader。
sudo apt-get update
sudo apt-get install lilo
sudo lilo -M /dev/sda mbr
Lilo安装后会向您发出警告,但是您可以忽略它,因为lilo用作Windows样式的引导加载程序时可以正常工作。
接下来,在安装或恢复Windows之后,您将必须删除Ubuntu分区。识别它们并使用Windows中的磁盘管理实用程序将其删除。
之后,以相同的方式重新安装Ubuntu。
如果操作系统以不同的模式安装,则无法同时启动Windows和Ubuntu。如果Windows以BIOS模式安装,建议以BIOS模式安装Ubuntu,但如果以UEFI模式安装,则对Ubuntu执行相同操作。找出您正在运行UEFI还是BIOS的最简单方法是查找名为的文件夹/sys/firmware/efi
。如果您的系统使用BIOS,则该文件夹将丢失。
如果已在具有GPT分区功能的同一驱动器上以旧模式安装Ubuntu,则可以使用Boot Repair的Advanced选项卸载grub-pc并安装grub-efi-amd64。这样可以将Ubuntu安装从BIOS引导转换为UEFI引导,该固件与最新制造的预装Windows笔记本电脑具有相同的固件。
将Ubuntu转换为UEFI模式
如果看到“ 单独的/ boot / efi分区”选项,请在其左侧的复选框中打勾,然后单击右下角的“ 应用”按钮。
设置您的BIOS,使其在UEFI模式下引导硬盘驱动器。调整此设置的方式取决于计算机的特定型号,但通常此设置位于BIOS / UEFI设置实用程序的“ 启动”选项卡下的启动优先级设置中。
有关将Ubuntu转换为UEFI模式的更多信息,请查看https://help.ubuntu.com/community/UEFI中有关将Ubuntu转换为UEFI模式的部分。
grub引导加载程序也可以从相反的方向从UEFI转换为BIOS。Linux可以在BIOS模式下从GPT磁盘引导正常。看到这个答案:从EFI转换为BIOS引导
引导修复将解决此问题。
首先打开一个新的终端,然后键入:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair
另请参阅此工具的参考和操作方法
安装Ubuntu时未检测到已经安装的Windows操作系统。os-prober
从默认的Ubuntu系统信息库中检测出系统上其他可用的OS,并将结果输出到终端中。如果os-prober
不起作用,请检查命令sudo fdisk -l
是否能够找到Windows分区。
如果找到Windows分区,则键入sudo update-grub
。sudo update-grub
更新GRUB引导加载程序并更正不正确的条目。此命令解决了我的问题,如下所示。
sudo update-grub && sudo reboot
更新GRUB引导程序并重新引导。
我在Windows 10上安装了Ubuntu。现在,在GRUB引导菜单中看不到启动Windows的选项。
注意:分区仍然存在。
确保以UEFI模式启动。使用sudo efibootmgr -t nn
利用你的EFI的菜单。您可以选择Windows Boot Manager或ubuntu(GRUB)。
注意:每次更新BOOTMGR时,Windows都会在其自己的EFI系统分区上删除GRUB安装。
方法1
1. 在启动时按“ esc ”(在您的计算机上可能是不同的方式)进入Windows恢复模式。
2.点击“ 疑难解答 ”
3.点击“ 高级选项 ”
4.选择“ 命令提示符 ”
5.键入以下命令:
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
6.现在重新启动计算机
好的,如果这对您有用,请尝试
方法2。
1.使用Rufus制作Ubuntu Live USB驱动器并启动到Ubuntu。
2.启动终端类型
sudo fdisk -l
3.记下linux安装的根目录。
例如:(/ dev / sda8)在我的情况下。
和您的引导分区(以*
符号表示)。
例如:(/ dev / sda6)在我的情况下。
4.现在安装您的根分区以进行一些更改和绑定。在下面,用根分区替换“ / dev / sda8 ”。
sudo mount /dev/sda8 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
5,现在将根目录从USB驱动器更改为hardrive的根目录
sudo chroot /mnt
6.现在将grub安装到您的引导部分,并用*
符号“ / dev / sda6 ”替换为引导部分。
grub-install /dev/sda6
7.Now类型。
exit
8.卸载先前安装的分区。
sudo unmount /mnt/dev
sudo unmount /mnt/proc
sudo unmount /mnt/sys
sudo unmount /mnt
9.卸下笔式驱动器,然后重新启动计算机。
下次在双启动窗口和Linux时参考此答案 双启动Windows和linux
bootrec /scanos
之前先运行命令也有帮助bootrec /rebuildbcd
。该/scanos
选项扫描所有磁盘以查找与Windows兼容的安装。它还显示当前不在BCD存储中的条目。此屏幕快照显示所有4个命令一起在步骤5:i.stack.imgur.com/qrnMl.png
Shift在启动过程中按住不放,将为您带来Grub菜单。或者,如果您只希望菜单始终显示,请编辑/etc/default/grub
文件
sudo gedit /etc/default/grub
在行的开头插入“#” GRUB_HIDDEN_TIMEOUT=0
。
现在保存然后运行:
sudo update-grub
这样可以使Grub菜单出现在每次引导中。
最好看看这个GRUB Wiki https://help.ubuntu.com/community/Grub2
如果使用Bitlocker,则可能在安装Ubuntu之前就对分区进行了一些更改(例如为Ubuntu安装释放未分配的空间),因为GRUB无法处理启动Windows时出现的安全提示,因此可能会出现此问题。要求您提供位锁恢复密钥。
在与Windows 7一起安装Ubuntu 16.04.02之后,我几乎遇到了相同的问题。Ubuntu可以很好地启动,但是从GRUB选择Windows 7加载程序后,屏幕将显示一些奇怪的规则彩色偏斜线模式,并停留在那里直到处理器。风扇将打开并变热,因此我决定关闭计算机,以免造成损坏。
拯救来自使用Hiren's Boot CD并使用其中的主菜单中的Boot Windows 7选项,这使我可以在提示符下输入bitlocker恢复密钥,输入密钥,在Windows会话中挂起和恢复bitlocker,并使用双启动系统,如预期的那样。
某些安全的引导计算机似乎无法从grub引导Windows。一种解决方法是为每种类型的引导提供不同的EFI文件集,将第二组用于Ubuntu的文件放在USB记忆棒上,然后将EFI文件保留在Windows的硬盘上。
您的硬盘上已经有一组有效的Ubuntu EFI文件,因此请拿一个(小)USB记忆棒(空,因为它会丢失所有数据),在其上放一个GPT分区表,并为它创建250M分区EFI文件。将硬盘的EFI文件复制到存储棒。它们将出现在/boot/efi
目录下的目录中EFI
。
取得EFI目录及其所有内容,并将其放在USB分区上。我建议编辑的摇杆版本,EFI/ubuntu/grub.cfg
以将菜单项“ Ubuntu”的名称更改为“ USB上的Ubuntu”,或使您可以明显看到要使用的文件集的名称。
现在,尝试从USB引导,看看是否得到更改后的菜单项,并且该菜单项有效。当USB启动工作时,您可以简单地转到/boot/efi/EFI/Boot
,它应该是硬盘的EFI分区,并且应包含启动文件的Ubuntu版本的副本(可能使用不同的名称),该副本也应位于中/boot/efi/EFI/ubuntu
。
使用md5sum确认您具有中所有文件的副本
/boot/efi/EFI/Boot
,因为您将要删除它们!将文件复制并重命名为/boot/efi/EFI/Microsoft/bootxmgfw.efi
,/boot/efi/EFI/Boot/bootx64.efi
然后您应该可以再次从硬盘启动Windows了-移开摇杆并尝试Windows启动。
更新内核并在硬盘上生成新的grub.cfg(未使用,因为硬盘仅在Windows上引导),您必须将其自己复制到USB记忆棒的EFI/ubuntu/grub.cfg
。
希望到某个时候,grub无法在您的计算机上引导Windows的问题将得到解决,并且您可以简单地将硬盘的EFI/Boot
文件替换为棍子上的文件EFI/Boot
。
只要确保您拥有要删除的任何内容的副本,即可在必要时进行替换。这种技术对我来说在东芝上很有效。
确保Windows 10安装分区仍然存在,然后根据以下答案进行操作:
Windows 10的默认安装至少需要4个分区:
- sda1(恢复)
- sda2(对于以EFI模式启动的计算机,EFI系统分区(ESP)通常安装在
/boot/efi
。)- sda3(MSR)
- sda4(Windows操作系统,通常为“ C”)
如果
/boot/efi
分区或MSR
分区在Ubuntu安装过程中已损坏或删除,则可能无法在grub中看到Windows。在Ubuntu中尝试以下命令以显示所有可用分区:sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
它应该让您了解系统发生了什么,并允许您检查所有分区是否仍然存在。您可以尝试使用Windows安装DVD / USB修复Windows。
您可以尝试安装Grub Customizer应用程序,然后查看
列表中是否有Windows :sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer
然后,您可以启动Grub Customizer并更改可引导的操作系统。
这是正确安装外观的屏幕截图:
首先尝试这个来源:
插入Windows安装DVD / USB并从中启动。选择您的语言,然后单击下一步。当系统提示您立即安装时,请向左看,然后单击“ 修复计算机”。等待,将弹出一个新窗口,其中包含PC中安装的操作系统。单击Windows 7/8/10,然后单击下一步。在下一个窗口中,单击“ 命令提示符”。当命令提示符出现时,键入以下内容:
bootrec /fixboot
按下Enter并输入:
bootrec /fixmbr
再按Enter一次,然后关闭该命令提示符窗口,然后重新启动PC。别忘了bootrec
和之间的空格/
。
之后,您将不再具有在启动时启动的操作系统之间进行选择的选项。您将必须修理grub。您可以使用Ubuntu live DVD / USB来实现。简单的方法是在修复Windows引导程序后,格式化Ubuntu分区并重新安装Ubuntu。要在修复Windows引导程序后修复grub,请尝试此操作。
要修复g:
从Ubuntu live DVD / USB引导。
打开终端并运行sudo fdisk -l
以查看Ubuntu的安装位置。
在哪里找到安装Ubuntu的分区号运行。sudo mount /dev/sdaX /mnt
X
跑 sudo grub-install --root-directory=/mnt /dev/sda
要安装grub:
运行sudo update-grub
以更新grub,如果此命令不起作用,请在重新启动后运行它。
使用重启sudo reboot
。
注意: 对我来说,第5步中的命令无效,因此我重新启动了计算机,并且在重新启动直接引导到Ubuntu的计算机之后,因此我以root用户身份登录并运行了以下命令:
update-grub
那解决了问题。
首先我们将带回Windows MBR,然后我们将重新安装grub并带回Linux
修复Windows MBR(可以使用解决方案1或解决方案2都可以)引导Linux,并确保您具有正常的Internet连接,然后在终端上键入以下内容。
1.解决方案
sudo apt-get install syslinux
如果已安装软件包,请使用以下命令编写MBR:
sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda
2.解决方案
sudo apt-get install mbr
如果安装了软件包,请使用以下命令编写MBR。
sudo install-mbr -i n -p D -t 0 /dev/sda
两者共同
如果要将MBR安装到其他驱动器,请更换sda。不要把sda1
,sda2
或sda3
。只要把它放在sda
硬盘上即可。
接下来我们需要安装grub,运行boot-repair将修复此问题并重新安装grub.Reboot都可以
您尝试过的所有选项似乎都适用于Windows 8的mbr模式,但是您使用的是UEFI,因此您应该修复UEFI分区。当我的Windows Bootloader损坏时,我尝试了以下命令。
bcdboot c:\windows /s f: /f ALL
此处c:\ windows是Windows(c :)分区上Windows文件夹的位置。
/ s是一个选项,允许在UEFI系统分区上安装UEFI引导加载程序文件,该文件是fat32格式的,在我的情况下是(/ dev / sda4),因此f:
(f:是欧盟成员的信)
执行此命令后,安装将成功/失败
这应该在UEFI分区中重新安装Windows 8启动代码。
从修复磁盘启动时,我曾尝试过此命令,然后选择“高级选项”,然后进行命令行修复。
您可以通过以下方法创建恢复磁盘:进入控制面板,然后选择备份和恢复->创建恢复磁盘/ usb,或者您可以从某人那里借用它。
PS。如果尚未尝试,则可以尝试使用grub菜单中显示的所有选项,尤其是refind,该选项会自动检测所有UEFI OS。您也可以尝试使用grub菜单中的所有Windows条目来检查其中任何一个是否起作用。然后,您可以在系统启动时从BIOS菜单将uefi模式切换为BIOS,然后检查那里显示的选项以及它们中的任何一个是否起作用。
跟着这些步骤:
通过按Ctrl+ Alt+ T或Terminal
在Dash中搜索来打开终端。
在终端中输入以下命令:
sudo -H gedit /etc/default/grub
(这将在中打开grub配置文件gedit
。)
编辑文件并按以下方式更改以下选项(在以下任一行之前删除注释#)并保存文件:
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=10
在终端的新实例中运行以下命令:
sudo update-grub
重新启动计算机,如果正确划分了系统,现在应该可以启动Windows。
以我为例,我进行了Windows 7的全新安装,在SSD上留下了一些未分配的空间,并且在后续的Mint 18.3安装中使用默认的“ Alongside”选项在grub引导菜单中未使Windows出现。
解决方案很简单:在Mint中运行以下命令,并将Windows 7与Memtest btw一起添加到grub菜单中。
sudo update-grub