0x00 简介
下面记录一些 windows 的修复方式,不定时更新
0x01 安全模式下修复
进入安全模式
然后在命令行下输入
sfc /scannow
0x02 离线修复
以下操作是在 IT 天空的 优启通 PE 下完成,该 PE 采用的,WIN10 PE 为基础。
完成以下操作,机械硬盘预计需要2小时以上,如果不是有特殊需求,建议备份必要文件后重装系统。
如果是用的安装盘里面的是esd需要先转换出来wim格式的。
获取镜像信息
X:\Users\Default>dism /get-wiminfo /wimfile:f:\sources\install.esd
部署映像服务和管理工具
版本: 10.0.19041.1
Details for image : f:\sources\install.esd
Index : 1
Name : Windows 10 家庭版
Description : Windows 10 家庭版
Size : 15,006,410,647 bytes
Index : 2
Name : Windows 10 家庭单语言版
Description : Windows 10 家庭单语言版
Size : 15,004,650,550 bytes
Index : 3
Name : Windows 10 教育版
Description : Windows 10 教育版
Size : 15,280,360,722 bytes
Index : 4
Name : Windows 10 专业版
Description : Windows 10 专业版
Size : 15,281,566,319 bytes
操作成功完成。
dism
是用于管理 Windows 映像和部署的命令行工具。/get-wiminfo
是dism
的一个子命令,用于获取 WIM 文件的信息。/wimfile:f:\sources\install.esd
指定要获取信息的 WIM 文件的路径和文件名。
获取出来的信息我们需要的是 index:4 的版本
esd镜像转换为wim镜像
X:\Users\Default>dism /export-image /sourceimagefile:f:\sources\install.esd /sourceindex:4 /destinationimagefile:e:\222\new_install.wim /compress:max
部署映像服务和管理工具
版本: 10.0.19041.1
Exporting image
[==========================100.0%==========================]
操作成功完成。
/export-image
:指定要执行的操作,即导出映像。/sourceimagefile
:指定源映像文件的路径和文件名。/sourceindex
:指定要导出的映像的索引号。在这个例子中,它是 4。/destinationimagefile
:指定目标映像文件的路径和文件名。/compress
:指定压缩级别。在这个例子中,它是max
,表示使用最大压缩级别。
改镜像权限
X:\Users\Default>e:
E:\>cd 222
E:\222>dir
驱动器 E 中的卷是 软件
卷的序列号是 C14D-581B
E:\222 的目录
2023/11/10 12:06 <DIR> .
2023/11/10 12:06 <DIR> ..
2023/11/10 12:17 4,269,955,275 new_install.wim
1 个文件 4,269,955,275 字节
2 个目录 310,697,476,096 可用字节
E:\222>attrib e:\222\new_install.wim -R
attrib
:命令本身,用于更改文件或目录的属性。e:\222\new_install.wim
:要更改属性的文件路径。-R
:这是一个选项,表示要删除只读属性。
查看wim镜像的信息
E:\222>dism /get-wiminfo /wimfile:"e:\222\new_install.wim"
部署映像服务和管理工具
版本: 10.0.19041.1
Details for image : e:\222\new_install.wim
Index : 1
Name : Windows 10 专业版
Description : Windows 10 专业版
Size : 15,281,566,319 bytes
操作成功完成。
dism
:用于管理 Windows 映像和部署服务的命令行工具。/get-wiminfo
:指定要获取 WIM 信息。/wimfile:"e:\222\new_install.wim"
:指定要获取信息的 WIM 文件的路径。e:\222\new_install.wim
:WIM 文件的路径。
可以看出来 index 只有 1 专业版
挂载wim镜像
E:\222>dism /mount-image /imagefile:"e:\222\new_install.wim" /index:1 /mountdir:"e:\eee"
部署映像服务和管理工具
版本: 10.0.19041.1
Mounting image
[==========================100.0%==========================]
操作成功完成。
dism
:Windows 部署映像服务和管理工具的命令行工具。/mount-image
:指定要挂载映像文件的操作。/imagefile:"e:\222\new_install.wim"
:指定要挂载的映像文件的路径和文件名。/index:1
:指定要挂载的映像文件中的映像索引号。如果映像文件中只有一个映像,则索引号为 1。/mountdir:"e:\eee"
:指定要将映像文件挂载到的目录路径。
健康扫描
E:\222>dism /image:c:\ /cleanup-image /scanhealth
部署映像服务和管理工具
版本: 10.0.19041.1
映像版本: 10.0.18363.592
[==========================100.0%==========================] 可以修复组件存储。
操作成功完成。
/image:c:\
:指定要操作的Windows映像所在的位置。在这种情况下,映像位于C盘根目录下。/cleanup-image
:指定要执行的操作类型。在这种情况下,它将清理Windows映像中的不需要的组件和包。/scanhealth
:指定要执行的操作类型。在这种情况下,它将扫描Windows映像以检查其完整性,并尝试修复任何发现的问题。
健康度检查
E:\222>dism /image:c:\ /cleanup-image /checkhealth
部署映像服务和管理工具
版本: 10.0.19041.1
映像版本: 10.0.18363.592
可以修复组件存储。
操作成功完成。
/image:c:\
:指定要操作的Windows映像所在的位置,这里是C盘根目录。/cleanup-image
:指定要执行的操作,这里是清理Windows映像中不再使用的组件和功能。/checkhealth
:指定要检查的内容,这里是检查Windows映像中的组件和功能是否存在任何问题。
修复系统
E:\222>dism /image:c:\ /cleanup-image /restorehealth /source:"E:\eee\Windows"
部署映像服务和管理工具
版本: 10.0.19041.1
映像版本: 10.0.18363.592
[==========================100.0%==========================] 还原操作已成功完成。
操作成功完成。
/image:c:\
:指定要操作的 Windows 映像所在的驱动器。在这个例子中,它指定为 C 驱动器。/cleanup-image
:指定要执行的操作类型。在这个例子中,它是清理映像。/restorehealth
:指定要执行的具体操作。在这个例子中,它是恢复映像的健康状态。/source:"E:\eee\Windows"
:指定用于修复映像的源文件路径。在这个例子中,它指定为 E 盘下的 eee 文件夹中的 Windows 文件夹。
测试
重启测试,看能否恢复。
继续修复
下载Windows ISO文件并将其写入USB或DVD。
将计算机从USB或DVD启动。
选择语言、时间和货币格式以及键盘或输入方法。
点击“下一步”。
点击“修复您的计算机”。
选择“高级选项”。
选择“命令提示符”。
输入以下命令:
sfc /scannow /offbootdir=c:\ /offwindir=c:\windows
sfc
: System File Checker,系统文件检查器。/scannow
: 扫描系统文件并尝试修复任何发现的问题。/offbootdir=c:\
: 指定引导分区的驱动器号或路径。/offwindir=c:\windows
: 指定 Windows 安装的驱动器号或路径。
/offbootdir
这个参数使用之前需要使用dir看下,当前的机器只有2个盘符 c 和 d。
修复后正常开机。
以上最后的内容,估计在pe下也可以直接做,就不用再使用安装盘了。
0x03 可开机在线修复
cmd 管理员模式运行
检查映像是否可修复
扫描映像以检查是否有损坏。 此操作将需要几分钟时间。
Dism /Online /Cleanup-Image /ScanHealth
检查映像,查看是否检测到任何损坏。
Dism /Online /Cleanup-Image /CheckHealth
使用 /CheckHealth sfc 参数时,DISM 工具将报告映像是正常、可修复还是无法修复。 如果映像无法修复,应放弃映像并再次开始。 如果映像是可修复的,可以使用 /RestoreHealth 参数来修复映像。
修复映像
使用 /RestoreHealth 参数来修复映像。 例如,要将装载的映像作为修复源来修复脱机映像,请在命令提示符处键入以下命令:
Dism /Image:C:\ /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows
或者,要使用一些你自己的源而不是 Windows 更新来修复联机映像,请键入:
Dism /Online /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows /LimitAccess
如果没有为修复文件指定 /Source,将使用按需功能的默认位置。 有关详细信息,请参阅配置 Windows 修复源。 如果指定了多个 /Source,则将从找到文件的第一个位置复制文件,并忽略其他位置。 可使用 /LimitAccess 来阻止 DISM 工具将 Windows 更新作为修复源或作为联机映像的备份修复源。
参考链接
- https://learn.microsoft.com/zh-tw/windows-hardware/manufacture/desktop/repair-a-windows-image?view=windows-11
- https://www.cntse.com/2052.html
- https://developer.aliyun.com/article/1119855
- https://www.bilibili.com/read/cv24667080/
- https://saga.ink/20210630/1542/
- https://zhuanlan.zhihu.com/p/616060244
- https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/configure-a-windows-repair-source?view=windows-11
- https://yc.lanfutun.com/?p=298
- https://blog.csdn.net/ZYF8985957/article/details/116330043
- https://blog.csdn.net/silence432/article/details/36671485
- https://answers.microsoft.com/zh-hans/windows/forum/all/dism-online-cleanup-image-scanhealth-dism-online/dee6e8c7-f099-4bf4-9e1d-6aea215b6625