Ubuntu开机停在Grub命令行以及启动后进入emergency模式的解决方法

主机上两个硬盘,本来都是Ubutun系统,然后将其中一个重装为windows系统,结果另外一个硬盘的Ubutun启动不了

首先会卡在grub命令行界面,类似下面这样:

这种情况往往是 GRUB 的系统文件或者配置文件损坏了,但是硬盘引导扇区中的内容还在。

shell 复制代码
# 第一步:输入ls出现(hd0,gpt1),(hd0,gpt2),(hd1,gpt1),(hd1,gpt2)等等
# 不同的电脑不一样
# linux中一般是/dev/sda123 表示,grub一般是 (hd0,gpt1)表示
ls

# 第二步:查找你的grub目录(当然如果你知道你grub目录在哪里更好)
然后找出哪个盘安装了系统,
ls (hd0,gpt1)/boot/grub
ls (hd0,gpt2)/boot/grub
...

尝试所有的,直到返回内容不再是error: unknown filesystem.为止

# 第三步:找到boot文件夹在哪里之后,假设在(hd0,gpt2)中,我的就在这里
set root=(hd0,gpt2)/boot/grub
set prefix=(hd0,gpt2)/boot/grub
insmod normal
normal

# 第四步:之后回车之后应该出现启动界面

如果正常启动,可以进入选择启动项的界面

但是我到这里进入我的Ubutun后并没有成功起来

启动后进入了emergency模式,报错

bash 复制代码
Timed out waiting for device /dev/disk/by-uuid/4A44-CBBE


进入emergency模式后直接输入密码进入命令行

原因:

windows格式化了efi分区,其id发生了变化

导致在原系统中的硬盘与分区的描述与目标硬盘的描述不一样,所以导入后的机器才无法找到硬盘而无法启动的。

sudo blkid 查找efi分区的id,type="vfat",将 /etc/fstab 中原 uuid改成新的uuid即可。

shell 复制代码
sudo blkid
 
sudo vim /etc/fstab

保存之后重新启动就能进入系统了

到这一步还没结束

最后在终端输入命令,更新grub,确保修改生效。

bash 复制代码
sudo update-grub
sudo grub-install /dev/sda

再reboot一下应该就没啥问题了

相关推荐
无足鸟ICT3 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
闪亮的路灯3 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF4 小时前
nmcli
linux·服务器·网络
qetfw4 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
szxinmai主板定制专家6 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
叼烟扛炮6 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong6 小时前
Linux 有两个 “版本“
linux·发行版·内核版本
叼烟扛炮7 小时前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
叼烟扛炮7 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
Decay__7 小时前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构