在没有root权限的情况下,使用命令行获取Linux中硬盘的总大小?


16

我试图找出使用的硬盘总大小df -h,但它会打印每个分区的大小并要求sudo

有什么方法可以在不需要root用户权限的情况下使用命令行获取硬盘的总大小?


5
注意:df如果磁盘具有未分区的空间,并非所有分区都已挂载(例如,同一驱动器上的某些Windows分区),或者不是直接而是通过RAID,LVM或LUKS(加密)间接挂载了某些分区,则使用不精确。它还将丢失交换分区。因此,我建议以使用df为找出硬盘容量。
菲利普·温德勒

Answers:


13

一种怪异的方法是sudo通过读取系统日志来绕过需求:

dmesg | grep blocks

请注意,这可能并不理想,因此您的里程可能会有所不同...


5

如果您想要大小(以字节为单位),并且只需要例如脚本的值:

lsblk -b --output SIZE -n -d /dev/sdX
12220202

-b:以字节为单位输出。
-n:无标题。我们只想要纯数字值。
--output SIZE:仅打印大小列。
-d / dev / sdXn:我们想知道的设备大小。对于磁盘d的第一分区,X例如是d,n是例如1。

优点:

  • 不需要root权限
  • 不需要grep
  • lsblk在大多数linux系统上可用

4
cat /sys/block/sda/size

但是大小以基于块的单位为单位,
我在这里找到了这个答案。
其他解决方案在这里

或者您可以尝试udisk

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'

3

例如,如果要在脚本中使用该信息,请使用

sudo blockdev --getsz /dev/sda

可能比fdisk或hdparm容易,因为它只提供相关信息(只需乘以512)。但是,这也将需要sudo。

当然,您可以更改sudo的配置,使其无需输入密码即可执行此特定命令(blockdev --getsz即使由普通的非特权用户执行,我想也是相当安全的)。

这可以通过将以下行添加到来完成/etc/sudoers

ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*

编辑此文件时,请确保使用命令sudo visudo而不是通常的编辑器。否则,很容易产生语法错误,这将导致不再能够使用sudo(您必须重新启动进入救援模式才能解决此问题)。


1
从手册页:--getsize64 Print device size in bytes.。也在这里
Sparhawk

1

我现在不在我的Linux机器上,但是您可以尝试:

hdparm -I /dev/sda

要么

fdisk -l

这可能也需要一个sudo。

我没有看到df需要root的任何地方。真奇怪


也许“ df”不在PATH中。HVNSweeting,尝试“ sudo which df”,然后以用户身份尝试。
米兰·巴布斯科夫2011年

嗨,这就是我得到的:hvnsweeting @ hvnbox:〜$ blockdev --getsz / dev / sda / dev / sda:权限被拒绝hvnsweeting @ hvnbox:〜$ hdparm -I / dev / sda / dev / sda:权限被拒绝hvnsweeting @hvnbox:〜$ fdisk -l hvnsweeting @ hvnbox:〜$
HVNSweeting 2011年

1
直接访问设备的所有内容(即/ dev / sda)都需要sudo。
菲利普·温德勒

1

您要么安装错误,要么系统管理员的说法很荒谬。我以前从未听说过df需要root特权。而且我已经使用了很多类似unix / unix的操作系统。

无论如何,这将以块(kB)的形式为您提供所有磁盘分区的总大小(第一df列是/dev/hd.../dev/sd...):

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s}'

或以GB为单位:

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'

0

从Gnome和Kubuntu检查磁盘空间

磁盘使用情况分析器是一个图形菜单驱动的应用程序,报告了Gnome和Kubuntu环境中的磁盘使用情况。DUA(磁盘使用情况分析器)可以扫描整个文件系统树或本地或远程的单个目录。DUA也是动态的,因为它将实时报告已安装和已卸载的所有设备。

要访问Gnome中的磁盘使用情况分析器,请单击:应用程序\附件\磁盘使用情况分析器就这么简单。

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.