如何知道磁盘是 SSD 还是 HDD

如何知道磁盘是 SSD 还是 HDD

我想知道磁盘是固态驱动器还是硬盘。

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

Linux自动检测SSD,并且自从内核版本 2.6.29,您可以sda通过以下方式验证:

cat /sys/block/sda/queue/rotational

您应该购买1硬盘和0SSD。

如果您的磁盘是由硬件模拟的逻辑设备(如 RAID 控制器),它可能无法工作。

这个答案有关 SSD 分区、文件系统的更多信息...

答案2

lsblk(包的一部分util-linux):

lsblk -d -o 名称,轮换
NAME ROTA
sda     0
sdb     0
sdc     1

其中ROTA表示rotational device1如果为真,0如果为假)。

请注意,正如评论中提到的,某些 USB 控制器无法正确报告此rotational属性,可能的修复方法是使用显式 UDEV 规则。

此外,更新版本lsblk支持-I,--include-e,--exclude选项,允许通过以下方式过滤设备主号码 并且还支持 JSON 输出,例如,仅显示非旋转的非循环设备的名称和序列号,您可以运行:

lsblk -e 7 -do name,serial,rota --json | \
jq -r '.blockdevices[] | select(.rota==false) | [.name,.serial] | @tsv'

答案3

使用smartctl(通过安装来安装smartmontools)检索供应商信息,

sudo smartctl -a /dev/sdb

如果你看到这样的一行,

Rotation Rate: Solid State Device

那将是一个 SSD 驱动器。

答案4

其他答案已经告诉您如何通过多种方式获取此信息,包括/proc。但是,如果存在任何虚拟化,例如具有多层的混合 SAN 阵列,或者 Linux 计算机是虚拟机(其中 Linux 可能会将磁盘报告为基本 SCSI 旋转磁盘),则您必须预料到所有这些机制都会撒谎。 ,无论硬件到底是什么)

相关内容