误删除/boot分区文件导致系统启动失败,可从光盘进行恢复引导,针对其他误删除系统文件导致无法启动也可按对应步骤执行,方法仅供测试验证
重启后界面报错
插入 Ubuntu 22.04 安装光盘并重新启动计算机。
当前虚拟机演示
选择已有的ISO镜像文件
重启操作系统进入光盘引导启动
在启动过程中,按下键盘上的特定按键(通常是 F12、F10、Esc 或 Del 键)以进入启动选项菜单。具体的按键可能因计算机品牌或型号而异,请在启动时查看屏幕上的提示信息。
从启动选项菜单中选择光盘驱动器作为启动设备,并按下 Enter 键。
接下来,你会看到 Ubuntu 安装菜单。选择 “Install Ubuntu”(或者类似的选项)并按下 Enter 键。
进入救援模式
等待系统加载相关文件,直到出现 “Welcome to the Ubuntu installer!” 的界面
在该界面上,不要继续安装过程。而是按下 Ctrl + Alt + F2 组合键,切换到另一个虚拟终端
在新的虚拟终端中,输入以下命令进入救援模式:
sudo systemctl rescue
按下 Enter 键执行该命令。
系统将进入救援模式,
输入操作系统root密码
进入系统后查看挂载状态,可以看到没有原操作系统的挂载分区
df -h
恢复grub引导
可以通过 lsblk -f
、blkid
、 fdisk -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
挂载光盘,复制启动文件
选择/opt目录为光盘挂载点(也可以挂载/mnt及别的目录,为了混淆,上面切入系统进来前也是/mnt,),也可以创建新目录挂载
mount /dev/cdrom /opt/
cp /opt/casper/vmlinuz /boot/vmlinuz-$(uname -r)
ls /boot/
update-initramfs -u -k $(uname -r)
若执行报错,根据对应报错进行相应处理,exit退出后重新挂载/lib至/mnt/lib/后再次chroot,重新执行
exit
mount --bind /lib /mnt/lib
chroot /mnt/
update-initramfs -u -k $(uname -r)
更新grub引导
update-grub
查看/boot分区已生成了对应文件
退出chroot环境,重启系统
exit
reboot
重启后应该已能正常引导系统启动
重新安装内核
查看系统安装的kernel版本image有3个:
dpkg -l |grep linux-image
linux-image-generic
linux-image-5.15.0.72-generic
linux-image-5.15.0-117-generic
uname -a
查看到的是光盘中的使用的内核版本:5.15.0-25-generic,有可能原系统包含这个版本(当前上方三个版本中不包含)
更新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
若系统无内核版本要求,也可以把查询出来的内核版本都安装,或者安装镜像源中指定或最新版本都可以
apt update
apt reinstall linux-image-generic linux-image-5.15.0-72-generic linux-image-5.15.0-117-generic
更新完毕后,重启系统!
内核版本变为:5.15.0-118-generic
/boot分区也多了一些引导文件(可选:根据需要删除不必要的内核版本)