- Как определить HDD или SSD диск в Linux?
- Метод 1: Использование команды lsblk
- Способ 2: Проверяем вращение диска
- Метод 3: Использование smartctl
- Вывод
- 🐧 Как определить, является ли диск SSD или HDD на Linux
- Определяем типа диска, HDD или SSD
- Метод 1 – Проверьте, вращается ли диск
- Способ 2 – Использование команды lsblk
- Метод 3 – Использование инструментов мониторинга SMART
- Способ 4 – Использование dmesg + Google
- Способ 5 – Использование деталей SCSI + Google
- Метод 6 – Использование Sg3-utils
- Метод 7 – Тест производительности доступа к диску
- Что делать, если есть несколько дисков?
- How to know if a disk is an SSD or an HDD
Как определить HDD или SSD диск в Linux?
Существуют различные типы дисковых накопителей, среди которых наиболее часто используются жесткий диск (HDD) и твердотельный накопитель (SSD). Начиная с версии ядра 2.6.29, SSD автоматически обнаруживается системами Linux и отлично там работают.
Отличить жёсткий диск от твердотельного довольно просто, хотя-бы просто по размеру. SSD значительно меньше в размерах. По уровню шума в работе они тоже отличаются. Так как в твердотельных SSD дисках нет никаких движущихся элементов, то они работают абсолютно бесшумно и без каких-либо вибраций. Если у нас нет физического доступа к компьютеру, то определить с каким диском мы имеем дело уже значительно сложнее.
В этом руководстве показано, как проверить, является ли установленный диск SSD или HDD в системе Linux.
Метод 1: Использование команды lsblk
Как мы уже знаем SSD диски не имеют двигающихся элементов. Соответственно идентификация типа диска может быть выполнена с помощью параметра » вращения» у команды lsblk. Эта команда может использоваться для перечисления всех подключенных дисков и их соответствующих значений вращения этих дисков:
[nehrena@manjaro-nout ~]$ lsblk -d -o name,rota
NAME ROTA
sda 1
sdb 0
Из вывода этой комманды видно что первый диск sda у нас вращается, а второй нет. Таким образом можно определить что диск sda это обычный HDD, а второй диск это SSD.
Без дополнительных параметров эта команда просто выдаст нам список всех дисков и их разделов:
[ nehrena @manjaro-nout ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 698,6G 0 disk
├─sda1 8:1 0 650G 0 part /home
└─sda2 8:2 0 48,6G 0 part
sdb 8:16 0 119,2G 0 disk
└─sdb2 8:18 0 119,2G 0 part /
Дополнительный параметр ROTA в приведенной выше команде равеный » 1 » показывает, что диск является жестким диском. В случае SSD значение ROTA будет равно «0«.
Способ 2: Проверяем вращение диска
Ещё один похожий способ тоже основывается на вращении диска. Глядя на значение /sys/block/sdX/queue/rotation, можно определить тип диска, где sdX — это имя диска. Если значение равно 1, то вы используете жесткий диск, а значение 0 указывает на тип диска как SSD. Выполните следующую команду, чтобы получить значение вращения диска. В этом примере sda и sdb используется для определения типа диска, вы можете использовать имя любого диска, доступного в вашей системе.
[ nehrena @manjaro-nout ~]$ cat /sys/block/sda/queue/rotational
1
[ nehrena @manjaro-nout ~]$ cat /sys/block/sdb/queue/rotational
0
[ nehrena @manjaro-nout ~]$
В этом способе мы не используем никаких специальных утилит. Просто читаем данные из блочного файла устройства.
Вывод «1» указывает на тип диска HDD, для SSD значение будет равно «0».
Метод 3: Использование smartctl
Тип диска, используемый в системе Linux, также можно определить с помощью утилиты командной строки smartctl. Smartctl является частью пакета smartmontools. Smartmontools доступен во всех дистрибутивах Linux, включая Ubuntu, Fedora, Centos и RHEL.
Если этой утилиты у вас не установлено используйте следующую команду для установки smartmontools в Linux:
$ sudo apt install smartmontools
Чтобы запустить службу, выполните команду:
$ sudo /etc/init.d/smartmontools start
CentOS and RHEL
$ sudo yum install smartmontools
$ sudo dnf install smartmontools
Служба Smartd будет запущена автоматически после установки. Если нет, используйте следующую команду для запуска службы:
$ sudo systemctl start smartd
После установки пакета smartmontools используйте следующую команду, чтобы определить, является ли диск жестким или твердотельным:
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
Где /dev/sda — это имя диска.
[nehrena@manjaro-nout ~]$ sudo smartctl -a /dev/sda | grep ‘Rotation Rate’
[sudo] пароль для nehrena :
Rotation Rate: 5400 rpm
[ nehrena @manjaro-nout ~]$
Эта утилита покажет конкретную скорость с которой вращается диск. Для дисков SSD соответственно скорость будет 0.
[ nehrena @manjaro-nout ~]$ sudo smartctl -a /dev/sdb | grep ‘Rotation Rate’
Rotation Rate: Solid State Device
[ nehrena @manjaro-nout ~]$
Как видно из вывода утилита честно сказала что это диск SSD и он не вращается.
Вывод
Вот так на простых примерах в этой статье мы узнали, как проверить, является ли диск SSD или HDD в ОС семейства Linux.
🐧 Как определить, является ли диск SSD или HDD на Linux
А вы уверены, что установленный диск является SSD (твердотельный накопитель) или обычным HDD (жесткий диск).
Это краткое руководство научит вас, как определить, является ли диск SSD или HDD в операционных системах Linux.
Определяем типа диска, HDD или SSD
Метод 1 – Проверьте, вращается ли диск
Как вы, возможно, уже знаете, традиционный жесткий диск (HDD) хранит данные на круговом диске, известном как диск. Когда диск вращается, движущаяся головка чтения / записи получит доступ к данным.
Чем быстрее диск вращается (вращается), тем быстрее работает жесткий диск.
С другой стороны, твердотельный накопитель (SDD) – это современная технология хранения данных и более быстрый тип накопителя, который хранит данные на мгновенно доступных микросхемах флэш-памяти.
В отличие от традиционных жестких дисков, твердотельные накопители не имеют движущихся частей, а твердотельные накопители не вращаются.
Поэтому, если вы хотите узнать, является ли установленный диск твердотельным или обычным жестким диском, просто проверьте, вращается ли диск, с помощью следующей команды:
$ cat /sys/block/sda/queue/rotational
Таким образом, выходной сигнал должен быть нулевым, если в вашей системе есть 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 apt install util-linux
$ sudo yum install util-linux
$ sudo zypper install util-linux
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
$ sudo apt install smartmontools
$ sudo yum install smartmontools
$ sudo zypper install smartmontools
После установки пакета smartmontools выполните следующую команду, чтобы определить, является ли диск SSD или HDD:
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
Если диск SSD, вы получите вывод, как показано ниже.
Rotation Rate: Solid State Device
Если диск HDD, вы получите такой вывод:
Способ 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 с помощью команды:
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
Метод 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.
В этом случае просто найдите, на каком диске находится корневая файловая система, с помощью следующей команды:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 458G 341G 95G 79% /
Или используйте команду lshw, чтобы узнать больше о дисках:
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
Теперь выполните любой из указанных выше способов, чтобы определить, является ли диск жестким или твердотельным.
How to know if a disk is an SSD or an HDD
I want to know whether a disk is a solid-state drive or hard disk. lshw is not installed. I do yum install lshw and it says there is no package named lshw. I do not know which version of http://pkgs.repoforge.org/lshw/ is suitable for my CentOS. I search the net and there is nothing that explain how to know whether a drive is SSD or HDD. Should I just format them first? Result of fdisk -l :
Disk /dev/sda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00074f7d Device Boot Start End Blocks Id System /dev/sda1 * 1 14 103424 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 14 536 4194304 82 Linux swap / Solaris Partition 2 does not end on cylinder boundary. /dev/sda3 536 14594 112921600 83 Linux Disk /dev/sdc: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb: 128.0 GB, 128035676160 bytes 255 heads, 63 sectors/track, 15566 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdd: 480.1 GB, 480103981056 bytes 255 heads, 63 sectors/track, 58369 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000