ubuntu 启动出现error: no such partit
2019-01-07 本文已影响22人
牧馬放飏
背景
造成这个原因是,在安装ubuntu系统的时候,我把分区设置的太小了,然后我在windows把相同硬盘上个另一个分区删除了,现在它是未分配的状态,然后当我再次启动ubuntu时候,出现了error: no such partition
,这个时候系统进入了grub rescue的命令行状态,应该是找不到启动分区的缘故。
基础
常用grub命令:
- set 设置环境变量
- ls 查看设备
- insmod 加载模块
- root 指定用于启动系统的分区
- prefix 设定grub启动路径
第一步:查看设备
ls
# 显示结果
(hd0) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5)
hd0
是我的硬盘,列出来的是我的分区,msdos7是我的交换分区,msdos6是我ubuntu系统分区,msdos5是我硬盘上用来存放文件的分区,其实在之前是有两个存放文件的分区的,我为了扩展ubuntu系统所在的分区,我就在windows下把把那个分区删除了,我猜测这是导致找不到启动分区的原因,但这好像又没有什么道理,知道的留言告诉我一下啊
第二步:查看ubuntu系统所在的分区
ls (hd0,msdos7) /boot/grub
unknown filesystem
ls (hd0,msdos6) /boot/grub
filesystem is ex2.
ls (hd0,msdos5) /boot/grub
unknown filesystem
检测到ubuntu系统在msdos6
下。
第三步:设置启动分区和路径
set root=(hd0,msdos6)
set prefix=(hd0,msdos6) /boot/grub
第四步:加载基础模块
insmod normal
i386-pc/notmal.mod not found
说明:
我在查找资料的时候,我使用insmod normal
不可以加载,说是i386-pc/normal.mod not found
,开始我以为我设置分区错了,然后使用ls (hd0,msdos6)/boot/grub/
,在里面发现了 i386-pc
,我想难道是我的路径不对?然后我使用了下面的路径,然后就显示正常了。
insmod (hd0,msdos6)/boot/grub/i386-pc/normal.mod
第五步:进入正常模式
normal
这个时候就可以正常启动ubuntu了。
第六步:这一切并没有结束
wukj@jm:~$ sudo update-grub
[sudo] wukj 的密码:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-43-generic
Found initrd image: /boot/initrd.img-4.15.0-43-generic
Found linux image: /boot/vmlinuz-4.15.0-29-generic
Found initrd image: /boot/initrd.img-4.15.0-29-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 on /dev/sda1
done
wukj@jm:~$ sudo grub-install /dev/sd
sda sda1 sda2 sda5 sda6 sda7 sdb sdb1 sdb5 sdb6 sdb7
wukj@jm:~$ sudo grub-install /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
在进入系统的grub中并没有真正的修改,这个时候需要重建grub到硬盘上面,而不是分区上面,这样开机引导才算真正的完成。