这是由画图引起了一场“血案”。因为需要画一个叶绿体共线性的图,使用nucmer比对,然后使用mumerplot画图,但显示没有安装gnuplot,使用yum install 安装gnuplot后,发现缺少Qt和Qt Creator库,安装Qt发现需要需要gcc11版本以上,接着使用这个“CentOS8完美升级切换gcc版本方法”,显示升级失败。接下来大部分linux命令都用不了,可能是像上次一样是libc文件坏了,而是按照原来的方法。
1 修改U盘位置
开机启动,在进入到启动盘界面时,用上下键选择救援模式,然后按”e”进入编辑模式,将hd:后的内容换成U盘所在的盘符位置:
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rescue quiet
###修改为
vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdc4:/ rescue quiet
###如果不知道U盘的位置,可以退出后进入shell模式,然后使用:
ls /dev/sd*
##或者使用查看
fdisk -l
这一步没有问题后按”ctrl+x”运行,看见有选择界面后选择“ 1 continue”,可以运行了。救援模式是用Anaconda做的一个小的linux环境,使用Alt+Tab可以切换到命令模式。
2 激活引导分区
###查看磁盘分区情况
fdisk -l
###查看逻辑卷
lvdisplay
###激活逻辑卷
vgchange -ay /dev/cl ##cl是上一步需要激活的"VG name"
###重新进入救援模式
systemctl --no-wall rescue
3 恢复libc.so.6文件
与CentOS7不同的是CentOS8默认挂载的文件夹是”/mnt/sysroot/”,不是”/mnt/sysimage”, “chroot /mnt/sysroot”进入到服务器的系统目录(注意不是启动盘中的系统目录),运行”df -h‘可以看到所有挂载的盘,拷贝一个libc.so.6文件到/mnt/sysroot/lib64/这个文件夹中就可以了。但重启系统后发现 “Failed to start Crash recovery kernel arming”, “centos failed to start udev coldplug all devices”, 和加载逻辑盘time out的错误。整了两天,通过disable kernel 相关服务可以消除第一个错误,但后面两个错误怎么也解决不了,系统只能进入emergency模式。没办法,只能打算重装系统了。
4 拷贝数据,重装系统
准备一个空盘,格式化成ext4文件格式。按上述2方法进入救援模式,使用fdisk -l 查看备份盘所在的地方(启动盘不能拔掉),查看逻辑卷,激活逻辑卷,重新进入救援模式,挂载备份盘,使用df -h查看所有盘符所在位置,拷贝所需文件至备份盘。
mkdir /mnt/tmp
mount /dev/sdb3 /mnt/tmp
cp /mnt/sysroot/home/admin/* /mnt/tmp/
然后使用1方法修改启动盘符,安装系统,为了避免CentOS升级gcc所带来的问题,彻底抛弃CentOS了,重新安装了一个Ubuntu service LTS 24.04系统。