修改注册表导致无法启动

修改用户注册表导致 Win10 无法启动(具体为不显示登录界面)。

解决方法:

  1. 使用电源键强制重启
  2. 开机时点击 F8 进入高级选项菜单
  3. 启动命令提示符界面,将在这里修改注册表

启动命令提示符之后会进入 X 盘 X:\Windows\System32,首先需要导入被修改的用户注册表,假设这个用户名字为 username,所使用的系统盘为 C 盘。通过 reg load 命令加载注册表,具体是加载 USERS、SOFTWARE、SYSTEM 这三个注册表。

reg load HKU\<1> C:\User\username\ntuser.dat
reg load HKLM\<2> C:\Windows\System32\config\SOFTWARE
reg load HKLM\<3> C:\Windows\System32\config\SYSTEM

其中 <1>,<2>,<3> 的名字是自定义的,不妨分别取为 username, username_software, username_system,意思就是将 USERS、SOFTWARE、SYSTEM 这三个注册表加载到 HKU\username, HKLM\username_software, HKLM\username_system。加载完之后就可以通过 regedit 进行图形化界面的修改了。

reg load HKU\username C:\User\<username>\ntuser.dat
reg load HKLM\username_software C:\Windows\System32\config\SOFTWARE
reg load HKLM\username_system C:\Windows\System32\config\SYSTEM

然后使用 regedit 命令打开注册表界面,在下列表项中可以找到对应的被加载的注册表,将这些被修改的注册表中之前错误修改的项还原到修改之前即可。

HKEY_USERS\username
HKEY_LOCAL_MACHINE\username_software
HKEY_LOCAL_MACHINE\username_system

如果是具有 Linux 双系统的电脑也许可以尝试一个更有难度的方法,需要具有能够在 Linux 下修改 Windows 系统盘的权限

sudo apt install libhivex-bin

hivex 这套库是 Linux 下对 Windows 注册表的解析库,其中 hivexsh 提供了一个注册表的命令行接口,具体命令可以查看文档。

同样打开注册表文件

hivexsh /mnt/windows/c/User/<username>/ntuser.dat
# hivexsh /mnt/windows/c/Windows/System32/config/SOFTWARE
# hivexsh /mnt/windows/c/Windows/System32/config/SYSTEM

ls 查看子节点,cd 移动到某个节点,lsval 查看当前节点的键值对,setval 设置节点的键值对,commit 提交修改,quit 退出。

posted @ 2023-01-22 23:11  Violeshnv  阅读(800)  评论(0编辑  收藏  举报