ubuntu 22.x操作系统误删除/boot分区文件恢复引导

误删除/boot分区文件导致系统启动失败,可从光盘进行恢复引导,针对其他误删除系统文件导致无法启动也可按对应步骤执行,方法仅供测试验证

在这里插入图片描述
重启后界面报错
在这里插入图片描述
方式一: 通过下载源系统内核版本重新安装(推荐方式)
原系统内核版本列表请查看下方切换chroot 文件系统后查询出的版本
ubuntu 阿里云镜像站软件包下载地址(内核包搜索linux-image):https://developer.aliyun.com/packageSearch?word=linux-image

方式二:通过光盘中内核进行安装
实在没外网,也找不到可下载的内核,使用光盘中内核版本进行安装

插入 Ubuntu 22.04 安装光盘并重新启动计算机。

当前虚拟机演示
在这里插入图片描述
选择已有的ISO镜像文件
在这里插入图片描述

重启操作系统进入光盘引导启动
在启动过程中,按下键盘上的特定按键(通常是 F12、F10、Esc 或 Del 键)以进入启动选项菜单。具体的按键可能因计算机品牌或型号而异,请在启动时查看屏幕上的提示信息。
从启动选项菜单中选择光盘驱动器作为启动设备,并按下 Enter 键。
在这里插入图片描述

接下来,你会看到 Ubuntu 安装菜单。选择 “Install Ubuntu”(或者类似的选项)并按下 Enter 键。
在这里插入图片描述

进入救援模式

等待系统加载相关文件,直到出现 "Welcome " 等类似的界面
在该界面上,不要继续安装过程。而是按下 Ctrl + Alt + F2 组合键,切换到另一个虚拟终端
在这里插入图片描述

在这里插入图片描述
在新的虚拟终端中,输入以下命令进入救援模式:

sudo systemctl rescue

按下 Enter 键执行该命令。
系统将进入救援模式,
在这里插入图片描述
输入操作系统root密码
在这里插入图片描述

进入系统后查看挂载状态,可以看到没有原操作系统的挂载分区

df -h

在这里插入图片描述

恢复grub引导

可以通过lsblk -fblkidfdisk -l 命令确认分区信息
lsblk -f查看后确认:当前环境只有一块/dev/sda盘,/dev/sda3并做了lvm卷,分区为:ubuntu--vg-ubuntu--lv
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

挂载分区,选择/mnt作为挂载点,也可以新建挂载目录进行挂载
挂载后查看数据,可以确认当前分区就是根分区/

mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt

在这里插入图片描述
挂载必要的文件系统

mount --bind /sys/ /mnt/sys/
mount --bind /proc/ /mnt/proc/
mount --bind /dev/ /mnt/dev/

切换到原系统

chroot  /mnt/

查看只有根分区挂载信息:
在这里插入图片描述

mount -a 根据原系统的/fstab内容
可以看到/boot分区已挂载上,并查看到/boot分区内容为空

mount -a
df -h
ls /boot/

在这里插入图片描述

创建grub

grub-install /dev/sda

在这里插入图片描述
查看原系统安装的kernel版本image有3个:

dpkg -l |grep kernel|grep image

linux-image-generic
linux-image-5.15.0.72-generic
linux-image-5.15.0-117-generic/font>

uname -r查看到的是光盘中的使用的内核版本:5.15.0-25-generic,有可能原系统包含这个版本(当前上方三个版本中不包含)
在这里插入图片描述

通过方式一: 下载对应版本内核重新安装
下载任一原系统内核版本,本次使用查询出来的最高版本
在这里插入图片描述
怎么上传内核到需要修复的主机上,我这想到2个方法:
方法1:使用其他正常系统下载后通过共享进行下载(不能使用域名地址,光盘引导域名无法解析)
方法2:将已下载好的内核文件放在到硬盘或者u盘等存储介质方式,挂载进恢复系统中读取

我这儿使用方法1
需共享的主机下载

wget https://mirrors.aliyun.com/ubuntu/pool/main/l/linux-signed/linux-image-5.15.0-117-generic_5.15.0-117.127_amd64.deb

光盘引导待恢复的主机下载上面共享的内核文件
待恢复主机网络中若没有启用dhcp,可以使用 ip addr临时设置:
sudo ip addr add <ip地址>/<掩码> dev <接口名称>

sudo ip route add default via <网关地址>)
示例设置:

sudo ip addr add 192.168.0.220/24 dev eth0
sudo ip route add default via 192.168.0.1

在这里插入图片描述
安装下载的内核

linux-image-5.15.0-117-generic_5.15.0-117.127_amd64.deb

在这里插入图片描述
更新grub引导

update-grub

在这里插入图片描述
退出chroot环境,重启系统

exit
reboot

在这里插入图片描述
重启后应该已能正常引导系统启动
到处,方式一恢复引导结束,系统已安装的其他内核版本可选修复!

通过方式二: 光盘中内核进行安装
挂载光盘,复制启动文件
选择/opt目录为光盘挂载点(也可以挂载/mnt及别的目录,为了混淆,上面切入系统进来前也是/mnt,),也可以创建新目录挂载

#挂载光盘
mount /dev/cdrom /opt/
#查找内核文件
find /opt -name 'linux-image*'
查看文件大小,确定内核文件
find /opt -name 'linux-image*'|xargs du -sh 

在这里插入图片描述可以看到匹配到两个文件,既然是内核文件,第一个3.0k肯定不是,怎么确认可以使用dpkg -c命令查看文件内容,可以看到第二个匹配文件中包含vmlinuz带版本号的文件
在这里插入图片描述
安装内核在这里插入图片描述提示需要安装依赖linux-modules
查找linux-modules文件位置
查找后可以看到也匹配到2个文件,linux-modules-extra文件是附件模块文件可选安装
在这里插入图片描述
更新grub引导

update-grub
ll /boot

在这里插入图片描述
退出chroot环境,重启系统

exit
reboot

在这里插入图片描述
重启后应该已能正常引导系统启动!其他缺失的内核引导可选进行重装

重新安装原系统已有内核

对于某些驱动或应用依赖原系统对应内核版本,可以重新安装原系统中已有的指定内核版本
更新apt 源

apt update

apt update加载慢,可以使用阿里云镜像源及内外自建源

#ubunt22.04-jammy
cat > /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF

若系统无内核版本要求,也可以把查询出来的内核版本和内核对应模块都安装,或者安装镜像源中指定或最新版本都可以

dpkg -l |grep kernel

在这里插入图片描述
本次安装原系统显示最新的版本
从上面光盘安装内核可知:安装linux-image版本,需安装对应依赖modules包

apt update
apt reinstall linux-image-5.15.0-117-generic linux-modules-5.15.0-117-generic

若安装的内核比grub中版本高,会提示是否使用新内核
在这里插入图片描述
安装完毕后,重启系统!
查看当前引导内核版本:5.15.0-117-generic
/boot分区也多了一些引导文件(可选:根据需要删除不必要的内核版本)

uname  -r
ll /boot/

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值