虚拟机里的Ubuntu18.4启动时进入到grub rescue救援模式(无法正常进入到系统),ls查看后只有一个硬盘和分区,且无法找到/boot/grub文件【已解决】

现象描述启动ubuntu的时候就发现进入到了grub rescue救援模式,无法进入到系统,网上百度了一大堆,都是说在救援模式下ls查看每个分区,直到找出哪个分区下面有/boot/grub,然后再用命令把启动引导分区设置成这个,千篇一律的答案,他们那些适用于启动分区设置错误,但是/boot/grub和vmlinuz等文件本身存在的情况。但是我的情况是:只有一个硬盘和分区,并且压根没有找到grub文件

问题原因:当我在ubuntu里使用yocto为imx8plus构建系统的时候,由于构建过程中会产生大量的中间文件,导致磁盘占用快满了,于是我在windows端的磁盘管理下为ubuntu所在的物理磁盘E拓展了80G的磁盘空间,然后在ubuntu的命令行用fdisk给虚拟机扩容了。中间少了一步,导致分区错乱,文件系统受到损坏

正确的步骤应该是
1.先在windos端为ubuntu所在的磁盘驱动器拓展卷(win+x->磁盘管理->找到ubuntu安装位置所在磁盘->右键->拓展卷)

2.打开虚拟机,在虚拟机设置里为它拓展,如下图:

3.在ubuntu系统里用fdisk或gparted等工具进行扩展(我下面是已经拓展过的,这里只是说明一下操作方法):

上面略微有点啰嗦了,接下来进入正题,看如何解决

解决方案

第一步:你要知道你的ubuntu是哪个版本的,像我的是18.04,那么就需要准备ubuntu18.04的原生iso镜像,如果没有可以到网上自行下载

第二步:在虚拟机设置里设置成使用ISO映像文件,浏览选中刚才第一部提到的ubuntu18.4镜像,点击确定

第三步:打开虚拟机,启动ubuntu,在启动时迅速按下F2,会出现下列界面。把boot设置下面的四个选项中的优先级调整一下,这是用来配置启动顺序的地方。设备的排列顺序决定了计算机启动时检查启动设备的顺序这里我们把CD-ROM drive挪到最上面(shift + 加号 代表上移 减号可以下移),按下F10保存,选择yes确定保存,然后重启,这时候会先尝试从CD-ROM驱动器启动

第四步:重启完之后会会正常进入ubuntu的系统里,进去之后会出现一个引导界面,会有两个选项,一个是try ubuntu,另一个是install ubuntu,这里我们选择try ubuntu,稍等一下会进入到ubuntu系统桌面,这里打开终端,先修复下磁盘sudo fsck -f /dev/sda1

如果显示有error就多执行几次,直到出现/dev/sdxxx:clean

第五步:为/dec/sda1创建grub启动文件

sudo mount /dev/sda1 /mnt

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

sudo chroot /mnt

grub-install /dev/sda

update-grub

Exit

for i in /dev/pts /proc /sys /run; do sudo umount /mnt$i; done

sudo umount -l /mnt

sudo reboot

如果sudo umount /mnt的时候显示umount :/mnt is busy可以换成sudo umount /mnt,或者lsof | grep “/mnt”查看哪些进程在占用它,找到它的进程号杀死它

图片示例:

这些步骤将修复或重新安装GRUB到您的硬盘(/dev/sda),并确保虚拟机可以正常启动Ubuntu系统

第六步:重启,这时就可以正常进入到ubuntu系统里了,并且以前系统里的数据都还在,没有被破坏。如果想把启动引导方式改成物理磁盘驱动器,那就按照上面第二步的示例自行改回来即可,看你个人选择。至此,大功告成。我的方法也不一定适合你们,如果跟我的情况不一样,还是要多自己研究,把这个原理搞清楚。

我这里只是提供了一个方法论,用下面的比喻会更容易理解一些:

通过Live CD/USB进入了系统,相当于拿到了系统的“备用钥匙”,然后进入了系统,就像进入了一座房子一样。我们重新安装了GRUB引导程序,相当于重新贴了一张门牌,告诉系统应该从哪里启动。然后我们更新了一下配置,就像是给系统一份新的地图,让它知道应该怎么启动。

最后,我们收拾了一下,卸载了我们用来进入系统的工具,然后重启了系统。这样系统就能够正常启动了,就像以前一样!

总的来说,我们的做法就是通过一个备用的方式进入你的系统,修复了一些东西,然后再正常地启动。这样你的Ubuntu系统又回来了,一切都像以前一样

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 您好,如果您长按Shift键无法进入GRUB引导菜单,您可以尝试以下方法: 1. 确认您的键盘是否正常工作,可以尝试在其他应用程序中测试Shift键是否正常。 2. 尝试使用Esc键代替Shift键,有时候Esc键也可以进入GRUB引导菜单。 3. 如果以上方法都无效,您可以尝试修改GRUB配置文件,将GRUB_TIMEOUT_STYLE的值改为menu,这样每次启动时都会显示GRUB菜单,您就可以选择进入GRUB引导菜单了。 希望以上方法能够帮助您解决问题。 ### 回答2: 首先,我们需要明确一点,什么是GrubGrub(Grand Unified Bootloader)是一个开源的启动管理程序,负责在计算机启动时加载操作系统。 如果您的Ubuntu系统长按Shift键无法进入Grub引导菜单,可能是由于以下原因之一: 1. 您的计算机启动太快,按下Shift键的时间太短。尝试将Shift键按住更长时间,或者多次按Shift键,直到进入Grub引导菜单。 2. 您的Ubuntu系统可能已经被配置为直接启动默认操作系统,而不是展示Grub菜单。如果您想让系统展示Grub菜单,可以打开终端,输入sudo gedit /etc/default/grub打开grub配置文件找到GRUB_HIDDEN_TIMEOUT和GRUB_HIDDEN_TIMEOUT_QUIET这两行代码,将它们的值都改为0,然后保存修改退出。 3. 另一个可能的原因是您的Grub bootloader可能已经损坏或者需要重新安装。这时候,您需要使用Ubuntu启动盘或者Live USB重新安装Grub。这可以通过进入Ubuntu启动盘或Live USB后,在终端中输入sudo fdisk -l找到您的Ubuntu分区,然后使用命令sudo mount /dev/sdXY /mnt将分区挂载到/mnt目录下,最后使用命令sudo grub-install --root-directory=/mnt /dev/sdX重新安装Grub。 总之,长按Shift键无法进入Grub引导菜单可能是由于多种原因导致的,需要根据具体情况进行排查和解决。 ### 回答3: Ubuntu系统启动时需要进入GRUB菜单可以通过长按Shift键来实现,如果遇到无法进入的问题需要先检查系统设置和硬件设备。以下是针对该问题的可能解决方案: 1、检查Shift键是否正常工作。首先排除Shift键本身出现问题的可能性。可以用其他键盘尝试或者在操作系统中测试Shift键是否正常。 2、检查GRUB是否已经安装。Ubuntu系统默认安装GRUB,但是有时候由于磁盘分区或者其他原因,可能会导致GRUB没有被正确安装。可以通过进入终端执行“sudo grub-install /dev/sda”命令来重新安装GRUB。 3、安装grub-customizer。这是一个第三方工具,可以轻松地对GRUB进行配置和管理,包括设置自动启动项等。可以通过以下命令安装: sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer 安装后,打开grub-customizer设置自动启动项;在菜单栏中选择编辑,然后选择“默认项”就可以设置。 4、重新安装Ubuntu. 如果以上方法不能解决问题,建议重新安装Ubuntu系统。可以选择重新分区,然后再重新安装系统,这样通常就可以解决GRUB菜单无法启动的问题。 总结来说,无法进入GRUB菜单可能是键盘问题、GRUB未被正确安装、自动启动项设置不正确等原因,需要通过一系列排查来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值