Immagina questo scenario. Sei un principiante che ha un'esperienza limitata con Linux. Di recente hai acquistato un nuovo laptop con preinstallato Linux, ad esempio Ubuntu. Non sei veramente sicuro se il disco installato è SSD (Solid State Drive) o un normale HDD (Hard Disk Drive). Nessun problema! Questa breve guida ti insegnerà come scoprire se il disco è SSD o HDD nei sistemi operativi Linux.
Trova se il disco è SSD o HDD in Linux
A partire dalla versione del kernel 2.6.29 , i sistemi operativi Linux possono rilevare automaticamente SSD. Ci sono alcuni modi per scoprire se il disco è SSD o HDD. Qui ho fornito 7 metodi.
Metodo 1:verifica se il disco è rotazionale
Come forse già saprai, il tradizionale Disco rigido (HDD) memorizza i dati su un disco circolare noto come piatto . Quando il disco gira, la testina di lettura/scrittura mobile accederà ai dati. Più velocemente il disco gira (ruota), più veloce funziona il disco rigido.
D'altra parte, Solid State Drive (SDD) è una moderna tecnologia di archiviazione e un tipo più veloce di unità disco che archivia i dati su chip di memoria flash immediatamente accessibili. A differenza degli HDD tradizionali, gli SSD non hanno parti mobili e gli SSD non ruotano .
Quindi, per scoprire se il disco installato è SSD o HDD normale, controlla se il disco è in rotazione usando il seguente comando:
$ cat /sys/block/sda/queue/rotational
Se l'output è 1 , il disco è HDD. Se l'output è 0 (zero), il disco è SDD. Perché gli SSD non ruoteranno. Quindi l'output dovrebbe essere zero se hai SSD nel tuo sistema.
Ogni unità ha una directory in /sys/class/block/ Posizione. Quindi puoi controllare anche i dettagli di altre unità.
$ cat /sys/block/sdb/queue/rotational
$ cat /sys/block/sdc/queue/rotational
Nota:
Se sei su una macchina virtuale guest KVM, la lettera di unità sarebbe vda . Il risultato varierà in base al tipo di autobus hai scelto durante la macchina virtuale. Ad esempio, se scegli SATA come tipo di bus per il disco virtuale, vedrai il seguente output:
$ cat /sys/block/vda/queue/rotational 1
Metodo 2:utilizzo del comando lsblk
Il lsblk il comando legge sysfs filesystem e udev db per raccogliere informazioni su tutti i dispositivi a blocchi disponibili o specificati. Il comando lsblk fa parte di util-linux pacchetto e viene preinstallato con la maggior parte delle distribuzioni Linux.
Nel caso in cui il comando lsblk non fosse disponibile, installa il pacchetto util-linux usando il gestore di pacchetti della tua distribuzione.
Ad esempio, su sistemi basati su Arch, puoi installarlo usando il comando:
$ sudo pacman -S util-linux
Su sistemi basati su Debian:
$ sudo apt install util-linux
Su sistemi basati su RPM:
$ sudo yum install util-linux
Su openSUSE:
$ sudo zypper install util-linux
Ora, trova se il disco è SSD o HDD usando il comando:
$ lsblk -d -o name,rota
Risultato di esempio:
NAME ROTA loop0 1 loop1 1 loop2 1 loop3 1 loop4 1 loop5 1 loop6 1 loop7 1 loop8 1 loop9 1 loop10 1 loop11 1 loop12 1 loop13 1 loop14 1 loop15 1 loop16 1 loop17 1 loop18 1 loop19 1 loop20 1 sda 1 sr0 1
Qui, "rota" significa dispositivo di rotazione . Se ottieni il valore della rotazione nell'output sopra come 1 , il disco è HDD. Se il valore è 0 (zero) , il disco è SSD.
Metodo 3:utilizzo degli strumenti di monitoraggio SMART
L'altro modo per scoprire se il disco è SSD o HDD utilizza smartctl comando. Lo smartctl fa parte del pacchetto di strumenti di monitoraggio S.M.A.R.T, che viene utilizzato per controllare e monitorare S.M.A.R.T. dischi rigidi ATA e SCSI abilitati.
Per installare gli strumenti di monitoraggio SMART su Arch Linux e le sue varianti, eseguire:
$ sudo pacman -S install smartmontools
Su Debian, Ubuntu:
$ sudo apt install smartmontools
Su RHEL, CentOS:
$ sudo yum install smartmontools
Su openSUSE:
$ sudo zypper install smartmontools
Dopo aver installato il pacchetto smartmontools, eseguire il comando seguente per scoprire se il disco è SSD o HDD:
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
Se il disco è SSD, otterrai un output come di seguito.
Rotation Rate: Solid State Device
Se il disco è HDD, otterrai questo output:
Rotation Rate: 5400 rpm
Metodo 4 - Utilizzo di dmesg + Google
Questo non è un approccio diretto per trovare il tipo di disco. In questo metodo, utilizziamo dmesg comando per trovare il modello del disco e quindi cercare su Google i dettagli per scoprire se il disco è SSD o HDD.
$ dmesg | grep -i -e scsi -e ata
Vedrai il nome del modello del disco tra tutti gli altri dettagli.
[...] [ 1.845159] scsi 0:0:0:0: Direct-Access ATA ST9500325AS DEM1 PQ: 0 ANSI: 5 [...]
Basta cercare su Google questo modello per trovare i dettagli del disco.
Metodo 5:utilizzo dei dettagli SCSI + Google
Questo è lo stesso del metodo sopra. Recuperiamo il modello del disco da /proc directory usando il comando:
$ cat /proc/scsi/scsi
Risultato di esempio:
Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST9500325AS Rev: DEM1 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi4 Channel: 00 Id: 00 Lun: 00 Vendor: PLDS Model: DVD+-RW DS-8A8SH Rev: KD11 Type: CD-ROM ANSI SCSI revision: 05 Host: scsi6 Channel: 00 Id: 00 Lun: 00 Vendor: Generic- Model: Multi-Card Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 00
E poi Google i dettagli per sapere se il disco è SSD o HDD.
Metodo 6:utilizzo di Sg3-utils
Utilità Sg3 è una raccolta di utilità per i dispositivi che utilizzano il set di comandi SCSI. Ciascuna utilità in questo pacchetto implementa un comando SCSI.
Sg3-utils è disponibile nei repository predefiniti di Debian e Ubuntu. Per installarlo sul tuo sistema, esegui semplicemente:
$ sudo apt install sg3-utils
Ora, controlla i dati vitali del prodotto (VPD) per le caratteristiche del dispositivo a blocchi eseguendo il comando seguente:
$ sudo sg_vpd --page=bdc /dev/sda
Risultato di esempio:
Block device characteristics VPD page (SBC): Nominal rotation rate: 5400 rpm Product type: Not specified WABEREQ=0 WACEREQ=0 Nominal form factor not reported ZONED=0 BOCS=0 FUAB=0 VBULS=0
Passa attraverso l'output. Se l'output contiene questa riga - "Tasso di rotazione nominale:5400 giri/min" , è HDD. Per SSD, probabilmente vedresti - "Mezzo non rotante" .
Metodo 7:benchmark delle prestazioni di accesso al disco
Trova se il disco è SSD o HDD leggendo blocchi casuali dal disco usando il comando:
time for i in `seq 1 1000`; do dd bs=4k if=/dev/sda count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1; done
Questo comando leggerà 1000 blocchi casuali da 4k dai primi 16 GB di un disco.
Se il tuo disco è SSD, l'operazione dovrebbe essere completata in circa un secondo . Se il disco è HDD, ci vorranno alcuni secondi per il completamento.
Questo sarà utile per controllare i dischi nel tuo VPS. Se stai utilizzando un VPS e vuoi verificare se il provider di hosting ti ha fornito SSD o HDD, questo è un modo per scoprirlo!
Cosa succede se ci sono più dischi?
Cosa succede se ho due dischi, uno è SSD e un altro è HDD? Entrambi i dischi sono della stessa dimensione e dello stesso produttore. Non so su quale disco sia installato il mio Linux. In tal caso, trova semplicemente su quale disco si trova il filesystem di root usando il seguente comando:
$ df / -h
Risultato di esempio:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 458G 341G 95G 79% /
In alternativa, usa lshw comando per trovare maggiori dettagli sui dischi:
$ sudo lshw -short -C disk
Risultato di esempio:
H/W path Device Class Description ==================================================================== /0/100/1d/1/1/6/0.0.0 /dev/sdb disk Multi-Card /0/100/1d/1/1/6/0.0.0/0 /dev/sdb disk /0/1/0.0.0 /dev/sda disk 500GB ST9500325AS /0/2/0.0.0 /dev/cdrom disk DVD+-RW DS-8A8SH
Come puoi vedere nell'output sopra, il mio filesystem di root è installato in /dev/sda . Ora segui uno dei metodi precedenti per scoprire se il disco è HDD o SSD.
Nota:
In alcuni nuovi laptop come Lenovo ideapad s240 , vedrai un nome di dispositivo diverso, ad esempio nvme0n1 . Vediamo l'elenco dei dispositivi a blocchi disponibili usando il comando:
$ ls /sys/block
Risultato di esempio:
loop0 loop11 loop14 loop17 loop2 loop3 loop6 loop9 loop1 loop12 loop15 loop18 loop20 loop4 loop7 nvme0n1 loop10 loop13 loop16 loop19 loop21 loop5 loop8
Scopriamo su quale disco si trova il filesystem di root:
$ df / -h
Risultato di esempio:
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p6 96G 34G 58G 34% /
Come puoi vedere negli output sopra, non c'è sda o sdb . Niente panico! E 'normale. Il /dev/nvme ... il nome del dispositivo indica NVMe più recente "dischi". Se il disco è collegato tramite una porta NVM Express anziché una porta SATA o SAS tradizionale, vedrai un nome di dispositivo diverso come mostrato nell'output sopra.
Qui, /dev/nvme0n1 è equivalente a /dev/sda . Quindi, /dev/nvme0n1p6 è equivalente a /dev/sda6 .
Lettura consigliata:
- Come trovare le specifiche hardware su Linux
- Come verificare se un sistema Linux è una macchina fisica o virtuale
- Come verificare se un sistema Linux è a 32 o 64 bit
- Come scoprire se una CPU supporta la tecnologia di virtualizzazione (VT)
Questi sono alcuni metodi per scoprire se il disco è SSD o HDD in Linux. Spero sia stato utile.
Icona SSD Immagine di PagDev da Pixabay
Icona Hdd Immagine di Clker-Free-Vector-Images da Pixabay