修改注册表导致无法启动
修改用户注册表导致 Win10 无法启动(具体为不显示登录界面)。
解决方法:
- 使用电源键强制重启
- 开机时点击 F8 进入高级选项菜单
- 启动命令提示符界面,将在这里修改注册表
启动命令提示符之后会进入 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
退出。