Obtém o tamanho total do meu disco rígido no Linux, usando a linha de comando, sem permissões de root?

13

Estou tentando descobrir o tamanho total do meu disco rígido usando df -h , mas ele imprime o tamanho de cada partição e requer sudo .

Existe alguma maneira de obter o tamanho total do meu disco rígido usando a linha de comando, sem a necessidade de permissão de root?

    
por HVNSweeting 27.10.2011 / 18:47

6 respostas

11

Uma maneira hacky é ignorar a necessidade de sudo lendo o log do sistema com:

dmesg | grep blocks

Por favor, note que isto pode não ser ideal, por isso a sua quilometragem pode variar ...

    
por 28.10.2011 / 11:36
4
cat /sys/block/sda/size

Mas o tamanho está na unidade baseada em blocos | Eu encontrei esta resposta aqui .
Outras soluções aqui .

Ou você pode tentar udisks

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

Se você quiser usar essas informações em um script, por exemplo, usando

sudo blockdev --getsz /dev/sda

pode ser mais fácil que o fdisk ou o hdparm, já que só lhe dá a informação relevante (basta multiplicar por 512). No entanto, também exigirá sudo.

Você poderia, é claro, alterar a configuração do sudo de tal forma que ele permita executar este comando específico sem pedir a senha (eu acho que blockdev --getsz é bastante seguro mesmo quando executado por um usuário normal não privilegiado).

Isso seria feito adicionando a seguinte linha a /etc/sudoers :

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

Quando você editar este arquivo, certifique-se de usar o comando sudo visudo e não seu editor usual. Caso contrário, é muito fácil fazer um erro de sintaxe, o que resultaria em não ser mais capaz de usar o sudo (você teria que reinicializar no modo de recuperação para corrigir isso).

    
por 27.10.2011 / 21:49
3

Se você deseja o tamanho em bytes e apenas o valor, por exemplo, para script:

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

-b : Saída em bytes. -n : Sem títulos. Queremos apenas o valor numérico puro.
- SIZE de saída : Imprima apenas a coluna de tamanho.
-d / dev / sdXn : O dispositivo que tamanho que queremos conhecer. X é, e. d, n é, por exemplo, 1 para a primeira partição do disco d.

Vantagens:

  • privilégios de root não são necessários
  • grep não é necessário
  • O lsblk está disponível na maioria dos sistemas Linux
por 26.07.2015 / 16:59
0

Você tem uma instalação ruim ou um administrador de sistema absurdamente paranóico. Eu nunca ouvi falar de df exigindo privilégios de root antes. E trabalhei com vários tipos diferentes de sistemas operacionais unix / unix.

De qualquer forma, isso fornecerá o tamanho total de todas as partições de disco (primeiro df column é /dev/hd... ou /dev/sd... ) em blocos (kB):

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

ou em GB:

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'
    
por 28.10.2011 / 12:32
-1

Eu não estou na minha caixa do Linux agora, mas você pode tentar:

hdparm -I /dev/sda

ou

fdisk -l

que também provavelmente exigirá um sudo.

Eu não vi em nenhum lugar que o df requer raiz. Isso é estranho.

    
por 27.10.2011 / 19:26