Answers:
每当您安装引导扇区,将其升级到新版本或使用,或较旧的工具时bootrec /fixmbr
,Windows都会覆盖引导扇区。通常,先安装Windows,然后再安装Linux。引导扇区将保持不变,直到您执行上述操作之一为止。(也许还有其他方法可以写入MBR。)但是,如果丢失了GRUB,可以轻松恢复它:bootrec /fixboot
fdisk /mbr
sudo
以下命令。fdisk -l
mount /dev/sda1 /mnt
grub-install --root-directory=/mnt/ /dev/sda
shutdown -r now
update-grub
您也可以安装100%Unix,Linux或BSD,并且只要计算机足够强大,就可以在虚拟机中运行Windows。
另外:计算机的BIOS可能具有保护启动扇区的选项。
我想我会使用原始GRUB设置,并且不会与Bootloader混淆。
如果您使用任何形式的grub,那么您会迷惑引导加载程序。GRUB代表“大型统一引导程序”。并且有两个版本-grub v1和grub v2。所有现代linux系统都会自动使用grub2。如果安装任何Linux系统,则grub是默认的引导程序,除非您特别选择LILO,否则我不建议这样做。
我个人有一个带有xp和Wheezy的双启动系统。我通过禁用“ Windows Restore”选项来防止XP覆盖grub。
在禁用还原选项之前,由于Windows引导加载程序不断覆盖grub,因此我必须每周至少修复一次grub。
我正在修复通过USB端口在外部硬盘驱动器上安装Windows 8的问题。我希望这一切顺利,并且不会干扰我的mbr。
这是我使用的一种解决方法,它无需干预即可用于Windows更新:将EFI / Microsoft重命名为EFI / Microsomething,将grub.cfg中的Windows引导路径替换为EFI / Microsomething / bootmfgw.efi,如下所示:
menuentry "Microsoft Windows UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root <PROVIDE YOUR EFI DRIVE UUID>
chainloader /EFI/Microsomething/Boot/bootmgfw.efi
}
我在网上(unix.stackexchange.com)上找到的解决方案涉及停用Windows启动管理器。进入Linux(如果可以的话,可以是原始安装,也可以是实时CD / DVD)并运行以下命令:
efibootmgr
请注意,只有在UEFI模式下安装Linux时,此方法才有效,因此,如果Linux在Legacy模式下安装,则会出现错误。如果以UEFI模式安装它,则将获得一些信息和列表。您会在列表中的某处注意到Windows引导加载程序/管理器和Linux。Windows可能具有更高的优先级(引导顺序在列表上方)。
在某些(如果不是全部)条目旁边还有星号*,表示它们处于活动状态。
查看Windows条目旁边的4位引导号并运行
sudo efibootmgr --bootnum #### --inactive
这将停用Windows条目。另外,如果尚未激活,请确保现在停用的Windows具有更高的优先级:
sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%
其中####是Windows引导号。
如果立即重新启动,并且以最高优先级启用了Linux选项,则将引导至grub。
请注意,Windows似乎无法识别它已被停用,因此无法通过启动Windows或对其进行更新来还原它。
我参加了一个本地Linux installfest,在那里我们为有兴趣的人安装Linux,通常是作为Windows旁边的辅助操作系统。我还没有看到这种方法失败,并且我已经在几个发行版(主要是Ubuntu和Mint)和几个供应商(Asus,Acer,HP,Lenovo)上尝试过。