Obtenir la taille totale de mon disque dur sous Linux, en utilisant la ligne de commande, sans autorisations root?

15

J'essaie de connaître la taille totale de mon disque dur à l'aide df -h, mais il imprime la taille de chaque partition et l'exige sudo.

Existe-t-il un moyen d'obtenir la taille totale de mon disque dur à l'aide de la ligne de commande, sans demander l'autorisation root?

HVNSweeting
la source
5
Remarque: L'utilisation dfest imprécise si le disque dispose d'un espace non partitionné, toutes les partitions ne sont pas montées (par exemple, certaines partitions Windows sur le même lecteur) ou certaines partitions ne sont pas montées directement mais indirectement via RAID, LVM ou LUKS (cryptage). Il manquera également la ou les partitions de swap. Je recommande donc de ne pas utiliser dfpour connaître la taille du disque dur.
Philipp Wendler

Réponses:

12

Un moyen hacky est de contourner le besoin sudoen lisant le journal système avec:

dmesg | grep blocks

Veuillez noter que cela pourrait ne pas être idéal, donc votre kilométrage peut varier ...

Sirex
la source
4
cat /sys/block/sda/size

Mais la taille est en unités basées sur des blocs,
j'ai trouvé cette réponse ici .
D'autres solutions ici .

Ou vous pouvez essayer des udisks

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

Si vous voulez la taille en octets et seulement la valeur par exemple pour le script:

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

-b : sortie en octets.
-n : pas de titres. Nous voulons seulement la valeur du nombre pur.
--output SIZE : imprime uniquement la colonne de taille.
-d / dev / sdXn : le périphérique dont nous voulons connaître la taille. X est par exemple d, n est par exemple 1 pour la première partition du disque d.

Avantages:

  • les privilèges root ne sont pas nécessaires
  • grep n'est pas nécessaire
  • lsblk est disponible sur la plupart des systèmes Linux
Sean Loony
la source
3

Si vous souhaitez utiliser ces informations dans un script par exemple, en utilisant

sudo blockdev --getsz /dev/sda

pourrait être plus facile que fdisk ou hdparm car il ne vous donne que les informations pertinentes (multipliez simplement par 512). Cependant, il faudra également sudo.

Vous pouvez bien sûr changer la configuration de sudo de telle sorte qu'il permet d'exécuter cette commande spécifique sans demander le mot de passe (je suppose que blockdev --getszc'est assez sûr même lorsqu'il est exécuté par un utilisateur normal non privilégié).

Cela se ferait en ajoutant la ligne suivante à /etc/sudoers:

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

Lorsque vous modifiez ce fichier, veillez à utiliser la commande sudo visudoet non votre éditeur habituel. Sinon, il est très facile de faire une erreur de syntaxe, ce qui entraînerait de ne plus pouvoir utiliser sudo (vous devrez redémarrer en mode de secours pour résoudre ce problème).

Philipp Wendler
la source
1
Sur la page de l' homme: --getsize64 Print device size in bytes.. Ici aussi .
Sparhawk
1

Je ne suis pas dans ma boîte Linux en ce moment, mais vous pouvez essayer:

hdparm -I /dev/sda

ou

fdisk -l

qui nécessitera probablement aussi un sudo.

Je n'ai vu nulle part que df nécessite root. C'est étrange.

CaseyB
la source
Peut-être que "df" n'est pas dans PATH. HVNSweeting, essayez "sudo which df" puis essayez en tant qu'utilisateur.
Milan Babuškov
Salut, voici ce que j'obtiens: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: Autorisation refusée hvnsweeting @ hvnbox: ~ $ hdparm -I / dev / sda / dev / sda: Autorisation refusée hvnsweeting @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting
1
Tout ce qui accède directement aux périphériques (c'est-à-dire / dev / sda) aura besoin de sudo.
Philipp Wendler
1

Vous avez une mauvaise installation ou un administrateur système paranoïaque absurde. Je n'ai jamais entendu parler d' dfexiger des privilèges root auparavant. Et j'ai travaillé avec plusieurs versions différentes de systèmes d'exploitation Unix / Unix.

Quoi qu'il en soit, cela vous donnera la taille totale de toutes les partitions de disque (la première dfcolonne est /dev/hd...ou /dev/sd...) en blocs (ko):

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

ou en GB:

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

Vérification de l'espace disque depuis Gnome et Kubuntu

Disk Usage Analyzer est une application graphique pilotée par menu qui rapporte l'utilisation du disque dans les environnements Gnome et Kubuntu. DUA (Disk Usage Analyzer) peut analyser l'intégralité de l'arborescence du système de fichiers ou des répertoires individuels, locaux ou distants. DUA est également dynamique, en ce sens qu'il signalera en temps réel tous les appareils montés et démontés.

Pour accéder à Disk Usage Analyzer dans Gnome, cliquez sur: Applications \ Accessoires \ Disk Usage Analyzer c'est aussi simple que cela.

Ricky
la source