背景1
昨天晚上(20.4.1)忽然看到ubuntu20.04
的操作画面,界面更加体贴用户了,配备了一些很不错的特性,其中一个我很喜欢的就是黑夜模式
。所以就打算换到它了,但是我一直使用的Ubuntu版本是16.04,所以就先打算升级到18.04,再升级到20.04。接下来就开始了一系列更新操作,当时也没有将软件包全部更新到最新版,主要也是因为源的问题,一些包总是请求超时
,所以忽略警告开始升级。
升级下载过程完毕后,安装花费了很长时间,最后在安装界面上一直停留在那里不动了,已经接近凌晨,索性强制关机
,去睡觉了。
第二天早上起来接着开机,但是还是卡在那个地方。这个时候就决定放弃这次升级了,打算直接在官网下载ubuntu19.10
版本进行u盘安装
。将iso文件
烧录至u盘后,插入自己的电脑,进入bios界面
,选择从u盘启动
,接下来就是一系列配置过程,可进行默认设置
,或者自定义设置
,这里我选择了自定义设置,因为需要对那几个目录(/home等等)进行磁盘分配。
设置完毕之后,重新启动,这时出现了问题,开机画面变成了
GRUB loading
error =unknow filesystem
grub rescue>
这样的字符黑乎乎的界面,上网查找资料,使用了
grub rescue>set # 查看当前配置
grub rescue>ls # 查看当前磁盘及磁盘分区
(hd0) (hd0,msdos0)...(hd1) (hd1,msdos9) (hd1,msdos8)...
# 这里的hd代表磁盘,msdosx代表分区(x为数字)
开始使用ls
命令找grub
所在的磁盘,找到了,但是在grub\
下并没有normal.mo d
文件。
所以即使设置了
set root=(hd1,msdos6) # 设置grub启动分区
set prefix(hd1,msdos6)/boot/grub # 设置grub启动路径
insmod normal
后就会出现错误,显示file not found
而且此时将之强制关机后,开机后会直接进入grub rescue
界面,看不到开机过程中一闪而过的进入bios
的选项界面了,我试了下在开机后,不断按下F2
(我的电脑进入bios的热键是F2),这下又出现了当初进入bios的界面了。
寻找Linux核心文件所在分区 =
我的电脑在(hd1,sdb8)
中有名字类似与vmlinuz-3.0.0-12-generic这样的文件,这是Linux核心文件,如果找到,记下(hd1,sdbx
)中的x值。假设找到(hd0,5)时,显示了文件夹中的文件。
然后用Live USB启动,在Live USB的Ubuntu的终端中依次输入以下命令 =
- 如果/boot单独分区:
sudo mount /dev/sdb8 /mnt # 注意8这个数字,你需要改写成你自己的 sudo grub-install --boot-directory=/mnt /dev/sda
- 如果/boot没有单独分区:
sudo mount /dev/sda5 /mnt sudo grub-install --boot-directory=/mnt/boot /dev/sda
重新启动Ubuntu后,发现熟悉的grub启动界面又回来了,这次虽然没有用到最新的20.04, 但开始使用19.10版本了,也算是更新了!
- /grub/i386-pc/normal.mod not found
使用boot-repair工具,在live-usb中安装这个工具,然后运行。
如果是ubuntu16.04的时候可能安装不了,那么就把源换成18.04的再进行安装。
背景2
20.5.5
今天又进入到grub rescue>
了,这次是因为vmware扩容的问题。
上网找了下问题,搜索到的一个结果里边有这样一段话 =
楼主的问题是光标的问题,
其实那个问题已经在楼上有解决方案了,就是引导盘符的问题。
重启虚拟机,还在虚拟机加载进度条的时候就按下ESC,就可以切换当前需要打开的引导了,切到CDROM就好了。
或者干脆F2(不推荐),去修改引导,不推荐的原因是因为,你装完系统还要再改回来成硬盘引导。
所以ESC用一下,装一下系统就好了。
我说这层答案很好的原因是在切换引导之后,选择安装Win10的时候,会报错。
报的错就是硬盘问题。
没错,是这个问题。
而这一层给出的就是这个问题的答案。
直接在虚拟机设置里,在硬盘→高级里,把SATA换成IDE就好了。
之前没有将这个答案看完整,直接F2
进行高级设置了…
根据[这篇博客][1]还有[这篇博客][2]对虚拟机扩容了20G,后使用shutdown -r now
后直接进入了grub rescue界面。
本来以为虚拟机扩容大功告成,但不知竟然又发生了这种事情。
我觉得linux的磁盘那些操作真的好难啊!有些不懂。
使用ls
对硬盘进行扫描,但是并未发现boot文件夹,除了一个ex2
,其它都是unknown filesystem
,不知道该怎么解决。
我决定重新装一个ubuntu20.
唉,之前也没及时对v2ray文件进行备份。也没有写教程.
背景3
20.9.16 aft
今天因为想玩游戏,但是windows下需要合并两个分区(因为单独一个分区装不下我想玩的游戏…),在WePE中使用分区工具对两个分区进行合并之后,重新启动出现黑乎乎的界面 =>grub rescue
内心已经做好重新装系统的准备,但是还是抱着一丝希望,先试试,毕竟这种情况已经遇到过一次了。
在这种界面需要记住几个重要命令 =
set
= 设置变量ls
= 显示分区insmod normal
= 在设置完成后想要回到正常界面需要输入这个命令normal
= 这个命令和上边的是一起的
接下来就是正差的操作流程了
- 使用set查看
grub
分区,需要一个个的试,这时候需要使用ls
命令 - 找到了之后就使用
set
进行设置,类似
set root=hd0,msdos2
set prefix=(hd0,msdos2)/grub
- 进行设置了之后就使用
set
可以查看当前设置 - 输入
insmod normal
回退到grub启动界面,这个命令输入后还需要再次输入normal
才行。 - 到了这里还没有完,需要进入linux更新grub
sudoupdate-grub+08 = '00'
sudo grub-install /dev/sda
最后一个总结 = 遇到这种情况先别急着下结论,比如最坏就得重新装系统啦怎么怎么样,还是要到网上搜索一下有没有人遇到了类似的问题,比如我当时就已经打算重装系统了,但是还是抱着试一试的态度搜索了一下,也许是之前遇到过两次类似的情况,这次处理起来就顺利多了,就是系统找不到引导文件的事情,把路径设置进系统里就好了。
[1] = https://blog.csdn.net/Q1302182594/article/details/51658229?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1 [2] = https://zhidao.baidu.com/question/2267276798977896028.html