这与更新后我为“GRUB 安装设备”选择什么几乎完全相同?- 或者可能不是,因此问,因为我通过 Vagrant 在 Virtualbox 机器上运行 Ubuntu。
我无法更新包,所以我跑了sudo apt-get update
那么sudo apt-get dist-upgrade
。它出现了以下消息:
The GRUB boot loader was previously installed to a disk that is no longer present, or whose unique identifier has changed for some reason. It is ?
? important to make sure that the installed GRUB core image stays in sync with GRUB modules and grub.cfg. Please check again to make sure that GRUB is ?
? written to …
Run Code Online (Sandbox Code Playgroud) 我有一个 Ubuntu 16.04 虚拟机(本地,无云),它是作为另一台计算机的克隆创建的。每次使用 升级 GRUB 软件包时apt upgrade
,我都会收到以下消息:1
GRUB 引导加载程序以前安装到不再存在的磁盘上,或者由于某种原因其唯一标识符已更改。确保安装的 GRUB 核心映像与 GRUB 模块和 grub.cfg 保持同步很重要。请再次检查以确保 GRUB 已写入适当的引导设备。
然后它要求选择一个安装设备。
我能够成功完成 GRUB 升级,但在下一次 GRUB 升级期间再次出现该消息,尽管磁盘在升级之间没有改变。
如何将 GRUB 配置“重置”为当前配置,使其不再询问?
我并不想沉默升级的消息为类似的问题(https://serverfault.com/questions/662624/how-to-avoid-grub-errors-after-runing-apt-get-upgrade-ubunut,我如何恰当-get -y dist-upgrade 没有 grub 配置提示?)建议。我想解决这个关于 GRUB 升级的特殊问题。
从命令最upvoted答案上ServerFault类似的问题无法在我的情况下应用,我没有提到的文件/boot/grub/menu.lst
和update-grub-legacy-ec2
我的机器上。
我尝试运行oldfred 建议的命令:
$ sudo debconf-show grub-pc
grub-pc/install_devices_failed_upgrade: true
grub-pc/mixed_legacy_and_grub2: true
grub-pc/install_devices_failed: false
grub-pc/hidden_timeout: false
grub2/update_nvram: true
grub-pc/timeout: 5
grub-pc/install_devices_empty: …
Run Code Online (Sandbox Code Playgroud) 在 sda1 上尝试了 sudo grub-install 但它抱怨是一个坏主意。
我不得不为与工作相关的问题安装 Windows,所以我使用了一个单独的磁盘(我在这台计算机上将它用于 ubuntu,但买了一个更大的磁盘,所以在上面安装了 ubuntu 并留下了旧的,以防我需要一个旧文件)。Windows 安装正常,但覆盖了 Grub。因此,如果我选择 Ubuntu 磁盘首先在 BIOS 中启动,我会看到一个空白屏幕。
我用谷歌搜索并遵循了这个建议:https : //help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
但是,当我进入本节时:
sudo grub-install --root-directory=/media/0d104aff-ec8c-44c8-b811-92b993823444 /dev/sda1
Run Code Online (Sandbox Code Playgroud)
我明白了:
Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea…
Run Code Online (Sandbox Code Playgroud)
--recheck 什么都不做。有任何想法吗?
由于搞乱了 GRUB 和 MBR,我格式化了我的笔记本电脑。
而且我不希望这种情况再次发生,所以...我应该安装 GRUB 的正确分区在哪里?
我的分区是
System Reserved (/dev/sda1 I beleive)
Windows 8 (/dev/sda2)
Run Code Online (Sandbox Code Playgroud)
下一个不是制作的,但应该是我在创建它们时列出的:
Ubuntu (/dev/sda3)
Pear OS 8 32-Bit (/dev/sda4)
Swap Partition (2GB /dev/sda5)
Run Code Online (Sandbox Code Playgroud)
现在,我应该把 GRUB 放在哪里?!
grub2 ×4
dual-boot ×2
10.10 ×1
boot ×1
partitioning ×1
updates ×1
upgrade ×1
vagrant ×1
virtualbox ×1