Linux下如何判断磁盘是SSD还是HDD |
您所在的位置:网站首页 › 如何分辨硬盘是固态还是机械硬盘呢 › Linux下如何判断磁盘是SSD还是HDD |
Linux下如何判断磁盘是SSD还是HDD
检查磁盘类型 - Linux 中的 SSD 或 HDD 想象一下这个场景。您是一名 Linux 经验有限的新手。您最近购买了一台预装了 Linux 的新笔记本电脑,例如 Ubuntu。您不确定安装的磁盘是SSD(固态硬盘)还是普通HDD(硬盘驱动器)。没问题!本简短指南将教您如何在 Linux 操作系统中查找磁盘是 SSD 还是 HDD。 硬盘驱动器 (HDD) 与固态驱动器 (SSD)在进入主题之前,了解 HDD 和 SSD 之间的区别很重要。 您可能已经知道,传统的硬盘驱动器(HDD)将数据存储在称为盘片的圆形光盘上。当光盘旋转时,移动的读/写头将访问数据。磁盘旋转(旋转)越快,硬盘的工作速度就越快。 另一方面,固态硬盘 (SDD) 是现代存储技术和更快的磁盘驱动器类型,可将数据存储在可即时访问的闪存芯片上。与传统 HDD 不同,SSD 没有任何移动部件,并且SSD 不会旋转。 Linux 下判断磁盘是 SSD 还是 HDD从内核版本2.6.29开始,Linux操作系统可以自动检测SSD。有几种方法可以确定磁盘是 SSD 还是 HDD。这里我们给出了7种方法。 方法 1 - 检查磁盘是否可旋转要确定安装的磁盘是 SSD 还是普通 HDD,只需使用以下命令检查磁盘是否是旋转的: cat /sys/block/sda/queue/rotational如果输出为1,则磁盘为HDD。如果输出为0(零),则磁盘为 SDD。因为,SSD 不会旋转。因此,如果系统中有 SSD,输出应该为零。 每个驱动器在 /sys/class/block/ 位置都有一个目录。因此,您也可以检查其他驱动器的详细信息。 cat /sys/block/sdb/queue/rotationalcat /sys/block/sdc/queue/rotational注意:如果您使用的是 KVM 来宾虚拟机,则驱动器号将为 vda。结果将根据您在虚拟机期间选择的总线类型而有所不同。例如,如果您选择 SATA 作为虚拟磁盘的总线类型,您将看到以下输出: cat /sys/block/vda/queue/rotational 1方法 2 - 使用 lsblk 命令lsblk 命令读取 sysfs 文件系统和 udev db 以收集有关所有可用或指定块设备的信息。 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,则磁盘是 HDD。如果该值为0(零),则磁盘为 SSD。 方法 3 - 使用 SMART 监控工具另一种查找磁盘是 SSD 还是 HDD 的方法是使用 smartctl 命令。 smartctl是S.M.A.R.T监控工具包的一部分,用于控制和监控S.M.A.R.T。启用 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这不是查找磁盘类型的直接方法。在此方法中,我们使用 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这与上面的方法相同。我们使用命令从 /proc 目录中检索磁盘模型: 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然后 Google 详细信息以了解磁盘是 SSD 还是 HDD。 方法 6 - 使用 Sg3-utilsSg3-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”,则为 HDD。对于 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% /或者,使用 lshw 命令查找有关磁盘的更多详细信息: 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正如您在上面的输出中看到的,我的根文件系统安装在 /dev/sda 中。现在按照上述任一方法来查找磁盘是 HDD 还是 SSD。 注意: 在一些新的台式机和笔记本电脑中,例如Intel NUC或Lenovo 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/nvme0n1p2 456G 288G 146G 67% /查看系统磁盘空间使用情况 正如您在上面的输出中看到的,没有 sda 或 sdb。不要恐慌!这个是正常的。 /dev/nvme...设备名称表示较新的NVMe“磁盘”。如果磁盘通过 NVM Express 端口而不是传统的 SATA 或 SAS 端口连接,您将看到不同的设备名称,如上面的输出所示。 这里,/dev/nvme0n1相当于/dev/sda。因此,/dev/nvme0n1p2 相当于/dev/sda2。 结论以下是在 Linux 中查找磁盘是 SSD 还是 HDD的几种方法。轮到你了。您使用哪种方法来检测您的 Linux 系统是运行在 SSD 还是 HDD 上?您还知道其他方法来检查底层是硬盘驱动器还是固态驱动器吗?请发表评论。 建议阅读: 如何在 Linux 上查找硬件规格如何检查Linux系统是物理机还是虚拟机如何检查Linux系统是32位还是64位如何查找 CPU 是否支持虚拟化技术 (VT)SSD 图标 图片由 PagDev 在 Pixabay 上提供 硬盘图标图像由 Clker-Free-Vector-Images 提供,来自 Pixabay |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |