!! 大家好,我是wanger,一个不爱折腾的运维工程师,一个睡觉都被自己帅醒的云原生爱好者。
作者:wanger 公众号:运维开发故事 博客:https://devopstory.cn
启动后系统会进入文本界面,通常会有提示:
Continue
:尝试挂载已有系统并进入 chroot 环境。Read-Only
:以只读方式挂载文件系统。Skip
:不挂载,进入最小化救援环境。如果只是修复文件系统,选择 Skip 。
在 救援模式下,如果选择 Skip 不挂载系统,LVM 逻辑卷不会自动激活,所以 /dev/mapper/centos-root
之类的设备节点是看不到的。要修复 XFS,需要手动激活 LVM。
执行:
lvm vgscan
lvm vgchange -ay
这样会激活卷组,之后就能看到 /dev/mapper/centos-root
、centos-home
等设备了。
xfs_repair
此时分区没有挂载,可以直接修复:
xfs_repair /dev/mapper/centos-root
如果还是报错,可以尝试强制选项:
xfs_repair -L /dev/mapper/centos-root
⚠️ 注意:-L
会丢弃 XFS 日志,可能导致最近的未写入数据丢失,但多数情况下能让系统恢复可用。
如果是ext4系统,则执行fsck -y 逻辑卷
修复好后直接:
reboot
Windows2022虚拟机启动失败一直卡在Windows logo界面
就跟上面图一样,后来我尝试执行C: dir或者 D: dir寻找系统盘,最终发现全是Windows系统ISO和virtio ISO的盘,没有发现系统盘,我系统盘是virtio的类型硬盘,应该是没有安装virtio驱动导致的,因此需要先加载virtio驱动,使用下面的命令加载virtio驱动
drvload E:\virtio-win\viostor\2k22\amd64\viostor.inf
这里的E盘是我挂载virtio的ISO盘符,其他环境可能有区别,可以通过D: dir命令查看是否是virtio的盘,这里的2k22 表示 Windows Server 2022 的驱动版本 ,其他系统需要更换对应的路径
diskpart
看是否能看到硬盘:diskpart
list disk
list volume
exit
这里我查看到我的引导分区是C,系统盘是F盘
5.看到虚拟机磁盘后,就可以使用bootrec
修复引导,bcdboot
重建 BCD
修复主引导记录和引导区
bootsect /nt60 C: /mbr
nt60表示写入 Windows Vista/7/8/10/11/Server 2008+ 的引导扇区格式 /mbr 表示重写磁盘的主引导记录,适用于传统 BIOS 引导方式 C盘是我的引导分区
使用系统目录重建引导文件
bcdboot F:\Windows /s C: /f BIOS
F:\Windows
是你系统目录/s :
表示引导分区在 C盘, (你的“系统保留”分区)/f BIOS
是传统 BIOS 启动(不是 UEFI)最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「运维开发故事」。
如果我的文章对你有所帮助,还请帮忙点赞、在看、转发一下,你的支持会激励我输出更高质量的文章,非常感谢!
你还可以把我的公众号设为「星标」,这样当公众号文章更新时,你会在第一时间收到推送消息,避免错过我的文章更新。
我是 wanger,《运维开发故事》公众号团队中的一员,一线运维农民工,云原生实践者,这里不仅有硬核的技术干货,还有我们对技术的思考和感悟,欢迎关注我们的公众号,期待和你一起成长!