Получить общий размер моего жесткого диска в Linux, используя командную строку, без прав root?

15

Я пытаюсь узнать общий размер моего жесткого диска df -h, но он печатает размер каждого раздела и требует sudo.

Есть ли способ получить общий размер моего жесткого диска с помощью командной строки, не требуя разрешения root?

HVNSweeting
источник
5
Примечание. Использование dfявляется неточным, если на диске есть неразмеченное пространство, не все разделы подключены (например, некоторые разделы Windows на одном диске) или некоторые разделы подключены не напрямую, а косвенно через RAID, LVM или LUKS (шифрование). Он также пропустит раздел (ы) подкачки. Поэтому я рекомендую не использовать dfдля определения размера жесткого диска.
Филипп Вендлер

Ответы:

12

Хакерский способ - обойти необходимость sudo, считав системный журнал с помощью:

dmesg | grep blocks

Обратите внимание, что это не может быть идеальным, поэтому ваш пробег может варьироваться ...

Sirex
источник
4
cat /sys/block/sda/size

Но размер в блоке на основе блока
я нашел этот ответ здесь .
Другие решения здесь .

Или вы можете попробовать удиски

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'
Джери
источник
4

Если вы хотите размер в байтах и ​​только значение, например для сценариев:

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

-b : вывод в байтах.
-n : нет заголовков. Мы хотим только значение чистого числа.
--output SIZE : печатать только размер столбца.
-d / dev / sdXn : устройство, размер которого мы хотим знать. X, например, d, n, например, 1 для первого раздела диска d.

Преимущества:

  • root-права не нужны
  • grep не нужен
  • lsblk доступен на большинстве систем Linux
Шон Луни
источник
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. Странно.

CaseyB
источник
Может быть, "DF" не в PATH. HVNSweeting, попробуйте "sudo which df", а затем попробуйте это как пользователь.
Милан Бабушков
привет, вот что я получаю: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: разрешение отклонено hvnsweeting @ hvnbox: ~ $ hdparm -I / dev / sda / dev / sda: разрешение отклонено hvnsweeting @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting
1
Все, что обращается к устройствам напрямую (например, / dev / sda), будет нуждаться в sudo.
Филипп Вендлер
1

У вас либо плохая установка, либо абсурдно параноидальный сисадмин. Я никогда не слышал о том, dfчтобы требовать привилегии root. И я работал с несколькими различными разновидностями Unix / Unix-подобных операционных систем.

В любом случае, это даст вам общий размер всех разделов диска (первый dfстолбец /dev/hd...или /dev/sd...) в блоках (кБ):

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

или в ГБ:

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'
Дейв Шерохман
источник
0

Проверка дискового пространства от Gnome и Kubuntu

Disk Usage Analyzer - это приложение с графическим меню, которое сообщает об использовании диска в средах Gnome и Kubuntu. DUA (анализатор использования дисков) может сканировать все дерево файловой системы или отдельные каталоги, как локальные, так и удаленные. DUA также динамичен в том смысле, что он будет сообщать в режиме реального времени обо всех подключенных и отключенных устройствах.

Чтобы получить доступ к Анализатору использования дисков в Gnome, нажмите: Приложения \ Стандартные \ Анализатор использования дисков.

Рики
источник