STOP:c0000218 {Registry File Failure}

这几天够折腾的了,一台很老很老的服务器,在启动之后,一个阵列磁盘掉线了:

 

也许是磁盘坏了:

 

服务器4个硬盘做的是RAID1,正常来说,坏了其中一二个硬盘是没有问题的。现更换了一个好的硬盘之后,系统无法启动:

 

STOP: c0000218 {Registry File Failure}

The registry cannot load the hive (file):

\SystemRoot\System32\config\SOFTWARE

 or its log or alterhate.

It is corrupt. absent, or not writable.

Beginning dump of physical memory

dumping physical memory to disk :100

physical memory dump complete.

contact your system administrator or technical support group for further

assistance.


经在网上查询,出现这个问题,Insus.NET已经不是第一个人了,前人已经遇上。Insus.NET不幸之中的万幸。

先把WinPE for Windows 2003做成启动光盘。
下载地址:http://download.cnblogs.com/insus/Windows/DEEPINWINPE4.1.rar

首先使用windowsPE进入到服务器,打开并找到 C:\WINDOWS\repair\software这个文件。复制粘贴到C:\WINDOWS\system32\config目录下,将原software原文件替换掉。

从Windows 2003重启服务器,再没有出现那蓝色错误,预感中问题已经解决了。最后出现登录对话框,登录系统。一切回归正常。重启过程没有出现丁点错误......

 

<think>嗯,用户遇到了npm配置镜像源时出现的“No such file or directory”错误。首先,我需要分析可能的原因。这个错误通常发生在指定的文件或目录不存在的情况下。用户运行的是`npm config set registry`命令,但可能参数不全或者路径有问题。 首先,正确的命令应该是设置registry的值,比如`npm config set registry https://registry.npmmirror.com/`。如果用户漏掉了镜像地址,直接运行`npm config set registry`而没有提供URL,就会导致这个错误,因为npm需要一个参数来设置。这时候系统会尝试寻找一个不存在的路径,从而报错。所以第一个可能的原因是命令格式错误,缺少了镜像源地址。 其次,如果用户确实输入了完整的命令,但依然报错,可能涉及npm配置文件的问题。npm的配置文件通常位于用户主目录下的`.npmrc`文件。如果这个文件不存在,或者用户没有权限写入该文件,也会导致错误。例如,用户可能在某个没有写入权限的目录下运行命令,或者配置文件被误删了。 另外,权限问题也是一个常见因素。如果用户使用普通用户权限运行命令,而npm需要写入系统级别的配置,可能需要sudo权限。但使用sudo可能会导致全局安装的问题,如引用[^1]中提到的,虽然不推荐长期使用,但在某些情况下临时使用可以解决问题。 还有可能路径中存在特殊字符或空格,导致解析错误。用户提供的镜像地址如果有未转义的特殊字符,可能会被系统错误地解析为路径的一部分,从而引发“No such file or directory”的错误。 接下来,我需要验证这些可能性。首先检查用户的命令是否正确,是否遗漏了镜像URL。然后检查.npmrc文件是否存在,用户是否有权限修改。如果文件不存在,可以手动创建;如果权限不足,可能需要使用sudo或者更改文件权限。此外,确保镜像地址的格式正确,没有多余的空格或特殊字符。 解决方案方面,分步骤处理:首先纠正命令格式,确保提供正确的镜像URL。如果问题依旧,检查并修复npm配置文件。如果权限不足,考虑使用sudo临时解决,但提醒用户长期使用可能的问题。最后,如果路径问题,确保地址正确无误。 用户可能需要更详细的步骤指导,比如如何定位.npmrc文件,如何修改权限,或者如何正确转义特殊字符。同时,根据引用[^2]中的例子,修改配置文件时需要注意语法和路径的正确性,避免配置错误导致其他问题。 最后,生成相关问题,帮助用户进一步理解npm配置和常见错误的解决方法,比如如何恢复默认镜像源,如何检查当前配置,以及权限问题的其他表现和解决方案。</think>### 解决方案 当在配置npm镜像源时出现`No such file or directory`错误,通常是由以下原因导致: #### 1. **命令格式错误** - **问题**:`npm config set registry`命令缺少镜像源地址参数,导致系统误将`registry`解析为文件路径而非配置项。 - **示例错误命令**: ```bash npm config set registry # 缺少镜像地址 ``` - **修复方法**:补充完整的镜像源地址(如阿里云镜像): ```bash npm config set registry https://registry.npmmirror.com/ ``` #### 2. **npm配置文件路径问题** - **问题**:npm的配置文件`.npmrc`可能未生成或路径权限不足。默认路径为: - 全局配置:`/etc/npmrc` - 用户配置:`~/.npmrc` - **修复方法**: 1. 手动创建配置文件: ```bash touch ~/.npmrc ``` 2. 赋予写入权限: ```bash chmod 644 ~/.npmrc ``` #### 3. **权限不足** - **问题**:当前用户对`.npmrc`文件或相关目录无写入权限。 - **临时解决方案**:使用`sudo`(不推荐长期使用,可能导致全局依赖冲突): ```bash sudo npm config set registry https://registry.npmmirror.com/ ``` - **推荐方案**:修复用户权限: ```bash sudo chown -R $USER:$USER ~/.npm ``` #### 4. **路径中存在特殊字符** - **问题**:镜像地址或路径中包含未转义的特殊字符(如空格或`$`)。 - **修复方法**:使用引号包裹地址: ```bash npm config set registry "https://registry.npmmirror.com/" ``` --- ### 验证配置是否生效 运行以下命令检查当前镜像源: ```bash npm config get registry ``` 若输出为`https://registry.npmmirror.com/`,则配置成功。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值