Как узнать, является ли диск SSD или HDD в Linux
Проверка типа диска — SSD или HDD в Linux
Представьте себе этот сценарий. Вы новичок и имеете ограниченный опыт работы с Linux. Недавно вы купили новый ноутбук с предустановленной ОС Linux, например Ubuntu. Вы не совсем уверены, является ли установленный диск SSD (твердотельный накопитель) или обычным жестким диском (жесткий диск). Без проблем! Это краткое руководство научит вас, как определить, является ли диск SSD или HDD в операционных системах Linux.
Жесткий диск (HDD) против твердотельного накопителя (SSD)
Прежде чем углубляться в эту тему, важно знать разницу между HDD и SSD.
Как вы, возможно, уже знаете, традиционный Жесткий диск (HDD) хранит данные на круглом диске, известном как пластина. Когда диск вращается, движущаяся головка чтения/записи получает доступ к данным. Чем быстрее вращается диск, тем быстрее работает жесткий диск.
С другой стороны, Твердотельный накопитель (SDD) — это современная технология хранения данных и более быстрый тип диска, который хранит данные на микросхемах флэш-памяти с мгновенным доступом. В отличие от традиционных жестких дисков, твердотельные накопители не имеют движущихся частей и твердотельные накопители не вращаются.
Узнайте, является ли диск SSD или HDD в Linux
Начиная с версии ядра 2.6.29, операционные системы Linux могут автоматически обнаруживать SSD. Есть несколько способов узнать, является ли диск SSD или HDD. Здесь мы дали 7 методов.
Способ 1 — проверьте, является ли диск ротационным
Чтобы узнать, является ли установленный диск SSD или обычным жестким диском, просто проверьте, вращается ли диск, с помощью следующей команды:
cat /sys/block/sda/queue/rotational
Если выходной сигнал равен 1, это HDD. Если вывод равен 0 (ноль), это SDD-диск. Потому что SSD не вращаются. Таким образом, результат должен быть нулевым, если в вашей системе есть SSD.
У каждого диска есть каталог в расположении /sys/class/block/. Таким образом, вы также можете проверить информацию о других дисках.
cat /sys/block/sdb/queue/rotational
cat /sys/block/sdc/queue/rotational
Внимание: Если вы используете гостевую виртуальную машину KVM, буква диска будет vda. Результат будет зависеть от типа шины, выбранного вами при работе с виртуальной машиной. Например, если вы выберете SATA в качестве типа шины для виртуального диска, вы увидите следующий вывод:
cat /sys/block/vda/queue/rotational
1
Способ 2 — использование команды lsblk
Команда lsblk считывает файловую систему sysfs и udev db для сбора информации обо всех доступных или указанных блочных устройствах. Команда 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
Здесь «рота» означает устройство вращения. Если вы получили значение ротации в приведенном выше выводе как 1, это HDD. Если значение 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
В Дебиане, Убунту:
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, чтобы найти модель диска, а затем гуглим подробности, чтобы определить, является ли диск 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
А затем введите в Google информацию, чтобы узнать, является ли диск SSD или HDD.
Способ 6 — Использование Sg3-utils
Sg3-utils — это набор утилит для устройств, использующих набор команд SCSI. Каждая утилита в этом пакете реализует одну команду SCSI.
Sg3-utils доступен в репозиториях Debian и Ubuntu по умолчанию. Чтобы установить его в свою систему, просто запустите:
sudo apt install sg3-utils
Теперь проверьте наличие важных данных о продукте (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
Пройдите вывод. Если в выводе присутствует строка "Номинальная скорость вращения: 5400 об/мин", то это HDD. Для SSD вы, вероятно, увидите - "Невращающийся носитель".
Метод 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 случайных блоков по 4 КБ из первых 16 ГБ диска.
Если у вас твердотельный диск, операция должна завершиться примерно через секунду. Если диск HDD, то для завершения потребуется несколько секунд.
Это будет полезно для проверки дисков на вашем VPS. Если вы используете VPS и хотите проверить, предоставил ли вам хостинг-провайдер SSD или HDD, это один из способов узнать это!
Что делать, если дисков несколько?
Что делать, если у меня два диска: один 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. Теперь следуйте любому из вышеперечисленных методов, чтобы определить, является ли диск жестким или твердотельным.
Примечание:
На некоторых новых настольных компьютерах и ноутбуках, таких как Intel NUC или Lenovo ideapad s240, вы увидите другое имя устройства, например nvme0n1.
Просмотрим список доступных блочных устройств с помощью команды:
ls /sys/block
Пример вывода:
loop0 loop11 loop14 loop17 loop2 loop3 loop6 loop9
loop1 loop12 loop15 loop18 loop20 loop4 loop7 nvme0n1
loop10 loop13 loop16 loop19 loop21 loop5 loop8
Выясним, на каком диске расположена корневая файловая система:
df / -h
Пример вывода:
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 456G 288G 146G 67% /
Просмотр использования дискового пространства системы
Как видно из приведенных выше результатов, sda или sdb не существует. Не паникуйте! Это нормально. Имя устройства /dev/nvme... указывает на более новые «диски» NVMe. Если диск подключен через порт NVM Express вместо традиционного порта SATA или SAS, вы увидите другое имя устройства, как показано в приведенном выше выводе.
Здесь /dev/nvme0n1 эквивалентно /dev/sda. Следовательно, /dev/nvme0n1p2 эквивалентен /dev/sda2.
Заключение
Вот несколько способов определить, является ли диск SSD или HDD в Linux. Это ваша очередь. Какой метод вы используете, чтобы определить, работает ли ваша система Linux на твердотельном или жестком диске? Знаете ли вы какие-либо другие способы проверить, является ли основной диск жестким или твердотельным диском? Пожалуйста, оставьте комментарий.
Рекомендуется прочитать:
- Как найти характеристики оборудования в Linux
- Как проверить, является ли система Linux физической или виртуальной машиной
- Как проверить, является ли система Linux 32-битной или 64-битной
- Как узнать, поддерживает ли процессор технологию виртуализации (VT)
Значок твердотельного накопителя Изображение PagDev с сайта Pixabay
Значок жесткого диска Изображение от Clker-Free-Vector-Images из Pixabay