为什么Ubuntu安装程序在安装过程中无法检测到硬盘?

我有一台新的计算机,内置了一个希捷ST500DM002 SATA内部硬盘。
我试图在上面安装Ubuntu 11.10 64位操作系统,但安装程序无法识别/检测/看到这个硬盘。当我到达“安装类型”步骤时,应该显示设备和分区的面板是空白的。
运行sudo fdisk -l只显示了/dev/sda1,也就是我用来运行安装的USB驱动器。我已经尝试了以下两个解决方案,但都没有成功:
1. 运行sudo apt-get remove dmraid 2. 在BIOS中将SATA模式从IDE切换为AHCI
我确定这不是硬件相关的问题,因为我已经成功在同一台计算机上安装了另一个操作系统。
下面是运行sudo lshw -class storage -class disk的输出内容:
  *-ide UNCLAIMED         
       description: IDE interface
       product: ASMedia Technology Inc.
       vendor: ASMedia Technology Inc.
       physical id: 0
       bus info: pci@0000:06:00.0
       version: 01
       width: 32 bits
       clock: 33MHz
       capabilities: ide msi pm pciexpress cap_list
       configuration: latency=0
       resources: ioport:d040(size=8) ioport:d030(size=4) ioport:d020(size=8) ioport:d010(size=4) ioport:d000(size=16) memory:fe400000-fe4001ff
  *-storage
       description: SATA controller
       product: 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller
       vendor: Intel Corporation
       physical id: 1f.2
       bus info: pci@0000:00:1f.2
       logical name: scsi1
       version: 05
       width: 32 bits
       clock: 66MHz
       capabilities: storage msi pm ahci_1.0 bus_master cap_list emulated
       configuration: driver=ahci latency=0
       resources: irq:44 ioport:f0b0(size=8) ioport:f0a0(size=4) ioport:f090(size=8) ioport:f080(size=4) ioport:f060(size=32) memory:fe705000-fe7057ff
     *-cdrom
          description: DVD-RAM writer
          product: DVDRAM GH22NS70
          vendor: HL-DT-ST
          physical id: 0.0.0
          bus info: scsi@1:0.0.0
          logical name: /dev/cdrom
          logical name: /dev/cdrw
          logical name: /dev/dvd
          logical name: /dev/dvdrw
          logical name: /dev/scd0
          logical name: /dev/sr0
          version: EX00
          capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
          configuration: ansiversion=5 status=nodisc
  *-scsi:0
       physical id: 1
       bus info: usb@1:1.2
       logical name: scsi6
       capabilities: emulated scsi-host
       configuration: driver=usb-storage
     *-disk
          description: SCSI Disk
          physical id: 0.0.0
          bus info: scsi@6:0.0.0
          logical name: /dev/sda
          size: 14GiB (16GB)
          capabilities: partitioned partitioned:dos
          configuration: signature=0004e5a4
  *-scsi:1
       physical id: 2
       bus info: usb@1:1.3
       logical name: scsi7
       capabilities: emulated scsi-host
       configuration: driver=usb-storage
     *-disk
          description: SCSI Disk
          product: Storage Device
          vendor: USB Mass
          physical id: 0.0.0
          bus info: scsi@7:0.0.0
          logical name: /dev/sdb
          capabilities: removable
        *-medium
             physical id: 0
             logical name: /dev/sdb

有什么主意可以解决这个问题吗?

你的主板是什么型号?它连接的SATA插口是哪个,也就是说,它是什么颜色并且位于什么位置? - Huckle
@Huckle 主板型号是ASRock H61M/U3S3。SATA 数据线是黑色的,插头是白色的,命名为 SATA3_0,并位于内存插槽附近。 - Marco Lackovic
7个回答

我遇到了完全相同的问题。我使用了相同的ASRock主板,并尝试了不同的Linux发行版,但都没有成功。最后,Ubuntu 12.10的live usb能够正确启动,但我的硬盘却无法被识别。
对我来说,解决办法是更换SATA连接器: 原本硬盘连接在SATA3_0连接器上,我将其更换到了其中一个SATA2连接器(具体来说是SATA2_1)。现在一切正常运作。我还没有检查Windows(安装在该硬盘的一个分区上)是否会因此出现问题。

作为解决办法,我进入了BIOS,并将SATA模式设置为"IDE",将SATA3模式设置为"AHCI"。在这样做之后,安装程序成功检测到了硬盘,并将Ubuntu与其他操作系统一起安装。
我称之为解决办法而不是修复,因为如果将SATA3模式设置为AHCI,其他操作系统将无法加载,所以每次我需要切换操作系统时,我都被迫进入BIOS并更改SATA3模式。
应用此解决办法后,我遇到的另一个问题是下次启动时引导加载程序没有显示出来,其他操作系统开始自动启动而没有任何提示。我通过识别Ubuntu分区来解决了这个问题:
sudo fdisk -l

(它是sda6)然后运行:
sudo mount /dev/sda6 /mnt
sudo grub-install --root-directory=/mnt/ /dev/sda

在我的情况下(Dell Latitude 5501),解决方案是在BIOS设置中将SATA选项从RAID更改为AHCI。

在我的情况下(ASUS W500G),将它从IntelStorage更改为AHCI有所帮助。 - alfC

当其他方法都失败时,对我来说解决办法就是在Windows上运行BIOS更新。
有一天晚上,我苦苦挣扎着想要在Windows 10旁边安装新的Ubuntu。安装程序始终找不到除了USB驱动器之外的其他磁盘。我尝试了所有在互联网上被认为可行的解决方案:
1. 禁用Windows快速启动(和休眠)。 2. 在BIOS中禁用安全启动。 3. 将SATA设置更改为ACHI。 4. 使用Windows工具删除Linux分区(以及我所有的个人数据)。
直到我决定在Windows上运行BIOS更新,这最终解决了问题。

2@Nmath 我觉得这个回答中的大部分信息都很有价值,因为它阐明了在解决这个问题时,mjkvaak建议尝试应用BIOS更新的条件。所以我认为删除这部分内容会彻底改变回答的本质,从而变成一个不同的回答,它敦促每个面临这个问题的人都考虑在Windows中应用BIOS更新,而不仅仅是那些其他解决方案无效的用户。 - Eliah Kagan

有些主板上的SATA接口使用不同的控制器。通常情况下,这些额外的接口用于eSATA、SATA3、SATA6等。当这些接口以较新的模式运行时,Ubuntu可能无法正确使用它们。将SATA接口切换并将模式更改为最通用的设置通常可以解决这类问题。

我在一台全新的笔记本电脑上遇到了问题。我必须关闭 RAID(无论如何也不使用 RAID),解决方法在此处

  1. 运行 MSCONFIG
  2. 启用安全模式(最小化)
  3. 重新启动进入 UEFI/BIOS 并更改为 AHCI
  4. 在安全模式下启动
  5. 运行 MSCONFIG 并禁用安全模式。
  6. 重启

之后内部硬盘驱动器被检测到。


非常感谢。现在我的Windows 10和Fedora都正常工作了。这是一个有效的解决方案。 - Reza Taba

只是为了其他可能遇到这个问题的人们,我遇到了同样的问题,但是这是因为我的Apple RAID卡。我不得不将其拆下来,拔掉iPass电缆并插入主板上,确保我使用的是SATA硬盘(而不是SAS硬盘),最后终于让Ubuntu安装程序识别到了硬盘。