如何重置Intel SATA控制器ROM?


0

我最近尝试在AHCI模式下安装Windows Vista。我怀疑这次冒险在某种程度上使得内置的英特尔SATA控制器无法在AHCI模式下运行。我开始使用干净(零填充)SATA HDD,并在系统BIOS设置中启用AHCI for Intel控制器。我使用Diskpart在Windows Vista安装程序中对HDD进行了分区。

我试图将它安装到逻辑分​​区(即逻辑驱动器,逻辑卷),如下所示。

  • 500 MB主要,有效
  • 40000 MB扩展
  • 40000 MB逻辑

但是Windows拒绝接受这个分区。它将启动,然后暂停并返回错误消息。

Windows无法确定此计算机是否包含有效的系统卷。

允许我单击“ 下一步”开始安装就足够了。但显然,这还不够好。在网上搜索后,我了解到它与BIOS启动设备命令和Windows Vista安装程序无法正确处理USB闪存驱动器的安装有关。我使用USB闪存驱动器进行安装,使用Windows 7 USB / DVD下载工具创建。

所以我在BIOS中更改了启动顺序,如下所示。

Device boot order from...

Floppy
Hard disk
CD-ROM

To...

Hard disk
Disabled
USB-HDD

And hard disk boot priority from...

Seagate disk
Seagate disk
Kingston USB
WD disk
WD disk
Bootable add-in card

To...

Seagate disk
Seagate disk
WD disk
WD disk
Bootable add-in card
Kingston USB

回到Windows Vista安装程序,我使用Diskpart来清理硬盘。然后我决定给主分区一些更多的空间,只是为了好的措施。所以我有以下分区。

  • 1000 MB主要,有效
  • 40000 MB扩展
  • 40000 MB逻辑

安装在逻辑分区上启动。所以我离开电脑,以为现在好了。但是当我回来时,又停止了另一个错误。

Windows无法复制安装所需的文件。确保安装所需的所有文件都可用,然后重新启动安装。错误代码:0x80070070

我又试了一次。我再次使用Diskpart来清理磁盘。然后我增加了主分区的大小如下。

  • 4000 MB主要,活动
  • 40000 MB扩展
  • 40000 MB逻辑

然后我再次开始安装。这次我没有遇到任何错误。它完成了所有步骤:复制文件,扩展文件,安装功能,安装更新,完成安装。然后计算机重新启动,然后在下一行之后立即停止。

Serial ATA AHCI BIOS, Version iSrc 1.20E
Copyright (c) 2003-2008 Intel Corporation
** This version supports only Hard Disk and CDROM drives **
Please wait. This will take few seconds.

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
_

我怀疑Windows Vista安装程序在安装过程中遇到了第一个错误,因为它无法使用AHCI模式安装到HDD,在此模式下它已经以某种方式重置了AHCI设置,然后我能够第二次安装它而没有错误因为我的BIOS已恢复到IDE模式。

按下计算机上的“重置”按钮使其立即关闭!然后我再次启动,经过POST屏幕,然后在同一行再次停止。按Ctrl + Alt + Del重新启动然后按DEL键进入BIOS设置不会让我进入设置屏幕。它被卡在同一条线上,我无法超越它。

现在,我已经完成了清除CMOS的所有常规步骤。通过该屏幕的唯一方法是使用主板上的跳线针清除CMOS。这是因为我无法进入BIOS设置以加载默认设置。此外,一旦SATA模式设置为Disabled(IDE),我就可以通过AHCI BIOS屏幕并实际返回到Windows Vista安装。安装甚至完成。但是,如果我返回BIOS设置并再次启用AHCI,它将再次停在同一行。

通过AHCI BIOS屏幕和卡住线路的另一种方法是断开硬盘与SATA端口的连接。但当然,我无法启动任何事情。我的意思是如果我将SATA模式设置为Disabled(IDE),我至少可以启动进入Windows Vista。

我尝试将硬盘连接到另一个端口,我也断开了所有其他硬盘驱动器的连接。我从0到5逐个测试了每个端口。实际上出现了一个有趣的模式,其中每个先前扫描的SATA端口(从当前连接的端口开始)出现“找不到设备”的行。

在SATA端口0上使用HDD ...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
_

在SATA端口1上使用HDD ...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected

在SATA端口2上使用HDD ......

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected

在SATA端口3上使用HDD ......

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected
  Port-02: No device detected

使用SATA端口4上的HDD ...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected
  Port-02: No device detected
  Port-03: No device detected

在SATA端口5上使用HDD ......

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected
  Port-02: No device detected
  Port-03: No device detected
  Port-04: No device detected

正如您所知,它暂停在正在扫描的端口上。然后,如果我断开硬盘驱动器,我得到这个有趣的错误。

Controller Bus#00, Device#1F, Function#02: 06 Ports
  No device found
  AHCI BIOS not installed

AHCI BIOS未安装

我说有趣,因为它清楚地说明我在使用“串行ATA AHCI BIOS,版本iSrc 1.20E”的第一行。但是设备扫描由于某种原因失败了。也许这就是我看到“AHCI BIOS未安装”错误的原因?我已经阅读了十几个关于此错误类型的网页,但没有找到任何结论。有人说这很正常。但是对于其中一个,我知道它在我的其他主板上安装了“AHCI BIOS”,一个来自同一制造商和一代,它也使用Award BIOS。

我确信打印出“未安装AHCI BIOS”是有原因的。可能并不是BIOS程序员认为这是一个有趣的恶作剧,让用户认为系统在运行正常时(即消息是“正常”)有问题。它可能比我们大多数人关心的更多,因为它需要大量的时间进行调查,并且需要普通用户不具备的知识水平。另一方面,BIOS供应商和电路板设计人员并不关心维护旧的BIOS固件超过2年或3年(有时这比最昂贵的电路板的保修时间短)。相反,他们转向“下一件大事”并期望你每年都会继续购买新硬件。

如果我将HDD连接到Gigabyte SATA控制器,则会显示相同的消息(未安装AHCI BIOS)。我过了那个屏幕。但这只是因为Gigabyte SATA控制器设置为IDE模式,而Windows Vista加载。

有没有办法单独重置或重新刷新SATA控制器ROM?除了主系统BIOS?究竟什么是“AHCI BIOS”呢?它是否像BIOS扩展?它是主系统BIOS代码的一部分吗?它存储在同一个闪存芯片中吗?

另外,您对此有何看法以及您对此类问题的体验是什么?

截图


一个 b C d Ë

更新1


我检查了驱动程序并启用了pciide.sys,就像msahci.sys一样。但iastorv.sys不是。我已测试启用它并在BIOS设置中启用Intel AHCI。它没有帮助。它仍然停留在AHCI BIOS设备检测。

更新2


启用相同的驱动程序(pciide.sys,msahci.sys,iastorv.sys)后,我测试了连接到Gigabyte SATA控制器并在BIOS设置中启用了AHCI。Windows Vista开始加载并且进度条出现了,但很快就遇到了BSOD并重新启动。它只是像那样循环。

F

我测试了禁用iastorv.sys并仅启用了msahci.sys(和pciide.sys)。它确实有效!

G

一些网络论坛会告诉你在Windows(iastor.sys,iastorv.sys,msahci.sys)中启用所有AHCI相关驱动程序,以便在AHCI和IDE之间轻松切换(在大多数安装中,pciide.sys通常默认启用,为了兼容性我猜)。但正如您所看到的,禁用其中一个或所有未使用且不打算使用的驱动程序有时更明智。

虽然这是一个不同的SATA控制器(不是英特尔),但我开始认为这可能与驱动程序有关。

更新3


技嘉控制器......

我现在已经安装了Gigabyte SATA控制器的官方驱动程序。它的版本是1.17.50.2。设备管理器现在显示以下两个设备描述。

  • JMB36X标准双通道PCIE IDE控制器
  • GIGABYTE GBB36X控制器

它似乎基于JMicron芯片。

H

英特尔SATA控制器列为标准AHCI 1.0串行ATA控制器。忽略它旁边的感叹号。这只是因为我禁用了它正在使用的msahci.sys驱动程序,所以它在抱怨。但我在IDE模式下从Gigabyte控制器运行Windows Vista,所以没关系。我在重新启动之前再次启用它。

所以我重新启动并为Gigabyte控制器和正常加载的Windows Vista启用了AHCI模式。什么都没有问题。我可以自信地说,Gigabyte控制器可以在IDE和AHCI(RAID未经测试,但预计当然可以工作)模式下工作,使用Microsoft通用AHCI驱动程序(msahci.sys)或Gigabyte控制器特定驱动程序(jraid.sys) ,这是一个真正的JMicron驱动程序。

请注意,iastorv.sys驱动程序之前与msahci.sys驱动程序冲突,当我测试它们都已启用并使用AHCI中的Gigabyte控制器启动到Windows时,我得到了BSOD一巴掌。我没有测试过,也不关心用新驱动程序测试这个。也许现在已经解决了,也许不是。关键是,如果在AHCI(甚至是RAID)中使用Gigabyte控制器,最好禁用iastorv.sys。

Intel控制器......

那个该死的英特尔控制器怎么样?它会xor还是不会xor?就是那个问题!

在成功测试技嘉控制器之后,是英特尔控制器的时候了。我开始启用pciide.sys,启用msahci.sys,禁用 iastorv.sys 。我用f6flpy6489.zip包来手动安装驱动程序。驱动程序版本是8.9.0.1023。新驱动程序名为iastor.sys,名称中没有V.

“标准AHCI 1.0串行ATA控制器”描述在设备管理器中更改为英特尔(R)ICH9R / DO / DH SATA AHCI控制器。

一世 Ĵ ķ

我真的希望这会奏效。但事实并非如此。我打开电脑并将硬盘连接到英特尔控制器上的SATA端口1,打开电源并再次将BIOS模式更改为BIOS中的AHCI。但我回到了同样该死的“没有检测到设备”的屏幕上,无法通过它。

所以问题依然存在。这是否表示负责英特尔控制器上AHCI功能的ROM已损坏或以其他方式损坏?虽然看起来好像只有AHCI功能已经无法操作,但控制器仍在工作。虽然在IDE模式下,但它仍在工作,这比完全烘烤更好。

知识渊博的人请发布一个答案,其中包含有关英特尔控制器的实际ROM所在位置的信息吗?英特尔矩阵存储有自己的选项ROM,不是吗?此外,是否可以使用一些低级系统实用程序从这个问题中恢复,而不必删除一个或多个芯片并重新编程它们甚至用新的芯片替换它们?

值得思考的东西......

关于发生的事情,我最好的猜测是备份BIOS已经开始并将其自身部分复制到主BIOS上,并且在此过程中以某种方式脱离甚至损坏了英特尔AHCI / RAID选项ROM。

我想这可能是在系统启动时发生的,在Windows Vista向我发出的第一个或第二个错误之后,我改变了设备启动顺序以诱骗Vista从USB闪存驱动器安装到SATA上硬盘(见0x80070070)。

当我第一次遇到“控制器总线...”设备扫描屏幕的问题时,在按下“重置”按钮后系统立即关闭时,它就发生了。通常,从那以后(我一直在观察)它通常只是重新启动,即使我按下重置按钮或给它三指致敬(Ctrl + Alt + Del),它也不会在该阶段断电。

无论如何!现在我考虑一下,在这种情况下,首先启用IDE模式并在该模式下安装Windows Vista可能会更好。甚至可能使用DVD媒体进行安装,而不是使用USB闪存驱动器。然后在安装完成后,登录Windows并启用AHCI驱动程序,重新启动并在BIOS中启用AHCI模式。这可能是有效的。在这种情况下,它可能是更好的方法,它本来希望这样做。这与大多数人建议您首先在BIOS中启用AHCI的常见方法形成对比,如果您尚未安装Windows。我不应该这样做。

我希望这可以作为其他人的教训。我会做更多的调查,但我不想在此上花太多时间。除非我能以某种方式将所有内容重置为正常,否则我认为可以说英特尔控制器上的AHCI模式现在无法运行。


**有没有办法单独重置或重新刷新SATA控制器ROM?** - 没有,但即使你可以,控制器的ROM也没有被修改。
Ramhound 2015年

那你又怎么做呢?
萨米尔2015年

有这个SATA控制器的电脑是否带有Vista?
Ramhound 2015年

不,它没有。它是定制的。两个SATA控制器都是主板设计的一部分。一个是英特尔芯片组的一部分,另一个是技嘉嵌入的另外两个端口。
萨米尔2015年

你忘了一个问号。;-)我能说什么......我是一个多重瘾君子。我不主动使用Vista作为主要操作系统。iastorv.sys随Vista一起提供,很有可能它应该通过Intel的Matrix RAID和AHCI运行OOB。这是ICH9R,所以是的...那个老了。
萨米尔2015年

Answers:


2

我有确切的症状描述。我会遇到SATA AHCI iSrc挂起,如果我删除了驱动器,它就不会挂起。

解决方法是擦除驱动器上的签名。我通过以下步骤完成了这项工作。

注意:擦除签名将删除所有分区,并有效删除磁盘上的所有数据。这样做之后你的数据就会消失。谨慎行事。

  1. 拔下驱动器
  2. 插入带有可引导Linux“live”ISO的USB驱动器
  3. 启动到Linux ISO
  4. 在引导过程开始时,将驱动器插入
  5. 运行以下命令以查看要擦除的驱动器: lsblk
  6. 运行以下命令擦除驱动器(用上面找到的驱动器号替换X): wipefs -a /dev/sdX
  7. 对需要擦除的所有驱动器重复步骤6。
  8. 重启

重新启动后,我不再遇到挂起,我能够成功安装并启动这些驱动器。所以它似乎是驱动器上的一些签名导致挂起。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.