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


16

Я намагаюся з’ясувати загальний розмір мого жорсткого диска за допомогою df -h, але він друкує розмір кожного розділу та вимагає sudo.

Чи є спосіб отримати загальний розмір мого жорсткого диска за допомогою командного рядка, не вимагаючи кореневого дозволу?


5
Примітка: Використання dfнеточне, якщо на диску є нерозподілений простір, не всі розділи встановлені (наприклад, деякі розділи Windows на одному диску) або деякі розділи не монтуються безпосередньо, а опосередковано через RAID, LVM або LUKS (шифрування). Також буде пропущено розділ (и) заміни. Тому я не рекомендую використовувати dfдля з'ясування розміру жорсткого диска.
Філіп Вендлер

Відповіді:


13

Гакітний спосіб - це обійти необхідність sudo, прочитавши системний журнал за допомогою:

dmesg | grep blocks

Зверніть увагу, що це може бути не ідеально, тому ваш пробіг може відрізнятися ...


5

Якщо ви хочете розмір у байтах і тільки значення, наприклад для сценаріїв:

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

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

Переваги:

  • кореневі привілеї не потрібні
  • греп не потрібен
  • lsblk доступний у більшості систем Linux

4
cat /sys/block/sda/size

Але розмір знаходиться в блоці на основі блоку,
я знайшов цю відповідь тут .
Інші рішення тут .

Або ви можете спробувати удиски

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

3

Якщо ви хочете використовувати цю інформацію, наприклад, у сценарії, використовуючи

sudo blockdev --getsz /dev/sda

може бути простішим, ніж fdisk або hdparm, оскільки вони надають лише відповідну інформацію (просто помножте на 512). Однак для цього також знадобиться судо.

Можна, звичайно, змінити конфігурацію 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 box, але ви можете спробувати:

hdparm -I /dev/sda

або

fdisk -l

що також, ймовірно, вимагатиме судо.

Я ніде не бачив, щоб df вимагав root. Це дивно.


Можливо, "df" немає в PATH. HVNSweeting, спробуйте "sudo what 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вимагати кореневих привілеїв. І я працював із досить багатьма різними ароматами операційних систем 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 (Disk Usage Analyzer) може сканувати все дерево файлової системи або окремі каталоги, локальні або віддалені. DUA також динамічний тим, що він повідомляє в режимі реального часу про будь-які пристрої, які встановлені та відключені.

Щоб отримати доступ до Disk Usage Analyzer в Gnome, натисніть: Програми \ Аксесуари \ Disk Usage Analyzer дуже просто.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.