sata硬盘和nvme硬盘grub rescue以及MBR、grub、lilo、uefi 、legacy的解释

本文介绍了如何在grub rescue环境下修复sata和nvme硬盘的问题,强调了命令行输入的准确性。同时,文章讲解了MBR、主分区、逻辑分区等概念,并概述了Linux启动过程、UEFI与legacy BIOS的区别,以及grub和lilo在系统引导中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01 grub rescue修复–sata接口的硬盘(适用于sata固态和机械硬盘)
  前几天买了块SSD回来,想把之前的win10+ubuntu16.04都迁移到SSD上。做法是下载分区助手,完成了win10系统C盘和软件盘D盘的迁移,但是ubuntu则是不能用分区助手迁移的,因为分区助手就没有linux版,所以ubuntu就必须重装到ssd上。重装的时候,采用了uefi方式安装,安装好后重启系统,发现无法进入bios,只出现grub rescue界面,在网上看了一些教程,说什么拔硬盘、给bios rom放电、装ubunt到u盘上然后从u盘进入ubuntu,吓了我一跳。当时确实有点慌了,因为我的观点是装系统可以随便玩,只要不去动bios就行,而这次竟然进不了bios所以有点头疼,以为得去维修店刷bios了。其实不然,出现grub rescue命令行,只要之前安装的ubuntu还在,就修复一下grub即可。方法如下:

ls		#列出磁盘上的所有分区
ls (hd0,msdos12)		#查看msdos12是否是ext文件系统,假设是则下面都用msdos12,如果不是则继续查看(hd0,msdosXX)XX是ls中列出的数字序号
ls (hd0,msdos12)/grub	#我目前的硬盘上是hd0 12和hd0 5上有ubuntu
ls (hd0,msdos12)/boot/grub
set root=(hd0,msdos12)		#这条命令可以没有
set prefix=(hd0,msdos12)/boot/grub	#如果是第四行没有显示unknow file,如果是第三行显示unknow file则/boot/grub改成 /grub
insmod normal
normal		#就可以进入那个熟悉的grub菜单界面了
#在进入ubuntu后需要执行以下两条命令
sudo update-grub
sudo grub-install /dev/sda		#sda后不加数字

几点注意的地方:
1)ls (hd0,msdos12)/grub #ls后有一个空格,中间的逗号后边没有空格,右括号后也没有空格,如果是多加或少写了空格会出现 unknown command,即命令输错了,而不会是unknown file 和unknown file system
2)ls (hd0,msdos12)可以写成ls(hd0,12),即省略掉msdos这几个字符
3)可以先ls (hd0,12)看是否是ext文件系统,如果是再去检查/grub或者/boot/grub是否含有grub的引导文件 ,这样会比较节省时间
4) 在修复好grub后,也能正常进入bios了(有点奇怪)

02 grub rescue修复–nvme协议m.2接口的硬盘
方法和上面的是一样的,只是需要根据nvme硬盘的特点做一点修改

ls # 列出所有分区,因为我是nvme+gpt+efi模式,所以显示的是(hd0,gpt1)这种形式
ls (hd0,gpt2)/efi # 因为我的ubuntu引导分区efi在(hd0,gpt2),就是第一块硬盘的2分区,所以此处直接用它示范了
# 输出: ubuntu/ boot/
set root=(hd0,gpt2)
set prefix=(hd0,gpt2)/efi/ubuntu	# 因为grub在efi/ubuntu目录下
insmod normal
normal
#在进入ubuntu后同样需要执行下面的命令
sudo update-grub
sudo grub-install /dev/nvme0n1	# 这里的设备号nvme0n1很关键,因为我的efi分区装在nvme0n1p2中的,所以此处是nvme0n1

需要注意的是:
  (01) ls找efi分区时,只要efi下有ubuntu的,那就是它了,如果您记得是在那个硬盘哪个分区,就直接ls它确认下即可.
  (02) 比较坑的一点是,我经过上面的操作后,重启系统又进入了grub rescue,后来发现是因为我有两块硬盘,但是bios中的默认启动顺序不是nvme0n1, 而是另一块硬盘,所以如果您也有这个问题的话,则需要设置bios的启动顺序

03 MBR、主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区解释
版本1
http://blog.51cto.com/matthewfjnd/2294325
版本2
https://www.cnblogs.com/wincai/p/5482301.html

04 Linux启动过程
https://www.ibm.com/developerworks/cn/linux/l-linuxboot/

05 uefi bios和legacy bios mbr和gpt
这两个都是bios,legacy是传统的bios,而uefi则是新出的bios标准
https://blog.csdn.net/a3192048/article/details/82975745

06 grub和lilo都可以用于linux的系统加载程序,在传统mbr模式下,它们是在执行mbr引导程序后加载到内存执行的,其作用是加载操作系统内核。现在linux用grub引导的居多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值