想象一下这个场景。 你是一个对 Linux 经验有限的新手。 您最近购买了一台预装了 Linux 的新笔记本电脑,例如 Ubuntu。 您不确定安装的磁盘是 SSD(固态驱动器)还是普通 HDD(硬盘驱动器)。 没问题! 这个简短的指南将教你如何在 Linux 操作系统中查找磁盘是 SSD 还是 HDD。
内容
在Linux中查找磁盘是SSD还是HDD
从内核版本开始 2.6.29,Linux操作系统可以自动检测SSD。 有几种方法可以找到磁盘是SSD还是HDD。 这里我给出了7种方法。
方法 1 – 检查磁盘是否旋转
您可能已经知道,传统的 硬盘驱动器 (HDD) 将数据存储在称为 拼盘. 当磁盘旋转时,移动的读/写头将访问数据。 磁盘旋转(旋转)得越快,硬盘工作得越快。
另一方面, 固态硬盘 (SDD) 是现代存储技术和更快类型的磁盘驱动器,可将数据存储在
因此,要查找安装的磁盘是 SSD 还是普通 HDD,只需使用以下命令检查磁盘是否在旋转:
$ cat /sys/block/sda/queue/rotational
如果输出是 1,磁盘是硬盘。 如果输出是 0 (零),磁盘是 SDD。 因为,SSD 不会旋转。 因此,如果您的系统中有 SSD,则输出应该为零。
每个驱动器都有一个目录 /系统/类/块/ 地点。 因此,您也可以检查其他驱动器的详细信息。
$ cat /sys/block/sdb/queue/rotational
$ cat /sys/block/sdc/queue/rotational
笔记:
如果您使用的是 KVM 来宾虚拟机,则驱动器号将为 vda. 结果会因情况而异 总线类型 您在虚拟机期间选择了。 例如,如果您选择 SATA 作为虚拟磁盘的总线类型,您将看到以下输出:
$ cat /sys/block/vda/queue/rotational 1
方法 2 – 使用 lsblk 命令
这 lsblk 命令读取 系统文件 文件系统和 udev 数据库 收集有关所有可用或指定块设备的信息。 lsblk 命令是 util-linux 包并预装在大多数 Linux 发行版中。
以防万一 lsblk 命令不可用,只需使用您的发行版的包管理器安装 util-linux 包。
例如,在基于 Arch 的系统上,您可以使用以下命令安装它:
$ sudo pacman -S util-linux
在基于 Debian 的系统上:
$ sudo apt install util-linux
在基于 RPM 的系统上:
$ sudo yum install util-linux
在 openSUSE 上:
$ sudo zypper install util-linux
现在,使用命令查找磁盘是 SSD 还是 HDD:
$ lsblk -d -o name,rota
示例输出:
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”的意思是 旋转装置. 如果你在上面的输出中得到 rota 的值 1,磁盘是硬盘。 如果值为 0(零),那么磁盘就是SSD。
方法 3 – 使用 SMART 监控工具
另一种查找磁盘是SSD还是HDD的方法正在使用 智能控制 命令。 smartctl 是 SMART 监控工具包的一部分,用于控制和监控支持 SMART 的 ATA 和 SCSI 硬盘。
要在 Arch Linux 及其变体上安装 SMART 监控工具,请运行:
$ sudo pacman -S install smartmontools
在 Debian、Ubuntu 上:
$ sudo apt install smartmontools
在 RHEL、CentOS 上:
$ sudo yum install smartmontools
在 openSUSE 上:
$ sudo zypper install smartmontools
安装 smartmontools 包后,运行以下命令查找磁盘是 SSD 还是 HDD:
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
如果磁盘是 SSD,您将得到如下输出。
Rotation Rate: Solid State Device
如果磁盘是 HDD,您将得到以下输出:
Rotation Rate: 5400 rpm
方法 4 – 使用 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
这与上述方法相同。 我们从中检索磁盘模型 /进程 目录使用命令:
$ cat /proc/scsi/scsi
示例输出:
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
然后谷歌详细了解磁盘是SSD还是HDD。
方法 6 – 使用 Sg3-utils
SG3-utils 是使用 SCSI 命令集的设备的实用程序集合。 该软件包中的每个实用程序都实现了一个 SCSI 命令。
Sg3-utils 在 Debian 和 Ubuntu 的默认存储库中可用。 要将其安装在您的系统上,只需运行:
$ sudo apt install sg3-utils
现在,通过运行以下命令检查块设备特征的重要产品数据 (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
通过输出。 如果输出包含这一行 – “标称转速:5400 rpm”,是硬盘。 对于 SSD,您可能会看到 – “非旋转介质”.
方法 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
此命令将从磁盘的前 16GB 中读取 1000 个随机 4k 块。
如果您的磁盘是 SSD,则操作应该在大约 一秒. 如果磁盘是 HDD,则需要几秒钟才能完成。
这将有助于检查 VPS 中的磁盘。 如果您使用的是 VPS 并想检查托管服务提供商是否为您提供了 SSD 或 HDD,这是找出答案的一种方法!
如果有多个磁盘怎么办?
如果我有两个磁盘,一个是 SSD,另一个是 HDD,该怎么办? 两个磁盘的大小相同并且来自同一制造商。 我不知道我的 Linux 安装在哪个磁盘上。 在这种情况下,只需使用以下命令查找根文件系统位于哪个磁盘上:
$ df / -h
示例输出:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 458G 341G 95G 79% /
或者,使用 小白 命令以查找有关磁盘的更多详细信息:
$ sudo lshw -short -C disk
示例输出:
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
正如你在上面的输出中看到的,我的根文件系统安装在 / 开发 / sda. 现在按照上述任何一种方法来查找磁盘是HDD还是SSD。
笔记:
在一些新的笔记本电脑中,例如 联想ideapad s240,您将看到不同的设备名称,例如 nvme0n1. 让我们使用命令查看可用块设备的列表:
$ ls /sys/block
示例输出:
loop0 loop11 loop14 loop17 loop2 loop3 loop6 loop9 loop1 loop12 loop15 loop18 loop20 loop4 loop7 nvme0n1 loop10 loop13 loop16 loop19 loop21 loop5 loop8
让我们找出根文件系统位于哪个磁盘上:
$ df / -h
示例输出:
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p6 96G 34G 58G 34% /
正如你在上面的输出中看到的,没有 斯达 或者 数据表. 不要惊慌! 这是正常的。 这 /开发/NVME…设备名称表示更新 NVMe “磁盘。” 如果磁盘是通过 NVM Express 端口而不是传统的 SATA 或 SAS 端口连接的,您将看到不同的设备名称,如上面的输出所示。
这里, /dev/nvme0n1 相当于 / 开发 / sda. 因此, /dev/nvme0n1p6 相当于 /开发/ sda6.
建议阅读:
- 如何在 Linux 上查找硬件规格
- 如何检查 Linux 系统是物理机还是虚拟机
- 如何检查 Linux 系统是 32 位还是 64 位
- 如何查找 CPU 是否支持虚拟化技术 (VT)
这些是在 Linux 中查找磁盘是 SSD 还是 HDD 的几种方法。 希望它有用。
固态硬盘图标
CLICommandlineFind if disk is SSD or HDDHard Disk DriveHDDLinuxLinux 命令Solid State DriveSSD