如何重新获得Ubuntu?
#1 楼
当您安装Windows时,Windows会假定它是计算机上唯一的操作系统(OS),或者至少不考虑Linux。因此,它将GRUB替换为自己的引导加载程序。您要做的是用GRUB替换Windows引导加载程序。我已经看到了各种通过GRUB命令或类似方法来替换GRUB的说明,但是对我来说,最简单的方法是简单地将chroot
放入安装并运行update-grub
。 chroot
很棒,因为它允许您进行实际的安装,而不是尝试在此处和此处进行重定向。真的很干净。方法如下:
从实时CD或实时USB以“尝试Ubuntu”模式启动。
确定主分区的分区号。
sudo fdisk -l
,sudo blkid
或GParted(默认情况下应在实时会话中已安装)可以在这里为您提供帮助。我将在此答案中假设它是/dev/sda2
,但请确保您为系统使用正确的分区号!如果主分区位于LVM中,则设备将位于
/dev/mapper/
,最有可能是/dev/mapper/{volume}--{os}-root
,其中{volume}
是LVM卷名,而{os}
是操作系统。执行ls /dev/mapper
作为确切名称。安装分区:分区,重复步骤2和3.将这些分区分别安装到
/boot
,/var
和/usr
。例如,sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
用相应的分区号替换
/mnt/boot
,/mnt/var
和/mnt/usr
。绑定其他一些必需内容:
sudo mount /dev/sdXW /mnt/boot
sudo mount /dev/sdXY /mnt/var
sudo mount /dev/sdXZ /mnt/usr
如果Ubuntu以EFI模式安装(不确定,请参见此答案),请使用
sdXW
或GParted查找EFI分区。它将带有sdXY
的标签。挂载此分区,将sdXZ
替换为系统的实际分区号:for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
sudo fdisk -l | grep -i efi
进入Ubuntu安装:sudo mount /dev/sdXY /mnt/boot/efi
此时,您重新安装,而不是实时会话,并以root身份运行。更新grub:
sudo chroot /mnt
如果遇到错误,或者执行第7步不能解决问题,请转至第8步。(否则,它是可选的。 )
根据您的情况,您可能必须重新安装grub:
update-grub
如果安装了Ubuntu在EFI模式下,并且EFI分区UUID已更改,您可能需要在
EFI
中对其进行更新。比较一下:grub-install /dev/sda
update-grub # In order to find and add windows to grub menu.
如果当前EFI分区UUID(来自
sdXY
)不同于chroot
中的分区,请使用当前UUID更新/etc/fstab
。如果一切正常且没有错误,则说明一切就绪:
blkid | grep -i efi
grep -i efi /etc/fstab
此时,您应该能够正常启动。
如果无法正常启动,并且因为没有错误消息而没有执行第8步,请尝试执行第8步。分区是不够的,您必须实际将其安装(或重新安装)到主引导记录中,步骤8会这样做。帮助用户聊天的经验表明,即使没有显示错误消息,有时第8步也是必要的。
评论
评论不作进一步讨论;此对话已移至聊天。
–托马斯·沃德♦
17年4月7日在0:43
我仍然希望Windows成为我的主要引导操作系统。这仍然是正确的解决方法吗?如何选择要引导到的操作系统? F11?
–杰夫
17年7月28日在16:34
我从您的个人资料中看到@ScottSeverance,您居住在DFW。您是否考虑过开设课程或实时教程来使人们更深入地了解Linux?
–穆罕默德·约拉德(Mohammed Joraid)
17年9月26日在1:06
这些问题不会变老:D –不是,在处理EFI时,您可能需要安装grub-efi-amd64,如果使用安全启动,则需要使用grub-install --uefi-secure-boot 。在superuser.com/a/376471/197980中也有详细介绍
–拉斐尔
17年12月1日在1:12
此解决方案也适用于具有BIOS(即非UEFI)的计算机上的Windows 10。有关您拥有哪一个的问题,可以通过此技巧解答-thewindowsclub.com/check-if-uefi-or-bios。
– okolnost
18-6-27在4:20
#2 楼
Windows安装程序不关心系统中的其他操作系统。因此,它会在主引导记录上写入自己的代码。幸运的是,解决方案也很容易。您需要修理MBR。使用ubuntu的实时usb / cd进行以下
引导。
使用
boot-repair
修复问题。使用实时USB / cd引导后,在终端中运行以下命令:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
使用
Recomended Repair
。更多信息-https://help.ubuntu.com/community/引导修复
评论
您的意思是说它是由Microsoft员工故意设计的?同样,双重引导确实可以在Windows 7上使用,因此它与您的第一行“ Windows安装程序不在乎系统中的其他操作系统”相矛盾。
– Shagun Sodhani
2012年9月1日7:04
Windows一直困扰着它,这是一个非常普遍的问题,我必须自己解决。答案仍然很好,应该可以解决问题。
–达明
2012年9月1日于7:18
您先安装了Windows 7,然后安装了Linux。因此linux识别Windows,而不是Windows识别linux。尝试重新安装Windows7,您将明白我的意思。
– Web-E
2012年9月1日于7:26
加密分区(luk)时不要执行此操作,否则会搞砸。它还使用apt-get重新安装GRUB-不知道为什么这样做。
–孟田
2014年1月5日在16:14
引导修复很好地支持传统模式,也许您需要以传统模式启动实时cd / usb以及@fuzzyanalysis :)
– Web-E
2015年1月1日14:08
#3 楼
从活动的Ubuntu USB Pendrive或CD引导,并按照以下步骤在ubuntu上安装Boot-Repair:打开终端并运行以下命令
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
/>
完成安装后,如果使用Gnome,则可以从系统->管理->引导修复菜单启动它;如果使用Unity,则可以在破折号中搜索“引导修复”。然后按照以下屏幕截图:
方法1
单击高级选项
将选项卡更改为Grub Location选项卡,然后勾选图中显示的选项
按Apply(应用)并重新启动系统
方法2
选择推荐的Boot修复选项,如第一个屏幕截图
文档:
评论
Web-E已经给出了这个答案。也许改为改善那个?我对为什么它不起作用发表了评论。
– Dan Dascalescu
16年2月2日在16:59
在Windows 10更新特别令人讨厌的情况下,此方法为我工作,它覆盖了GRUB,然后破坏了自己的启动加载程序。遵循此过程即可恢复Windows和Linux。在我的情况下,它是Linux Mint 18.1,引导修复菜单看起来略有不同,但是一切正常。谢谢!
–TheBigH
17年5月28日在22:53
#4 楼
只需在Windows 7中安装easyBCD
并执行添加新条目> Linux / BSD>(选择)Grub2>(推送)添加条目
然后您就可以在Windows上选择Ubuntu 7引导程序转到Grub2(先前的引导程序)。
评论
仅凭这些说明并不能还原Grub Bootloader-当我尝试使用它们时,它们在Windows中添加了一个额外的启动选项,可以选择该选项,重新启动计算机,然后将我带到grub>提示符。因此,对于下一步该如何做,还需要采取进一步的措施。
–therobyouknow
2014年6月15日20:46
easyBCD允许我添加和删除在Windows Boot Loader和BIOS中都可以看到的引导选项,但是它们从未起作用,因为easyBCD依靠某种自动魔术来查找Linux分区...当我的Linux分区不起作用时,在单独的硬盘上。
–模糊分析
2014年12月30日在12:14
#5 楼
在基于EFI的系统上(例如Windows 8或更高版本附带的大多数系统),Windows有时会更新其引导加载程序或将其重置为默认引导加载程序。在重新安装操作系统或执行主要系统更新(例如,升级到最新的Windows版本)时,这尤其常见。请注意,Windows不太可能在基于EFI的计算机上实际擦除任何GRUB文件。引导Ubuntu所需的一切仍然存在。它只是被绕过。在这种情况下,完全重新安装GRUB是过大的,实际上,它会带来(新的)很小的机会,它会引起新的问题。因此,在这种情况下,无需重新安装GRUB ,建议将GRUB(或您喜欢的任何引导加载程序或引导管理器)重置为默认值。有几种方法可以做到这一点,包括:
EasyUEFI-调整引导顺序的最简单方法(如果系统直接引导到Windows)是使用EasyUEFI,它是用于管理EFI引导顺序的免费(对于基本版本)第三方GUI工具。这很容易解释-在启动选项列表中找到
ubuntu
条目,并将其移到列表顶部。下次重新启动时,应该会出现GRUB。 (如果使用GRUB以外的其他东西,则需要找到它的条目。)bcdedit
-Windows bcdedit
工具可用于将GRUB设置为默认启动顺序。在管理员命令提示符窗口中键入的命令bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
将执行此操作。但是,如果您的计算机在启用安全启动的情况下启动,则将需要bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
。实际上,即使不使用安全启动,后者命令通常也可以使用,因此我将首先使用该命令。请注意,有一个更高级的Windows Shell工具,它需要的语法与我介绍的语法略有不同,但是我不记得详细信息了。一次性启动到Ubuntu-大多数EFI提供内置的启动管理器,可以在系统启动过程的早期通过按功能键Esc或Enter进行访问。可能会在该启动管理器菜单中显示启动Ubuntu的
ubuntu
条目,使您能够启动到Ubuntu。另外,您可以引导至Ubuntu紧急介质,例如以“安装前尝试”模式引导的安装程序。无论哪种方式,您都可以使用efibootmgr
来调整启动顺序:键入
sudo efibootmgr
以查看启动项。输入BootOrder
并记下其ubuntu
号。键入
Boot####
更改引导顺序,使sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
成为Ubuntu的编号。尽管我已经指出Windows似乎有可能将自己重新添加到引导顺序的开头,但是之后的情况似乎并不是很重要。因此,您可能应该确保Windows在列表中,并且重新排序列表以使所有原始条目都在那里是最安全的,只是将xxxx
条目移到列表顶部。固件设置实用程序-一些EFI的设置实用程序使您可以调整引导顺序。一个EFI到另一个EFI的详细信息差异很大,因此我不再赘述,但是您可以在设置实用程序中寻找这样的选项。
这些过程还有其他变体,例如使用在EFI Shell中使用
ubuntu
,在macOS中使用bcfg
,使用我的rEFInd进行一次性启动,等等。不过,我将从EasyUEFI开始;这可能是最简单的解决方案。不过,有时Windows每次启动时都会坚持将其自身设置为默认值,并且报告表明bless
可能在处理该问题方面做得更好。请注意,以上所有内容均不适用于BIOS模式的安装;但是,随着大多数装有Windows 8或更高版本的计算机以EFI模式启动,BIOS模式的安装变得越来越少,因此,在许多情况下,最好以EFI方式处理该问题,而不是盲目地重新安装GRUB。
评论
通过EFI内置的启动管理器手动一次启动进入linux(在我的情况下为fedora28),这使我能够使用efibootmgr重新排序启动顺序(如Rod所描述的->谢谢!)。 win10更新。之后,GRUB-bootmanager会像更新前一样显示,因此我可以确认所提供的解决方案对我而言是有效的。我找不到EasyUEFI的基本版本,只能找到提供的非免费专业版的试用版。
–antiplex
18年8月22日在8:31
#6 楼
现在有一个更简单的解决方案:重新启动,然后输入计算机的BIOS选项(F2,有时甚至是F11)。
进入“启动”菜单,然后选择“启动设备优先级”。
检查Windows Boot Manager是否在主引导驱动器(通常是SATA HDD或IDE HDD…)上方。如果是这样,请将引导磁盘优先级移到Windows Boot Manager之上。
保存BIOS选项,然后退出(通常为F10)。
此功能已在Samsung Series 7 Chronos上进行了测试。笔记本电脑双重启动Windows 8和Ubuntu 13.10,禁用安全启动,启用UEFI和旧式启动。
评论
最终这对我来说是最干净的选择。还有一些关键操作,但是,嘿,行得通。我混合使用旧版和UEFI引导的设备。如果用户要启动的操作系统要比其他操作系统要多得多,那么从长远来看,这样做可能会更快(更安全)。
–模糊分析
2014年12月30日12:21
Windows 10自动更新后,这对我也可行。
–luis_js
18年3月19日在6:31
当我从Windows 10删除Ubuntu时,此解决方案对我有用。
– Vikas Gupta
18年3月31日在17:31
如何从Windows 10到Ubuntu?
– Hamendra Sunthwal
20-11-28在10:59
#7 楼
Boot-Repair为我工作。图形应用程序非常易于使用,无需使用命令行,只需单击一个按钮即可:)Ubuntu文档中介绍了所有可用的修复选项,其中包括一个单独的页面,说明如何启动引导修复(通过创建可引导磁盘或将其安装在现有的Ubuntu活动磁盘中)以及如何使用它。
只需引导Ubuntu活动CD,安装Boot-修复并运行。
评论
不过,如果有一种更简单的方法来进行Boot Repair,那就太好了。设置chroot修复比安装其他工具快得多。
–斯科特遣散费
2011-12-18在1:51
#8 楼
当GRUB损坏时,用户通常无法访问系统,因此必须从实时会话(实时CD或实时USB)执行修复。有很多可能的原因导致故障。 GRUB中断:Windows在MBR上编写,DRM阻止GRUB正确安装,安装程序错误,硬件更改...
按照Scott最初的建议更新GRUB通常是不够的,按照Marco的建议重新安装GRUB效率更高,但是仍然有各种情况需要其他调整(向内核添加选项,取消隐藏GRUB菜单,更改GRUB选项,选择正确的主机体系结构...)。
修复GRUB的其他困难是使用chroot,并且选择正确的分区/磁盘。
所有这些都已通过一个简单的图形工具轻松完成:引导修复。它
应集成在Ubuntu 12.04 CD中,以便于使用,但对于现在需要它的人,已经有一些发行版对其进行了集成:Ubuntu-Secured-Remix(集成了Boot-Repair的Ubuntu CD),Boot-Repair-Disk (CD在启动时运行Boot-Repair),...
希望有帮助。
#9 楼
Scott和Web-E给出的答案足够好,并且已经帮助了很多次。但是很多时候,由于与i386和amd64平台有关的问题或grub找不到efi
目录的问题,引导修复工具无法修复grub。解决了我的问题超过10次的原因是要手动清除旧的grub安装并安装新的grub。因此,请首先执行Scott回答中的前6个步骤,如果出现错误,则可以跳过第5步:
以“尝试Ubuntu”模式从实时CD或实时USB引导。
确定主分区的分区号。
sudo fdisk -l
,sudo blkid
或GParted(默认情况下应在实时会话中已安装)可以在这里为您提供帮助。我将在此答案中假设它为/dev/sda2
,但请确保您为系统使用正确的分区号!如果您的主分区位于LVM中,则设备将位于
/dev/mapper/
中,很可能位于/dev/mapper/{volume}--{os}-root
中,其中{volume}
是LVM卷的名称,而{os}
是操作系统。为确切的名称执行ls /dev/mapper
。安装分区: ,
/boot
或/var
分区,重复步骤2和3,将这些分区分别安装到/usr
,/mnt/boot
和/mnt/var
。例如,sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
用相应的分区号替换
/mnt/usr
,sdXW
和sdXY
。绑定其他一些必要的附件内容:
sudo mount /dev/sdXW /mnt/boot
sudo mount /dev/sdXY /mnt/var
sudo mount /dev/sdXZ /mnt/usr
如果Ubuntu以EFI模式安装([不确定时请参见此答案] [efi]),请使用
sdXZ
或GParted查找您的EFI分区。它将带有
sudo fdisk -l | grep -i efi
的标签。挂载此分区,用您的
系统的实际分区号替换
EFI
:for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
sdXY
到Ubuntu安装中:sudo mount /dev/sdXY /mnt/boot/efi
然后执行这些步骤:
配置所有挂起的程序包。
chroot
修复损坏的包装。
sudo dpkg --configure -a
删除当前的grub。
sudo apt install -fy
这可能会警告您设备将没有引导程序,并且下次可能无法引导。继续并接受它。
sudo apt purge -y grub*-common grub-common:i386 shim-signed
运行此命令后,它将要求您指出当前的
sudo apt install -y grub-pc
以安装引导程序。使用sdXY
命令查找当前操作系统的安装位置。它将被标记为sudo fdisk -l
。使用Tab键浏览该窗口,然后使用Space键选择一个选项。 如果一切正常,将正确安装grub。您也可以对
Linux
进行仔细检查。如果问题仍然存在,则可以阅读Arch的Wiki来真正了解grub可以解决许多其他问题。 (是的,对于Ubuntu也有帮助!)。
#10 楼
Scott Severance的答案是有效且详细的,但有一项解决方案不需要外部启动设备,因此无需识别并手动挂载所有导致chroot
的Ubuntu分区。在Windows 10中,您可以使用
Advanced Recovery
选择要启动的设备(分区?)。转到
Settings
并选择Update & Security
:转到
Recovery
:从
Advanced Startup
选择Restart Now
然后选择
Use a Device
,所有启动选项应为呈现给您。选择“ ubuntu”分区,然后您的PC应该从该分区启动。一旦启动到我通常的Ubuntu环境中,我就尝试只运行
grub-update
,但这没有任何改变。然后我发现我的
/boot/efi
分区是/dev/nvme0n1p1
并先运行sudo grub-install /dev/nvme0n1p1
然后运行sudo update-grub
。由于似乎有新的Windows 10策略覆盖了启动信息,因此,它已经多次还原了我的主启动记录。进行较小的更新。
评论
我很困惑。您提到了MBR和UEFI:安装中使用了哪一个?我使用UEFI是因为它否则可能不会显示Linux引导选项。但是,它甚至不需要触摸MBR。如果在您的Ubuntu分区而不是MBR上安装了Grub2,可能也只能工作。
– DanMan
20 Jan 1 '20 at 2:24
对不起这是我的错。我使用的是MBR,我的意思是一般启动信息。我已经从说明中删除了MBR。
–timbo
20 Mar 29 '20在22:16
#11 楼
Windows没有看到Linux格式化的分区。您需要使用liveCD上的gparted并创建带有引导标志的NTFS格式的主分区。如果新的主分区位于扩展分区之后,则有些问题,因为Windows并不总是重置分区表正确地。最好具有良好的备份和分区表的单独备份。
将分区表备份到文本文件并保存到外部设备。
sudo sfdisk -d /dev/sda > PTsda.txt
这仅适用于MBR(msdos)系统。如果您的Ubuntu安装在GPT分区驱动器中,则您只能以UEFI模式安装Windows或将驱动器转换回MBR(msdos)。
评论
与16.04或更高版本中的gpt分区驱动器一起使用的新版本sfdisk和fdisk也将使用上述命令备份gpt分区驱动器。 oldfred不记得他昨晚吃晚饭吃的东西,因此不确定他在2013年发布的内容。:)
–oldfred
17-4-7在13:40
嗨,弗雷德,当我昨晚做饭忘了晚餐时,真是一种祝福。我们删除了之前的评论。
–WinEunuuchs2Unix
17年4月7日在14:49
#12 楼
仅fsck
命令为我修复了grub-rescue
屏幕。使用Boot-Repair从Live-CD引导,然后打开Terminal
获取正确的设备:
sudo fdisk -l
需要找到引导设备,该引导设备在Boot类别下具有
*
,如下所示:Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 2000895 1998848 976M 82 Linux swap / Solaris
/dev/sda2 * 2000896 943716351 941715456 449G 83 Linux
使用以下磁盘:
sudo fsck /dev/sda2 -y
注意:/ dev / sda2是此示例中的引导设备。
完成后重新引导。完成。
#13 楼
我有一个不同的问题,可能是由boot-repair
擦拭我的/etc/grub.d/
模板引起的,在这里我的问题中对此进行了概述:Windows 10安装后,Ubuntu 18.04无法启动如@karels注释所指出,使用
/etc/grub.d
中的文件生成。我的目录仅包含/etc/grub.d/25_custom
,其中包含指向不存在的.efi图像的奇怪菜单项。看来我的/etc/grub.d
模板可能被boot-repair
压缩了。我通过以下方法解决了此问题:
用Live CD引导(对于使用相同的Ubuntu版本可能很重要)
sudo mount /dev/sdxx /mnt
sudo cp /etc/grub.d/* /mnt/etc/grub.d/
sudo update-grub
48小时疼痛后重新启动并放松
#14 楼
事实证明,grub也可以从Windows修复。从CMD运行以下命令(以管理员身份)为我带来了grub菜单。bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
评论
我认为这是一项常见的任务,我也有两个硬盘和Ubuntu + Windows。我希望您能以正确的方式进行维修。尝试遵循本教程。有任何问题,问我!相关(将GRUB安装到错误的驱动器的MBR时):安装ubuntu后的Grub抢救问题
是的,您可以,只需执行常规启动并使用Windows进行安装,然后它将在计算机启动时显示在Grub引导菜单中。
我知道这是一个旧线程,但是我通过将BIOS中的启动模式从UEFI更改为Legacy来解决了这个问题。
注意:可接受的答案是有关如何修复grub的一般说明。当安装程序错误地编写GRUB时(广泛存在),它也适用于多种情况。