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


26

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


2
那么,除了SSD以外,您还有其他东西吗?
TheWanderer '16

我在我的配置中保持500GB HD ST500LM000-SSHD-8GB(LVD4)
月光

4
闭幕式:这个问题不是题外话。它显然会询问与Ubuntu OS相关的特定问题,并且可以使用Ubuntu工具来解决。撤回您的选票,或提供充分理由说明您认为自己的投票是正确的
Sergiy Kolodyazhnyy

Answers:


40

杜德,我的根在哪里?

首先,我们需要知道根文件系统位于哪个磁盘上(换句话说,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

看起来对吗?

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

有关更多信息,请在Unix和Linux stackexchange网站上阅读此文章。

附加更新:

还有一种方法,描述在这里。每个驱动器在/sys/class/block/目录中都有对应的目录,并通过

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

您将为硬盘获得1或为ssd获得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

@Serg等待,这很奇怪。Radeon R7不是GPU吗?
shortstheory

@shortstheory我有很多问题,但这确实是SSD。如果您愿意,我可以提供我的驱动器的亚马逊链接和图片:)
Sergiy Kolodyazhnyy 2016年

我认为这在一定程度上可行...例如,如果分区已加密怎么办?您的“ df”通话会导致类似/ dev / dm-1的错误463867688 405671304 34610184 93%/并没有真正的帮助:-/我仍在投票,因为我认为您正在确定最常见的情况。
小贾瓦

@LittleJawa好吧,就加密分区而言,我很想介绍这种情况,但是我从未处理过,所以我不知道。这是一个好点,我希望有人能克服它。我猜想,即使该设备文件的名称不同,想法是一样的,但就像我说-我不是在加密的文件的事情合格
谢尔盖Kolodyazhnyy

总体思路是相同的。您将需要执行其他步骤来确定解密分区的来源。这将取决于您使用的加密工具-使用LUKS,我会照看“ cryptsetup”实用程序来发现...无论如何-问题所有者选择了您的答案作为正确的答案,所以我想这将结束主题: )如果/当我们有与加密分区有关的相同问题时,我们将进行调查:-p
Little Jawa

19

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

注意:无论在主机OS的安装情况下,作为客户端安装在循环或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 /从终端窗口运行命令。

注意:使用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。


希望这可以帮助!


如何显示操作系统的安装位置?
飞行员

我不知道我的操作系统安装在哪里,但据此,它位于sda上,而不位于SSD上。NAMEROTA sda 1├─sda11├─sda21└─sda51 sr0 1
月光

@ Pilot6好点,更新了我的答案。谢谢!=)
Terrance

@moonlight我用底部的说明更新了答案,以显示如何确定其安装位置。
Terrance

+1。有趣的是,在我的基于SSD的系统上,loop0旋转。输出的唯一其他旋转设备lsblock是我的光盘驱动器。
暂停,直到另行通知。

1

最后,您的问题实际上不是Ubuntu问题。相对于HD的大小,您的硬盘驱动器的闪存存储量较小。驱动器会自动为您管理该文件,并尝试将访问频率更高的文件放在Flash部分而不是HD部分上。据我所知,没有办法控制或告诉哪个部分上的文件。如果您经常使用Ubuntu,则所有重要文件都应该存储在驱动器的Flash部分中,仅此而已。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.