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