为什么在BIOS SATA模式为AHCI的情况下引导失败?


8

简而言之,我想为一些Jetway工程师和我自己弄清楚为什么他们给我提供的自定义BIOS不允许SATA设备以AHCI模式引导。

显然,很难考虑将其视为*自定义的个人简介,但希望我可以提供足够的细节,以便有人可以提供一些想法,因为我已经精疲力尽了。

该板是Jetway NF98。原始的传记说美国大趋势在顶部。我了解到,他们只是提供要编译的源代码(?或仅仅是徽标?),但是Jetway是配置和生成实际BIOS的人。所以我联系了捷波,他们提供了令人难以置信的帮助。我告诉了他们我的目标,他们正确地实现了目标,并提供了自定义的BIOS。

目标很简单,除了通过SATA端口0连接的磁盘之外,我还可以配置BIOS以拒绝其他任何介质。他们提供的功能几乎完全可以做到,除了它不可配置之外,它被设置为不允许引导除SATA Port 0之外的任何东西。

因此,我将SATA磁盘插入运行Crux Linux发行版的自定义版本,bios报告请连接磁盘,好像看不到磁盘一样(即使浏览bios设置显示磁盘已连接到端口0)。

经过一些调试后,我将SATA模式从AHCI更改为IDE。这样可以看到磁盘,但是引导仍然失败。这次,它变得更远了,并且在寻找根目录/时失败了。

首先,我有调试Linux引导的体面经验。此外,我使用NF98随附的标准BIOS对该系统进行了精确的复制(包括硬件和软件方面的信息)。因此,我可以拿起磁盘,在标准BIOS中启动它,一切都成功。当我将其放入自定义BIOS中时,不会成功。

经过进一步调试,这是我想知道的:

-使用SATA模式作为IDE

--Linux(crux)引导直到寻找根目录

-Vista启动成功

使用SATA模式作为AHCI

--Linux(crux)无法成功启动(更多,启动过程无法启动)

--Vista无法成功启动(更多,启动过程无法启动)

Crux OS的自定义内核略有过时,并使用initramfs(也是自定义的)。Jetway工程师建议升级内核,我认为还算足够,但这没有帮助。

然后我想我会尝试Arch Linux,它在IDE模式下也失败了,并且在AHCI中没有出现。这是一个3.0-ARCH内核。

接下来,最后,我再次安装了arch,但是这次将其安装到单个分区并使用了dev,而不是UUID或LABEL。在AHCI模式下,仍然看不到。在IDE模式下,转移到根目录仍然失败。

但是,当我选择Arch的后备启动菜单选项,并且SATA模式为IDE时,我将获得半成功启动。那是我进入登录提示符,但是在启动过程中有很多错误。我目前正在寻找与众不同的东西。

我对长文本表示歉意。是否有人对为什么或应该寻找帮助的原因有任何想法,为什么带有SATA Mode AHCI的自定义BIOS无法启动?


3
某些引导失败是预期的。如果操作系统以IDE模式安装,则切换到AHCI模式后无法启动该操作系统。您需要安装适当的磁盘驱动程序以进行引导,通常这不是一个可行的选择。也许liveCD可以做到这一点。通常,如果更改了磁盘模式,则必须完全重新安装OS
锯木屑2012年

Answers:


1

AHCI模式可能不适用于American Megatrends BIOS。我对技嘉GA-J1800N-D2H遇到了类似的问题,它看起来像具有Intel J1800 SoC的类似主板。我从可靠的CD-ROM中安装了带有xfce 32位的Linux Mint 17.2。安装完成后,它重新启动,但被消息“ ModemManager ...无法获取org.freedesktop.ModemManager1”卡在外壳中。尝试从HDD进行几次重新引导时,大多数时候我会掉入“(initramfs)”,或者陷入消息“ ata1.00:失败的命令:READ FPDMA”。抹完硬盘后,我重试了安装,这没有什么区别。

在经历了几次红鲱鱼之后,我尝试在BIOS中将SATA模式从AHCI更改为IDE,然后机器启动并完全关闭。为了确定,我前后走了几次。安装是在AHCI模式下执行的,但只能在IDE模式下启动和关闭。

BIOS的详细信息是:

ID:8A05AG03项目名称:J1800N-D2H版本:F4内置:2014/04/29 15:00:08

该板在IDE模式下的响应速度可以接受。


1

有几件事需要考虑,这可能会帮助遇到此问题的任何人。

  1. 当BIOS / EUFI处于EUFI(仅)模式时,未在BIOS / UEFI中检测到磁盘: UEFI BIOS仅看到GPT分区磁盘。如果看不到磁盘,则可能是旧的MBR分区磁盘。尝试在BIOS中选择传统模式以检测MBR磁盘,使用分区工具将磁盘模式更改为GPT,或完全清除磁盘(删除所有分区,清除MBR)。
  2. 当BIOS处于AHCI模式时,操作系统不会启动,但处于IDE模式时,BIOS会启动:切换AHCI / IDE之后,您的操作系统可能未安装AHCI或IDE驱动程序。例如,在Windows 7中,安装时的模式确定安装的驱动程序的类型。您可以使用 regedit设置HKLM / System / CurrentControlSet / Services / msahci / Start = 0和HKLM / System / CurrentControlSet / Services / pciide / Start = 0注册表项。每当您切换AHCI / IDE BIOS模式时,它将重新安装正确的驱动程序。

0

Windows(以及可能的其他操作系统)不会为AHCI模式安装SATA驱动程序,除非它在引导时处于活动状态。

要在Windows中解决此问题:-

以IDE(旧版)模式启动

  1. 运行注册表编辑器(regedit.exe)
  2. 导航到注册表项:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Msahci
  3. 将“开始”值设置为0(零)
  4. 导航到注册表项:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Pciide
  5. 将“开始”值设置为0(零)
  6. 关掉
  7. 再次启动,但在Windows启动之前进入BIOS配置

屏幕,然后将磁盘模式更改为“ AHCI”。保存新的BIOS配置并重新启动,以便Windows启动。Windows启动时,它将检测到更改,加载新的磁盘驱动程序,然后再重新启动一次以启动它们。

(来源-https://www.neowin.net/forum/topic/987378-how-to-switch-from-ide-to-ahci-without-repairingreinstalling-windows/

我确信您的系统上的Linux OS也会有类似的过程。

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.