Як дізнатися, чи є на диску 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.