我有双启动系统,但在使用 Windows 7 启动系统时,我错误地删除了交换分区。现在显示没有这样的分区 grub rescue。
我在 Ubuntu 中安装了非常重要的软件,我不想再次重新安装。有什么方法可以解决这个问题吗?
答案1
您不需要互联网连接,只需要 CD/Flash 中的 Ubuntu。
从实时 CD/Flash 启动并执行以下操作:
- 从实时 Ubuntu 启动后,首先打开 gparted 并检查您是否将 Ubuntu 安装在哪个分区中,例如:
/dev/sdaX
,其中 X 是您安装的分区(在 dash 中输入 gparted 并打开它)。
例如,我考虑您在上安装了 Ubuntu
/dev/sda4
,然后我会解释步骤。
然后通过以下命令挂载
/dev/sda4
(您可以用在 gparted 应用程序中看到的分区替换它):sudo mount /dev/sda4 /mnt for i in /sys /proc /run /dev;do sudo mount --bind "$i" "/mnt$i";done
现在我们
/dev/sda4
在这里安装安装了 Ubuntu 的。只需运行以下命令即可切换到root
Ubuntu 分区的目录:sudo chroot /mnt
并运行以下命令将 grub 安装到主分区
/dev/sda
:grub-install /dev/sda
更新 grub 并退出并重新启动系统。它会修复。
update-grub exit sudo reboot
我希望这有帮助。
答案2
您也可以尝试使用此[工具](https://help.ubuntu.com/community/Boot-Repair。我自己没试过:)
你需要网络连接来解决这个问题
因此,您必须小心谨慎地执行此操作,因为您可能会完全破坏您的操作系统。现在您刚刚破坏了 grup(当然删除了交换,但您可以稍后创建它)。首先从实时 USB 启动并打开终端。然后使用fdisk
来定位安装操作系统的分区。
sudo fdisk -l
你会得到类似的东西
/dev/sda1 Linux
/dev/sda2 Extended
现在我们需要一个带有 Linux 的。在我的例子中是/dec/sda1
。我们现在就安装它。
sudo mkdir /mnt/temp
sudo mount /dev/sda1 /mnt/temp
现在你必须扮演chroot修改根分区。
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt/temp$i; done
sudo cp /etc/resolv.conf /mnt/temp/etc/resolv.conf
sudo chroot /mnt/temp
然后你必须删除蛴螬组件并重新安装。
apt-get purge grub grub-pc grub-common
apt-get update && apt-get install grub grub-pc grub-common
update-grub
exit
然后你可以重启系统,一切就好了。现在是时候再次创建交换了(如果你想的话),你可以检查这里。否则我可以进一步帮助您。
答案3
最简单的方法是从实时 cd/dvd 或 USB 启动。然后您可以启动 gparted 程序。在那里您可以重新创建之前删除的交换分区。然后您只需安装 grub 定制程序并重写 grub。https://launchpad.net/~danielrichter2007/+archive/ubuntu/grub-customizer
Grub 定制器将自动识别您的操作系统。您可以更改自动启动的顺序。您可以设置延迟时间(以秒为单位),如果您愿意,可以完全自定义启动菜单。然后您只需重新启动系统,一切都应该正常工作。
玩得开心,享受!