Представьте себе такой сценарий.
Вы новичок, который имеет ограниченный опыт работы с Linux.
Вы недавно купили новый ноутбук с предустановленной Linux, например, Ubuntu.
Вы не уверены, является ли установленный диск SSD (твердотельный накопитель) или обычным HDD (жесткий диск).
Нет проблем!
Это краткое руководство научит вас, как определить, является ли диск SSD или HDD в операционных системах Linux.

Определяем типа диска, HDD или SSD

Начиная с версии ядра 2.6.29, операционные системы Linux могут автоматически обнаруживать SSD.
Есть несколько способов узнать, является ли диск SSD или HDD.
Здесь я покажу 7 различных методов.

Метод 1 — Проверьте, вращается ли диск

Как вы, возможно, уже знаете, традиционный жесткий диск (HDD) хранит данные на круговом диске, известном как диск. Когда диск вращается, движущаяся головка чтения / записи получит доступ к данным.

Чем быстрее диск вращается (вращается), тем быстрее работает жесткий диск.

С другой стороны, твердотельный накопитель (SDD) — это современная технология хранения данных и более быстрый тип накопителя, который хранит данные на мгновенно доступных микросхемах флэш-памяти.

В отличие от традиционных жестких дисков, твердотельные накопители не имеют движущихся частей, а твердотельные накопители не вращаются.

Поэтому, если вы хотите узнать, является ли установленный диск твердотельным или обычным жестким диском, просто проверьте, вращается ли диск, с помощью следующей команды:

$ cat /sys/block/sda/queue/rotational
Если вывод 1, диск является жестким диском.
Если вывод равен 0 (ноль), диск является SDD.
Потому что твердотельные накопители не будут вращаться.

Таким образом, выходной сигнал должен быть нулевым, если в вашей системе есть SSD.

Каждый диск имеет каталог в /sys/class/block/location. Таким образом, вы можете проверить и другие данные дисков.

$ cat /sys/block/sdb/queue/rotational
$ cat /sys/block/sdc/queue/rotational

Способ 2 — Использование команды lsblk

Команда lsblk читает файловую систему sysfs и базу данных udev для сбора информации обо всех доступных или указанных блочных устройствах.

Команда lsblk является частью пакета util-linux и поставляется с предустановленным большинством дистрибутивов Linux.

На случай, если команда lsblk недоступна, просто установите пакет util-linux с помощью диспетчера пакетов вашего дистрибутива.

Например, в системах на основе Arch вы можете установить его с помощью команды:

$ sudo pacman -S util-linux

На Debian подобных:

$ sudo apt install util-linux

На rpm системамх:

$ sudo yum install util-linux

На openSUSE:

$ sudo zypper install util-linux
Теперь найдите диск SSD или HDD с помощью команды:
$ lsblk -d -o name,rota

Вывод:

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

Здесь «rota» означает устройство вращения.

Если вы получите значение вращения в приведенном выше выводе как 1, диск является жестким диском.

Если значение равно 0 (ноль), то диск SSD.

Метод 3 — Использование инструментов мониторинга SMART

Другой способ определить, является ли диск SSD или HDD, использует команду smartctl.

Smartctl является частью пакета инструментов мониторинга S.M.A.R.T, который используется для контроля и мониторинга S.M.A.R.T.

Включены жесткие диски ATA и SCSI.

Чтобы установить средства мониторинга SMART в Arch Linux и его вариантах, выполните:

$ sudo pacman -S install smartmontools

На Debian, Ubuntu:

$ sudo apt install smartmontools

На RHEL, CentOS:

$ sudo yum install smartmontools

На openSUSE:

$ sudo zypper install smartmontools

После установки пакета smartmontools выполните следующую команду, чтобы определить, является ли диск SSD или HDD:

$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'

Если диск SSD, вы получите вывод, как показано ниже.

Rotation Rate:    Solid State Device

Если диск HDD, вы получите такой вывод:

Rotation Rate: 5400 rpm

Способ 4 — Использование dmesg + Google

Это не прямой подход к поиску типа диска.

В этом методе мы используем команду dmesg, чтобы найти модель диска, а затем Google детализирует эту информацию, чтобы определить, является ли диск SSD или HDD.

$ dmesg | grep -i -e scsi -e ata

Вы увидите название модели диска среди всех других деталей.

[...]
[ 1.845159] scsi 0:0:0:0: Direct-Access ATA ST9500325AS DEM1 PQ: 0 ANSI: 5
[...]

Просто прогуглите эту модель, чтобы найти детали диска.

Способ 5 — Использование деталей SCSI + Google

Это то же самое, что и вышеописанный метод.

Мы извлекаем модель диска из каталога /proc с помощью команды:

$ cat /proc/scsi/scsi

Вывод:

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

Просто прогуглите эту модель, чтобы найти детали диска.

Метод 6 — Использование Sg3-utils

Sg3-utils — это набор утилит для устройств, использующих набор команд SCSI.

Каждая утилита в этом пакете реализует одну команду SCSI.

Sg3-utils доступен в репозиториях по умолчанию Debian и Ubuntu.

Чтобы установить его в своей системе, просто запустите:

$ sudo apt install sg3-utils

Теперь проверьте Vital Product Data (VPD) для характеристик блочного устройства, выполнив следующую команду:

$ sudo sg_vpd --page=bdc /dev/sda

Вывод:

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
Пробегитесь по выводу.
Если выходные данные содержат эту строку — «Nominal rotation rate: 5400 rpm», это HDD.
У SSD вы, вероятно, увидите — «Non-rotating medium»

Метод 7 — Тест производительности доступа к диску

Найдите, является ли диск SSD или HDD, читая случайные блоки с диска, используя команду:

time for i in `seq 1 1000`; do
    dd bs=4k if=/dev/sda count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1;
done

Эта команда будет читать 1000 случайных блоков 4k из первых 16 ГБ диска.

Если ваш диск SSD, операция должна завершиться примерно через секунду.

Если диск является жестким диском, то для его завершения потребуется несколько секунд.

Это будет полезно для проверки дисков в вашем VPS.

Что делать, если есть несколько дисков?

Что если у меня два диска, один из которых SSD, а другой HDD?

Оба диска одинакового размера и от одного производителя.

Я не знаю, на каком диске установлен мой Linux.

В этом случае просто найдите, на каком диске находится корневая файловая система, с помощью следующей команды:

$ df / -h

Вывод:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       458G  341G   95G  79% /

Или используйте команду lshw, чтобы узнать больше о дисках:

$ sudo lshw -short -C disk

Вывод:

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
Как вы видите в приведенном выше выводе, моя корневая файловая система установлена в /dev/sda.
Теперь выполните любой из указанных выше способов, чтобы определить, является ли диск жестким или твердотельным.
Поделитесь статьей:

One thought on “🐧 Как определить, является ли диск SSD или HDD на Linux

  1. По сравнению с традиционными жёсткими дисками (HDD) твердотельные накопители имеют меньший размер и вес, являются беззвучными, а также многократно более устойчивы к повреждениям (например, к падению) и имеют гораздо бoльшую скорость записи. В то же время, они имеют в несколько раз бoльшую стоимость в расчете на гигабайт и меньшую износостойкость (ресурс записи).

Добавить комментарий