Un moyen hacky est de contourner le besoin de sudo
en lisant le journal système avec :
dmesg | grep blocks
Veuillez noter que ce n'est peut-être pas l'idéal, donc votre kilométrage peut varier...
Si vous voulez la taille en octets et uniquement la valeur, par ex. pour les scripts :
lsblk -b --output SIZE -n -d /dev/sdX
12220202
-b :Sortie en octets.
-n :Pas de titres. Nous ne voulons que la valeur numérique pure.
--taille de sortie :n'imprime que la colonne de taille.
-d /dev/sdXn :L'appareil dont nous voulons connaître la taille. X est par ex. 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
Si vous souhaitez utiliser ces informations dans un script par exemple, utilisez
sudo blockdev --getsz /dev/sda
peut être plus facile que fdisk ou hdparm car il ne vous donne que les informations pertinentes (multipliez simplement par 512). Cependant, cela nécessitera également sudo.
Vous pouvez bien sûr modifier la configuration de sudo de sorte qu'il permette d'exécuter cette commande spécifique sans demander le mot de passe (je suppose blockdev --getsz
est assez sûr même lorsqu'il est exécuté par un utilisateur normal non privilégié).
Cela serait fait en ajoutant la ligne suivante à /etc/sudoers
:
ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*
Lorsque vous modifiez ce fichier, assurez-vous d'utiliser la commande sudo visudo
et non votre éditeur habituel. Sinon, il est très facile de faire une erreur de syntaxe, ce qui entraînerait l'impossibilité d'utiliser sudo (vous devrez redémarrer en mode de secours pour résoudre ce problème).