一文搞定 Linux 与 Windows 双系统修复

centos 文件系统修复

1. 挂载 ISO 并进入救援模式将 CentOS 的安装 ISO 挂载到虚拟机/CD-ROM,或者插入启动盘。重启系统,从 ISO 启动。在启动菜单选择 Troubleshooting → Rescue a CentOS system(救援模式)。2. 进入救援环境

启动后系统会进入文本界面,通常会有提示:

Continue:尝试挂载已有系统并进入 chroot 环境。Read-Only:以只读方式挂载文件系统。Skip:不挂载,进入最小化救援环境。

如果只是修复文件系统,选择 Skip 。

图片

3. 扫描并激活 LVM 卷

在 救援模式下,如果选择 Skip 不挂载系统,LVM 逻辑卷不会自动激活,所以 /dev/mapper/centos-root 之类的设备节点是看不到的。要修复 XFS,需要手动激活 LVM。

执行:

复制
lvm vgscan lvm vgchange -ay1.2.

这样会激活卷组,之后就能看到 /dev/mapper/centos-rootcentos-home 等设备了。

图片

4. 执行 xfs_repair

此时分区没有挂载,可以直接修复:

复制
xfs_repair /dev/mapper/centos-root1.

如果还是报错,可以尝试强制选项:

复制
xfs_repair -L /dev/mapper/centos-root1.

⚠️ 注意:-L 会丢弃 XFS 日志,可能导致最近的未写入数据丢失,但多数情况下能让系统恢复可用。

如果是ext4系统,则执行fsck -y 逻辑卷。

图片

5. 修复完成后重启

修复好后直接:

复制
reboot1.

windows系统引导修复

Windows2022虚拟机启动失败一直卡在Windows logo界面。

图片

1.首先尝试使用wepe做的iso去修复Windows系统的引导项,发现没有修复成功。

2.下载Windows 2022的iso引导进行修复,“安装”页面左下角点击【修复计算机】  ,点击→ 疑难解答→ 高级选项 → 命令提示。

图片

3.进到命令行后需要找到系统盘所在的盘符,如果直接执行修复是找不到路径的。

图片

就跟上面图一样,后来我尝试执行C: dir或者 D: dir寻找系统盘,最终发现全是Windows系统ISO和virtio ISO的盘,没有发现系统盘,我系统盘是virtio的类型硬盘,应该是没有安装virtio驱动导致的,因此需要先加载virtio驱动,使用下面的命令加载virtio驱动。

复制
drvload E:\virtio-win\viostor\2k22\amd64\viostor.inf1.

这里的E盘是我挂载virtio的ISO盘符,其他环境可能有区别,可以通过D: dir命令查看是否是virtio的盘,这里的2k22 表示 Windows Server 2022 的驱动版本  ,其他系统需要更换对应的路径。

4.驱动加载成功后,再用 diskpart 看是否能看到硬盘:

复制
diskpart list disk list volume exit1.2.3.4.

这里我查看到我的引导分区是C,系统盘是F盘。

图片

5.看到虚拟机磁盘后,就可以使用bootrec 修复引导,bcdboot 重建 BCD。

修复主引导记录和引导区。

复制
bootsect /nt60 C: /mbr1.

nt60表示写入 Windows Vista/7/8/10/11/Server 2008+ 的引导扇区格式

/mbr 表示重写磁盘的主引导记录,适用于传统 BIOS 引导方式

C盘是我的引导分区

使用系统目录重建引导文件。

复制
bcdboot F:\Windows /s C: /f BIOS1.
F:\Windows 是你系统目录/s : 表示引导分区在 C盘, (你的“系统保留”分区)/f BIOS 是传统 BIOS 启动(不是 UEFI)

6.之后修改引导方式为硬盘后重启虚拟机,重启虚拟机由于修复了主引导记录,会有蓝屏转圈,之后就可以按F8进入安全模式,进入安全模式自动修复后重启就可以进系统了。

THE END