Mendaftarkan port SATA yang tidak digunakan di Linux

18

Saya memiliki mesin fisik yang menjalankan Linux (CentOS 6.3, khususnya), dan saya ingin tahu berapa banyak port SATA yang saat ini tidak digunakan (yaitu tidak ada yang terpasang). Tentu saja, saya hanya bisa menarik mesin terbuka, tetapi katakanlah saya tidak memiliki akses fisik. Apakah ada perintah yang bisa saya gunakan untuk menunjukkan port SATA mana yang tidak digunakan?

Saya sudah tahu tentang lshwperintah itu, tetapi sejauh yang saya tahu, itu hanya mencantumkan port SATA yang digunakan dan bukan yang gratis.

coledot
sumber

Jawaban:

5

Apakah ada perintah yang bisa saya gunakan untuk menunjukkan port SATA mana yang tidak digunakan?

Tidak, tetapi Anda bisa melakukan yang sebaliknya. Anda dapat membuat daftar port mana yang sedang digunakan. Kemudian cari (dalam manual) berapa banyak port yang ada pada motherboard, kurangi berapa banyak yang sudah digunakan dan dapatkan jumlah port yang tersisa.

Ini mengasumsikan bahwa Anda memiliki satu drive SATA yang terhubung per konektor SATA (mis. Tidak ada pengganda port ).


Ada beberapa cara untuk ini.

Jika semua pengontrol SATA memiliki driver dimuat (cukup normal), maka saya menemukan fdisk -ldaftar semua disk cara termudah.

Jika Anda tidak lagi memiliki fdisk (sedang diganti varian saya yang lebih modern seperti gpart), maka Anda dapat membaca log boot. Beberapa googling menunjukkan bahwa CentOS menyediakan ini melalui dmesg , tetapi Anda juga dapat membaca file log secara langsung. Mungkin ada di /var/log/dmesg.log, /var/run/dmesg.boot atau di / var / log / boot. (Menjaga ini sedikit generik untuk orang yang tidak menggunakan CentOS).

Lalu ada lspci. Ini mencantumkan semua perangkat PCI dan PCI-e, termasuk pengontrol SATA. Tambahkan -vuntuk mendapatkan hasil yang lebih mudah dibaca.

Atau gunakan dmidecode. Ini meminta BIOS untuk informasi. Jika output dari perintah ini tampak luar biasa, batasi dengan -t NRopsi.

Hennes
sumber
Kombinasi lspcidan spesifikasi motherboard yang relevan memberikan informasi yang saya butuhkan. Terima kasih.
coledot
21

Sudah tiga tahun, tetapi jika seseorang datang melalui Google, begini: Jika Anda mengaktifkan EPEL, lalu instal lsscsi , sebagian besar memberikan info tentang perangkat yang terhubung, tetapi parameter -H adalah yang Anda butuhkan:

--hosts | -H daftar host scsi daripada perangkat scsi

Bandingkan dengan mode keluaran lain dan Anda memiliki perbedaan:

root@server1:~# lsscsi -H
[0]    ata_piix  
[1]    ata_piix  
[2]    ata_piix  
[3]    ata_piix  
[4]    usb-storage
root@server1:~# lsscsi -g
[0:0:0:0]    disk    ATA      WDC WD2004FBYZ-0 RR03  /dev/sda   /dev/sg0
[0:0:1:0]    disk    ATA      WDC WD2004FBYZ-0 RR04  /dev/sdb   /dev/sg1
[1:0:0:0]    disk    ATA      WDC WD2004FBYZ-0 RR03  /dev/sdc   /dev/sg2
[4:0:0:0]    disk    Seagate  Backup+  Desk    0342  /dev/sdd   /dev/sg3

UPDATE: Abaikan itu, tanpa menginstal apa pun:

dmesg | grep 'SATA link down'

akan menunjukkan port yang tidak digunakan.

krigl
sumber
Terima kasih, sangat berguna. Ia bekerja juga di Ubuntu ( lsscsitermasuk dalam repositori default, setidaknya dari 16,04 LTS).
gerlos