Làm sao để biết ổ đĩa là ổ SSD hay ổ cứng


193

Tôi muốn biết liệu một đĩa là ổ đĩa trạng thái rắn hay đĩa cứng.

lshwkhông được cài đặt. Tôi làm yum install lshwvà nó nói không có gói có tên lshw. Tôi không biết phiên bản nào của http://pkgs.repoforge.org/lshw/ phù hợp với CentOS của tôi.

Tôi tìm kiếm trên mạng và không có gì giải thích làm thế nào để biết một ổ đĩa là SSD hay HDD. Tôi có nên định dạng chúng đầu tiên?

Kết quả của 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
Nếu đây thực sự là một ổ SSD, bạn có thể muốn định dạng lại nó để căn chỉnh các khối xóa với các phân vùng.
symcbean

SATA (Nối tiếp ATA) đề cập đến loại kết nối của ổ đĩa và không ngụ ý rằng đó là Ổ đĩa cứng (HDD). SSD có thể đồng thời là SATA, vì vậy tôi đề nghị chỉnh sửa tiêu đề.
SpellingD

Câu trả lời:


310

Linux tự động phát hiện SSD và kể từ phiên bản kernel 2.6.29, bạn có thể xác minh sdabằng:

cat /sys/block/sda/queue/rotational

Bạn nên lấy 1đĩa cứng và 0ổ SSD.

Nó có thể sẽ không hoạt động nếu đĩa của bạn là một thiết bị logic được mô phỏng bởi phần cứng (như bộ điều khiển RAID).

Xem câu trả lời này để biết thêm thông tin ...


2
Trên Stackoverflow ai đó đã tìm thấy thông tin hệ thống này không hoạt động.
PythoNic

@Totor Tôi đã có hai đĩa, làm thế nào tôi có thể tìm ra cái nào là ssd?
dùng11498

2
@ user11498 thay thế sdabằng sdbvà xem cái nào là SSD ...
Totor

3
@Totor Bạn đúng trong các ổ đĩa "lai". Tuy nhiên, các ổ đĩa kép hiển thị dưới dạng hai ổ đĩa riêng lẻ, trong đó SSHD (Solid-State Hybrid Drive) hiển thị dưới dạng một ổ đĩa đơn. Vì vậy, SSHD sẽ hiển thị vòng quay của 1.
Terrance

6
Trên các máy chủ ảo, bạn có thể cần phải lấy/sys/block/vda/queue/rotational
MonoThreaded

90

Với lsblk(một phần của util-linuxgói):

lsblk -d -o tên, rota
NAME ROTA
sda     0
sdb     0
sdc     1

nơi ROTAphương tiện rotational device( 1nếu đúng, 0nếu sai)


1
Tiện ích đó dường như báo cáo thông tin tương tự như trong /sys/block/.../rotational.
dma_k

@dma_k Ít thắc mắc, xem xét nó dường như sử dụng cái đó. Hãy tự thử:strace lsblk -d -o name,rota /dev/sda 2>&1 | grep --context=3 --color rotational
CVn

5
Trên thực tế tôi đã xem xét nhiều cách khác nhau vì một số bộ điều khiển USB không nói rằng ổ đĩa đó thực sự không quay được (ví dụ, flash USB) và Linux không có cách nào để nói sự thật. Vào cuối ngày, tôi đã sửa lỗi đó bằng cách tạo quy tắc rõ ràng trong /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

lsblkbáo cáo "0" cho tất cả các ổ cứng quay SATA cũ tốt của tôi ở đây (ASROCK mobo). « Một số bộ điều khiển USB không cho biết ổ đĩa đó thực sự không quay được (ví dụ: đèn flash USB) » @dma_k điều này rất đúng - và cách này tốt hơn so với cách khác đối với ổ cứng xoay ngoài có dây USB IMHA.
tuk0z

50

Sử dụng smartctl(cài đặt bằng cách cài đặt smartmontools) để lấy thông tin nhà cung cấp,

sudo smartctl -a /dev/sdb

Nếu bạn thấy một dòng như thế này,

Rotation Rate: Solid State Device

Đó sẽ là một ổ SSD.


5
Không tìm thấy lệnh smartctl
IgorGanapolsky

7
smartctl là một phần của gói smartmontools
trr

27

Tôi cần phải làm điều này trên VPS và không có giải pháp nào được cung cấp cho tôi,

câu trả lời này đã lừa

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

vì vậy, đó là về việc đọc dữ liệu ngẫu nhiên từ ổ đĩa và đánh giá thời gian.

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

đây là kết quả của tôi cho SSD

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

và ổ cứng

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

Tôi có một ssd, RAID10 và kết quả của tôi là: real 0m1.351s - người dùng: 0m0.307s - sys: 0m0.560s
the_nuts

1
Đây là một câu trả lời tốt và nó hoạt động trên bảng. Có một số ổ cứng khá nhanh và kết quả có thể tương tự với ổ SSD. Tuy nhiên, câu trả lời này cung cấp một số liệu tốt.
itoctopus

1
Trên VPS của tôi không có SSD, điều này cung cấp kết quả như ví dụ về SSD của bạn. Tôi tin rằng điều này có thể bị đánh lừa bởi các thiết lập "hybrid" (SSD cacheed SSD).
trr

không làm việc cho tôi. Tôi thấy SSD và HDD tạo ra kết quả tương tự.
qqibrow

Trên phần cứng của VPS được ảo hóa. Bạn thực sự không thể biết các tệp của mình được lưu trữ trên ổ cứng, được lưu trong bộ nhớ cache hay được lưu trữ trên ổ SSD.
vidarlo

12

Các câu trả lời khác đã cho bạn biết làm thế nào để có được thông tin này theo một số cách, bao gồm /proc. Nhưng bạn phải hy vọng tất cả các cơ chế này sẽ nói dối nếu có bất kỳ ảo hóa nào, chẳng hạn như một mảng SAN lai có nhiều tầng hoặc nếu máy Linux là một máy ảo (trong đó Linux có thể sẽ báo cáo đĩa là một đĩa quay SCSI cơ bản , bất kể phần cứng thực sự là gì)


đây có thể là một trong những phản hồi quan trọng hơn ... và cả trong BIOS, hoặc EFI / UEFI có thể cần đặt chế độ bộ điều khiển SATA thành AHCI và sau đó đánh dấu mỗi đĩa là SSD trong bios. Bảng mạch Asrock của tôi trên máy tính gia đình là như thế này, không thể nhớ nếu có một thứ tương tự trên bảng máy chủ (siêu thị) tôi có ở nơi làm việc nhưng tôi không sử dụng SSD tại nơi làm việc.
ron

@ron - Ý bạn là gì khi cài đặt chế độ bộ điều khiển SATA thành AHCI? Làm thế nào nó ảnh hưởng đến khả năng báo cáo chính xác nếu thiết bị là SSD hay không?
động lực

tra cứu AHCI vs IDE, từ ngữ tìm kiếm trên web đầu tiên: IDE được coi là phù hợp với người dùng máy tính trung bình và tương thích nhất với công nghệ khác, đặc biệt là các thiết bị cũ. Tuy nhiên, nó thiếu hỗ trợ cho các công nghệ mới ... AHCI cung cấp một hệ thống tiêu chuẩn mà các nhà thiết kế và nhà phát triển có thể sử dụng để định cấu hình, phát hiện hoặc lập trình bộ điều hợp SATA / AHCI. *
ron

đó là một cài đặt cơ bản trong BIOS, ở đâu đó trong Storage, các lựa chọn là IDE, AHCI và cũng tùy thuộc vào nhãn hiệu / kiểu / năm của bo mạch chủ cũng có thể cung cấp RAID. SSD ra đời rất lâu sau khi IDE về cơ bản đã lỗi thời và chuẩn trở thành AHCI, ví dụ như cài đặt Windows95 trên máy tính ngày nay, nó sẽ không nhận ra bất kỳ phần cứng nào ... ở chế độ IDE chắc chắn sẽ không giúp giao tiếp với SSD không chính xác lắm mà chỉ đơn giản là có thể giao tiếp với bộ điều khiển SATA dựa trên các giao thức AHCI.
ron

9

kiểm tra cat /proc/scsi/scsi. ở đó bạn sẽ thấy mô hình chính xác của đĩa của bạn. sau đó bạn chỉ cần google mô hình để tìm thông tin về nó.


1
dmesgsẽ chứa thông tin tương tự. dmesg | grep -i -e scsi -e ata
Matt

3

Đây là một bài viết cũ nhưng tôi muốn chia sẻ một cách khác để làm điều này mà tôi tình cờ phát hiện ra:

sg_vpd --page=bdc /dev/sda

Lệnh này lấy dữ liệu sản phẩm quan trọng cho các đặc điểm của thiết bị khối. Đối với đĩa đầu quay, đầu ra sẽ bao gồm: Tốc độ quay danh nghĩa: 7200 vòng / phút Đối với ổ SSD, nó sẽ bao gồm: Môi trường không quay (ví dụ: trạng thái rắn)


+1. tốt, nhưng chạy nó trên (già và sắp được thay thế) WD Greens nói Medium rotation rate is not reported. hdparmsmartmonctlnói như vậy. Tôi đoán WD không muốn nói.
cas

sg_vpd -i có thể hữu ích hơn, ít nhất là nó cung cấp thông tin về nhà cung cấp từ ổ đĩa. Không hoạt động trên một cuộc đột kích, tho '.
Dale
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.