Як дізнатися, чи є на диску SSD або HDD


193

Хочу знати, чи є диск твердотільним диском або жорстким диском.

lshwне встановлено. Я так yum install lshwі говорить, що немає пакету з назвою lshw. Я не знаю, яка версія http://pkgs.repoforge.org/lshw/ підходить для мого CentOS.

Я шукаю в мережі, і немає нічого, що пояснює, як знати, чи є накопичувач SSD чи HDD. Потрібно просто їх відформатувати спочатку?

Результат 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

1
Якщо це дійсно SSD, ви можете переформатувати його, щоб вирівняти блоки стирання з розділами.
— symcbean

SATA (Serial ATA) відноситься до типу підключення накопичувача і не означає, що це жорсткий диск (HDD). SSD одночасно можуть бути SATA, тому я пропоную змінити назву.
— ПравописD

Відповіді:


310

Linux автоматично виявляє SSD, а оскільки версія ядра 2.6.29, ви можете перевірити за sdaдопомогою:

cat /sys/block/sda/queue/rotational

Вам слід отримати 1жорсткі диски та 0SSD.

Ймовірно, це не спрацює, якщо ваш диск є логічним пристроєм, емульованим апаратним забезпеченням (наприклад, контролером RAID).

Дивіться цю відповідь для отримання додаткової інформації ...


2
На Stackoverflow хтось виявив, що ця система не працює.
— PythoNic

@Totor У мене є два диски, як я можу дізнатися, який з них ssd?
— користувач11498

2
@ User11498 замінити sdaна sdbі подивитися , що один SSD ...
— Totor

3
@Totor Ви маєте рацію в "гібридних" дисках. Однак гібриди з двома приводами виявляються двома окремими приводами, де SSHD (твердотільний гібридний привід) відображається як один привід. Отже, SSHD показав би обертання 1.
— Терранс

6
На віртуальних серверах вам може знадобитися /sys/block/vda/queue/rotational
— зайти

90

З lsblk(частина util-linuxпакету):

lsblk -d -o ім'я, рота
NAME ROTA
sda     0
sdb     0
sdc     1

де ROTAозначає rotational device( 1якщо правда, 0якщо неправда)


1
Ця утиліта, здається, повідомляє ту ж інформацію, що і в /sys/block/.../rotational.
— dma_k

@dma_k Не дивно, враховуючи, що, здається, використовується саме цей. Спробуйте самі:strace lsblk -d -o name,rota /dev/sda 2>&1 | grep --context=3 --color rotational
— CVN

5
Насправді я розглядав різні способи, оскільки деякі USB-контролери не говорять про те, що накопичувач насправді не обертається (наприклад, флеш-накопичувач USB) і в Linux немає можливості сказати правду. Наприкінці дня я зафіксував це, створивши явне правило у /etc/udev/rules.d/90-non-rotational.rules:ACTION=="add|change", SUBSYSTEMS=="usb", ENV{ID_SERIAL}=="SanDisk_Ultra_Fit_*-0:0", ATTR{queue/rotational}="0", ATTR{queue/scheduler}="deadline"
— dma_k

lsblkповідомляє "0" за всі мої старі хороші диски SATA, що обертаються тут (ASROCK mobo). « Деякі USB-контролери не говорять про те, що накопичувач насправді не обертається (наприклад, Flash Flash) » @dma_k, це так правда - і краще, ніж інший спосіб для USB-провідних зовнішніх обертових жорстких дисків IMHA.
— tuk0z

50

Використовуйте smartctl(встановіть шляхом встановлення smartmontools) для отримання інформації про постачальника,

sudo smartctl -a /dev/sdb

Якщо ви бачите такий рядок,

Rotation Rate: Solid State Device

Це був би диск SSD.


5
Команда smartctl не знайдена
— ІгорГанапольський

7
smartctl є частиною пакета Smartmontools
— ТІР

27

Мені потрібно було це зробити на VPS, і жодне із запропонованих рішень не працювало для мене,

ця відповідь зробила трюк

https://serverfault.com/questions/551453/how-do-i-verify-that-my-hosting-provider-gave-me-ssds/551495#551495

Отже, мова йде про зчитування випадкових даних з накопичувача та оцінку часу.

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

ось мої результати для SSD

real    0m1.375s
user    0m0.285s
sys     0m0.944s

і жорсткий диск

real    0m14.249s
user    0m0.752s
sys     0m6.284s

У мене не-ssd, RAID10, і мої результати такі: реальні 0m1.351s - користувач: 0m0.307s - sys: 0m0.560s
— the_nuts

1
Це хороша відповідь, і вона працює в усьому світі. Справа в тому, що деякі жорсткі диски досить швидкі, і результати можуть бути схожими на результати SSD. Але ця відповідь дає хороший показник.
— іктоктоп

1
У моєму VPS без SSD це дає такі результати, як ваш приклад SSD. Я вважаю, що це може обдурити "гібридні" (кешовані SSD HDD) установки.
— trr

не працює для мене. Я вважаю, що SSD і HDD дають подібний результат.
— qqibrow

На віртуалізованому апараті VPS. Ви дійсно не можете сказати, чи зберігаються ваші файли на жорсткому диску, кешуються чи зберігаються на SSD.
— vidarlo

12

Інші відповіді вже розповідають, як отримати цю інформацію різними способами, в тому числі /proc. Але ви повинні сподіватися, що всі ці механізми будуть брехати, якщо на шляху є якась віртуалізація, наприклад, гібридний масив SAN з декількома ярусами або якщо машина Linux є віртуальною машиною (де Linux, ймовірно, повідомляє диск як основний обертовий диск SCSI незалежно від того, яким обладнанням є насправді)


це може бути одним з більш важливих відповідей ... а також в BIOS, або EFI / UEFI, можливо, потрібно буде встановити режим контролера SATA на AHCI, а потім також позначити кожен диск як SSD в біографії. Моя дошка Asrock на домашньому ПК така, не можу пригадати, чи була однакова річ на серверних дошках (supermicro) у мене на роботі, але я не використовую SSD на роботі.
— ron

@ron - Що ви маєте на увазі, встановивши режим контролера SATA на AHCI? Як це впливає на можливість точно повідомляти, чи пристрій має SSD чи ні?
— Мотивовано

шукайте AHCI проти IDE, формулювання першого пошуку в Інтернеті: IDE вважається достатньою для середнього користувача комп'ютера і є найбільш сумісною з іншими технологіями, особливо старими пристроями. Однак йому не вистачає підтримки нових технологій ... AHCI пропонує стандартну систему, яку дизайнери та розробники можуть використовувати для налаштування, виявлення або програмування адаптерів SATA / AHCI. *
— ron

це основні параметри в BIOS, десь під Storage, вибір - IDE, AHCI, а також залежно від марки / моделі / року материнської плати також може запропонувати RAID. SSD з'явилися довго після того, як IDE в основному застаріла, а стандарт став AHCI. Наприклад, встановлення Windows95 на комп’ютер сьогодні не визнає жодного обладнання ... Перебуваючи в режимі IDE, звичайно, не допоможе спілкування з SSD не стільки точністю, скільки просто можливість спілкуватися з контролером SATA, який базується на протоколах AHCI.
— ron

9

перевірити cat /proc/scsi/scsi. там ви повинні побачити точну модель вашого диска. тоді ви просто google модель, щоб знайти інформацію про неї.


1
dmesgміститиме ту саму інформацію. dmesg | grep -i -e scsi -e ata
— Метт

3

Це стара публікація, але я хотів поділитися іншим способом зробити це, про що я дізнався випадково:

sg_vpd --page=bdc /dev/sda

Ця команда отримує Vital Data Data для характеристик блокового пристрою. Для головного диска, що обертається, вихід буде включати: Номінальний коефіцієнт обертання: 7200 об / хв. Для SSD він буде включати: Не обертається середовище (наприклад, твердий стан)


+1. приємно, але працює на моєму (старіє і незабаром його замінять) WD Greens каже Medium rotation rate is not reported. hdparmі smartmonctlсказати те саме. Я думаю, WD не хоче розповідати.
— cas

sg_vpd -i може бути кориснішим, принаймні, він дає інформацію про постачальника увімкнено з диска. Не працює на рейді, тхо.
— Дейл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.