我认为已经在 SSD 上安装了 Ubuntu,但我不确定,我想检查一下。但是我不知道怎么办?
Ser*_*nyy 62
伙计,我的根在哪里?
首先,我们需要知道您的根文件系统位于哪个磁盘上(换句话说,您的 Ubuntu 所在的设备是什么。一种方法是使用df.
$ df / -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 110G 58G 48G 55% /
Run Code Online (Sandbox Code Playgroud)
伟大的 !我现在知道我的 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
Run Code Online (Sandbox Code Playgroud)
哦,Radeon R7!那是我的固态硬盘!可是等等 。. .
如果您有两个大小相同且制造商相同的磁盘怎么办?
嗯,磁盘有一些非常有趣的信息 - 它们旋转的速度有多快,而且我们知道 SSD 磁盘不旋转。
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
[sudo] password for xieerqi:
Rotation Rate: Solid State Device
Run Code Online (Sandbox Code Playgroud)
看起来对吗?
边注:在smartmontools可能需要安装才能使用的smartctl命令。
有关更多信息,请阅读Unix 和 Linux stackexchange 站点上的这篇文章
还有一种方法,描述在这里。每个驱动器在/sys/class/block/目录中都有对应的目录,通过这样做
cat /sys/class/block/DEVICE_NAME/queue/rotational
Run Code Online (Sandbox Code Playgroud)
您将获得硬盘驱动器的 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
Run Code Online (Sandbox Code Playgroud)
Ter*_*nce 37
判断您的操作系统是否安装在 SSD 上的一种简单方法是从名为lsblk -o name,rota. 查看ROTA输出列,您将看到数字。A0表示无转速或 SSD 驱动器。A1表示带有旋转盘片的驱动器。我的 Ubuntu 安装在我的/dev/sdb驱动器上,所以我们可以看到一个表示 a0表示它安装在 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
Run Code Online (Sandbox Code Playgroud)
或者您可以使用-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
Run Code Online (Sandbox Code Playgroud)
例子:
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
Run Code Online (Sandbox Code Playgroud)
要确定您的安装在哪个驱动器上,请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
Run Code Online (Sandbox Code Playgroud)
非 LVM 驱动器:
df /
/dev/sdb1 222309012 38264268 172728984 19% /
Run Code Online (Sandbox Code Playgroud)
更新: lsblk还可用于在一个命令中显示操作系统的安装位置以及驱动器是否为 SSD:
lsblk -o NAME,MOUNTPOINT,MODEL,ROTA
Run Code Online (Sandbox Code Playgroud)
例子:
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
Run Code Online (Sandbox Code Playgroud)
这是在系统重新启动后,所以我的驱动器名称再次更改,但正如您所看到的,我的 SanDisk 驱动器是 SSD,而 ROTA 显示为 0。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
57496 次 |
| 最近记录: |