如何检查我的 Ubuntu 是否放在 SSD 上?

如何检查我的 Ubuntu 是否放在 SSD 上?

我认为已经在 SSD 上安装了 Ubuntu,但我不确定,我想检查一下。但我不知道该怎么做?

答案1

兄弟,我的根在哪里?

首先,我们需要知道你的根文件系统位于哪个磁盘上(换句话说,你的 Ubuntu 位于哪个设备中。一种方法是使用df

$ df / -h                                                                       
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       110G   58G   48G  55% /

太棒了!我现在知道我的 Ubuntu 被放在了/dev/sda110 GB 大小的磁盘上(另外 10 GB 用于其他用途)。信息不够?好的,那么这样如何:

$ sudo lshw -short -C disk                                                      
[sudo] password for xieerqi: 
H/W path         Device     Class          Description
======================================================
/0/1/0.0.0       /dev/sda   disk           120GB Radeon R7
/0/2/0.0.0       /dev/sdb   disk           500GB TOSHIBA MQ01ABF0

哦,Radeon R7!那是我的 SSD!但等等……

如果您有两个大小相同且制造商相同的磁盘会怎样?

好吧,磁盘有一些非常有趣的信息——它们的旋转速度有多快,众所周知,SSD 磁盘不要旋转

$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'                              
[sudo] password for xieerqi: 
Rotation Rate:    Solid State Device

看上去不错?

边注:可能smartmontools需要安装才能使用smartctl命令。

欲了解更多信息,请阅读Unix 和 Linux stackexchange 网站上的这篇文章

附加更新:

还有一种方法,如下所述这里。每个驱动器在/sys/class/block/目录中都有相应的目录,通过执行

cat /sys/class/block/DEVICE_NAME/queue/rotational

您将获得 1(代表硬盘)或 0(代表固态硬盘)。这种方法在脚本中使用非常方便

事实上,这显然是使用相同的方法lsblk

$ lsblk -o NAME,ROTA                                                                                                                  
NAME   ROTA
sda       0
└─sda1    0
sdb       1
├─sdb1    1
├─sdb2    1
├─sdb3    1
├─sdb4    1
├─sdb5    1
└─sdb6    1

答案2

判断操作系统是否安装在 SSD 上的一个简单方法是从名为 的终端窗口运行命令lsblk -o name,rota。查看ROTA输出的列,您将在那里看到数字。A0表示无旋转速度或 SSD 驱动器。A1表示驱动器的盘片会旋转。我的 Ubuntu 安装在/dev/sdb驱动器上,因此我们可以看到一个表示 ,0这意味着它安装在 SSD 驱动器上。我在这个示例后面放了如何使用 来判断操作系统的安装位置df

笔记:无论主机操作系统如何安装,在环路或虚拟机中作为客户端安装的 Ubuntu 都将显示 ROTA 1。此外,“固态混合硬盘“并且 USB 闪存驱动器也会显示 ROTA 1。

例子:

terrance@terrance-ubuntu:~$ lsblk -o name,rota
NAME   ROTA
sda       1
└─sda1    1
sdb       0
├─sdb1    0
├─sdb2    0
└─sdb5    0
sdc       1
└─sdc1    1
sdd       1
└─sdd1    1
sde       0
├─sde1    0
└─sde2    0
sdf       1
└─sdf1    1
sdg       1
└─sdg1    1
sdh       1
└─sdh1    1
sr0       1
sr1       1

-d或者,您可以使用不显示分区的单行脚本进行检查:

lsblk -d -o name,rota | awk 'NR>1' | grep -v loop | while read CC; do dd=$(echo $CC | awk '{print $2}'); if [ ${dd} -eq 0 ]; then echo $(echo $CC | awk '{print $1}') is a SSD drive; fi; done

例子:

terrance@terrance-ubuntu:~$ lsblk -d -o name,rota | awk 'NR>1' | grep -v loop | while read CC; do dd=$(echo $CC | awk '{print $2}'); if [ ${dd} -eq 0 ]; then echo $(echo $CC | awk '{print $1}') is a SSD drive; fi; done
sdb is a SSD drive
sde is a SSD drive

df /要确定您的安装在哪个驱动器上,请从终端窗口运行命令。

笔记:使用 LVM(逻辑卷管理)配置的驱动器实际上将驱动器显示为/boot而不是/

例子:

LVM 驱动器:

df /
Filesystem                   1K-blocks      Used Available Use% Mounted on
/dev/mapper/xubuntu--vg-root 243352964 106945028 123976576  47% /

df /boot
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sda1         720368 237220    430756  36% /boot

非 LVM 驱动器:

df /
/dev/sdb1       222309012   38264268  172728984  19% /

更新: lsblk还可以用于显示操作系统的安装位置以及驱动器是否为 SSD,只需一个命令即可:

lsblk -o NAME,MOUNTPOINT,MODEL,ROTA

例子:

terrance@terrance-ubuntu:~$ lsblk -o NAME,MOUNTPOINT,MODEL,ROTA
NAME   MOUNTPOINT         MODEL            ROTA
sda                       Backup+ Desk        1
└─sda1 /media/Seagate                         1
sdb                       WDC WD2500JD-00K    1
└─sdb1 /media/250GB_SHARE                     1
sdc                       WDC WD5000AAKS-4    1
└─sdc1 /media/500GB                           1
sdd                       ST500DM002-1BC14    1
└─sdd1 /media/320GB                           1
sde                       SanDisk SDSSDA24    0
├─sde1 /                                      0
├─sde2                                        0
└─sde5 [SWAP]                                 0
sdf                       WDC WD5000AAKX-2    1
└─sdf1 /media/WD500GB                         1
sdg                       WDC WD10EZEX-00W    1
└─sdg1 /media/1TB_SHARE                       1
sdh                       SanDisk SDSSDA24    0
├─sdh1                                        0
└─sdh2 /media/Windows                         0
sr0                       BD-RE  BH16NS40     1
sr1                       DVD-RAM GH40L       1

这是在系统重启后,所以我的驱动器指定再次改变,但正如您所见,我的 SanDisk 驱动器是 SSD,并且 ROTA 显示 0。


希望这可以帮助!

答案3

最后,你的问题其实并不是一个 Ubuntu 问题。你的硬盘驱动器的闪存容量相对于硬盘驱动器的大小来说很小。驱动器会自动为你管理闪存容量,并尝试将更频繁访问的文件放在闪存部分而不是硬盘驱动器部分。据我所知,没有办法控制或判断哪些文件位于哪个部分。如果你经常使用 Ubuntu,那么所有重要文件都应该位于驱动器的闪存部分,但仅此而已。

相关内容