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

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

伙计,哪里是我的根?

首先,我们需要知道你的根文件系统所在的磁盘(换句话说,你的Ubuntu是什么设备。一种方法是使用df

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

好极了! 我现在知道我的Ubuntu放在/dev/sda磁盘上,其大小为110 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 

看起来对吗?

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

有关更多信息,请阅读Unix和Linux stackexchange站点上的这篇文章

其他更新:

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

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

你会得到1为硬盘驱动器或0为ssd。 这种方法非常便于在脚本中使用

事实上,这显然与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 

判断您的操作系统是否安装在SSD上的简单方法是从名为lsblk -o name,rota的终端窗口运行命令。 查看输出的ROTA列,您将看到数字。 0表示无转速或SSD驱动器。 1表示带有旋转盘片的驱动器。 我的Ubuntu安装在我的/dev/sdb驱动器上,因此我们可以看到一个指示0表示它安装在SSD驱动器上。 我把这个如何使用df告诉你操作系统安装位置的例子。

注意:无论主机操作系统安装如何,在环路或VM中作为客户端安装的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' | 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' | 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 ,然后查看Mounted on列,并使用/是安装操作系统的驱动器。 FileSystem列显示与/关联的设备或/dev/sdb1

注意:配置了LVM(逻辑卷管理)的驱动器实际上将驱动器显示为/boot而不是/

例:

 terrance@terrance-ubuntu:~$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 4032040 0 4032040 0% /dev tmpfs 817508 9976 807532 2% /run /dev/sdb1 222309012 38264268 172728984 19% / tmpfs 4087520 352 4087168 1% /dev/shm tmpfs 5120 4 5116 1% /run/lock tmpfs 4087520 0 4087520 0% /sys/fs/cgroup /dev/sdf1 244196348 182870888 61325460 75% /media/250GB_SHARE /dev/sdc1 488385532 332540064 155845468 69% /media/WD500GB /dev/sdh1 488385532 315052908 173332624 65% /media/320GB /dev/sdg1 488384532 314763032 173621500 65% /media/500GB /dev/sde2 233916412 20392712 213523700 9% /media/Windows /dev/sdd1 976760828 216967888 759792940 23% /media/1TB_SHARE /dev/sda1 2930253820 1004868460 1925385360 35% /media/Seagate tmpfs 817508 36 817472 1% /run/user/1000 

更新: lsblk还可用于显示操作系统的安装位置以及驱动器是否为SSD all in one command:

 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。


希望这可以帮助!

最后你的问题不是Ubuntu问题。 你有一个相对于高清大小的闪存存储量小的硬盘驱动器。 这是由驱动器自动管理的,并尝试将更频繁访问的文件放在Flash部分而不是HD部分。 据我所知,没有办法控制或告诉哪个文件在哪个部分。 如果您经常使用Ubuntu,所有重要文件应该最终都在驱动器的闪存部分,但这就是它。