我认为已经在 SSD 上安装了 Ubuntu,但我不确定,我想检查一下。但我不知道该怎么做?
答案1
兄弟,我的根在哪里?
首先,我们需要知道你的根文件系统位于哪个磁盘上(换句话说,你的 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(代表硬盘)或 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,那么所有重要文件都应该位于驱动器的闪存部分,但仅此而已。