Como posso saber se meu disco rígido é PATA ou SATA?


8

Eu tenho um disco rígido ATA no meu laptop, executando o Fedora 11, kernel 2.6.30.10-105.2.23.fc11.i586. Estou procurando atualizar o disco aqui (gostaria de obter um SSD), mas esqueci se é um ATA serial ou uma interface ATA paralela antiga. Não adianta atualizar para um SSD se for PATA ...

Como posso saber se o disco está conectado através de uma interface PATA ou SATA?

Respostas:


7

Para ver a descrição do dispositivo do controlador (assumindo um controlador interno (PCI)), que geralmente contém SATA para controladores SATA:

lspci -d $(cat /sys/block/sda/device/../../../vendor):$(cat /sys/block/sda/device/../../../device)

Se você deseja digitar menos, apenas procurar na saída lspciprovavelmente fornecerá a resposta em um laptop (muitos desktops têm os dois tipos de interface, portanto, você deve procurar a unidade na qual está interessado).

Se isso não lhe der a resposta, para ver qual driver está fornecendo sda(você pode verificar se esse driver é para um controlador PATA ou SATA):

readlink -f /sys/block/sda/device/../../../driver

Incrível, obrigado! O primeiro comando me confundiu, mas o segundo foi bem produzido /sys/bus/pci/drivers/pata_amd!
Josh

@Gilles - Procurando essas informações em 2018, as opções acima não funcionam (pelo menos no meu sistema Arch Linux). Os caminhos não existem (nenhum vendorarquivo, etc).
starfry

@starfry Em que ônibus está? Acho que minha resposta funciona para qualquer kernel Linux não antigo, mas não funcionaria para dispositivos que não estejam conectados a um controlador ATA que esteja em um barramento PCI. Por exemplo, não tenho certeza se funcionaria para um SSD, dependendo do tipo de controlador.
Gilles 'SO- stop be evil'

kernel 4.15.3-2-ARCH, exemplo de dispositivo pci-0000:00:1f.2-ata-1 . Fazendo ls /sys/block/sdc/device/../../../rendimentos ata_port firmware_node host2 link3 power uevent. Todos os discos rígidos rotativos normais em portas SATA padrão em uma placa-mãe 2009 i7.
starfry

1

Atualização : Para constar, a resposta do @Gilles é melhor.

Se for uma unidade PATA (ide), você verá abaixo /proc/ide. Aqui está minha unidade de DVD IDE, por exemplo, aqui está minha saída:

$ cat /proc/ide/hdb/model 
Optiarc CDRWDVD CRX890A

Se for uma unidade SATA, será exibida em /proc/scsi. Você pode se surpreender ao encontrá-lo em 'scsi'. Esqueço o motivo exato (vou fazer isso em outra pergunta), mas acho que é porque o SATA usa os drivers SCSI.

Aqui está uma lista mostrando uma unidade SATA no meu sistema:

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD2500AAJS-6 Rev: 01.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05

3
Isso nem sempre é confiável: dependendo do driver, versão do kernel e opções de compilação do kernel, alguns drivers SATA podem aparecer como ide e alguns drivers PATA podem aparecer como scsi. Os kernels modernos tendem a fazer com que todos os drivers falem scsi com a camada de disco genérica, e é isso que você vê aqui.
Gilles 'SO- stop be evil'

Sim, desculpe Stefan, a unidade está listada em /proc/scsi/scsi, na verdade, meu sistema nem sequer possui /proc/ide... ainda, de acordo com a resposta de Gilles, parece que a unidade é realmente IDE.
Josh

0

Você pode perguntar ao udev:

$ udevadm info -q property /dev/sda | grep -Ee '^ID_(BUS|ATA_SATA)='

Se esse comando for emitido ID_ATA_SATA=1, sua unidade é uma unidade SATA (nativa). Se não, mas produz ID_BUS=ata, sua unidade é uma unidade PATA. Se não houver saída, sua unidade é outra coisa.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.