Disc drives de estado sem o comando lsblk?

5

Eu tenho um sistema busybox minimalista que eu estava tentando usar recentemente, e encontrei um pequeno problema: ele não tem o comando lsblk . Existe outro comando para listar discos, partições e tamanhos como lsblk ?

Alguns que também não funcionam:

  • lsblk
  • lsusb
  • fdisk -l
  • cfdisk
por TheDoctor 30.04.2014 / 03:06

3 respostas

6

Vendo através da página wiki do busybox , vejo que ele suporta o comando df para encontrar o uso do disco.

Você pode tentar o comando abaixo.

df -h - Show free space on mounted file systems.

Na página cara do busybox, eles forneceram exemplos de como usar o comando df .

No entanto, como apontado @nwildner, o df mostrará armazenamento em um sistema de arquivos montado e não nos esquemas relacionados às partições. Para descobrir, você pode verificar o arquivo abaixo.

cat /proc/partitions

Como você mencionou fdisk -l não está funcionando, o arquivo acima pode conter as informações da partição.

Teste

fdisk -l produziu a saída abaixo no meu sistema.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        9726    78019672+  8e  Linux LVM

Agora, posso obter as informações da partição se eu usar cat /proc/partitions . A saída é,

major minor  #blocks  name

   8     0   78125000 sda
   8     1     104391 sda1
   8     2   78019672 sda2
 253     0   78019156 dm-0
 253     1   72581120 dm-1
 253     2    5406720 dm-2

O número principal é 8, o que indica que é um dispositivo de disco. Os menores são suas partições no mesmo dispositivo. 0 é o disco inteiro, 1 é o primário, 2 é estendido e 5 é a partição lógica. O resto é claro o tamanho do bloco e o nome do disco / partição.

Não tenho certeza se é uma sugestão inteligente, mas você tentou sudo fdisk -l para ver se está funcionando?

EDIT # 1

Você também pode executar $ df -T . Este é outro comando que não requer privilégios de superusuário para executar. No entanto, isso será reportado para todos os pontos de montagem.

Outro comando que pode ser útil é # file -sL /dev/sdXY . Isto tem uma desvantagem em que não funciona com o dispositivo de bloco completo. Requer o dispositivo exato a ser passado. A saída é bem legal:

Referências

Como determinar o sistema de arquivos de um dispositivo desmontado

    
por 30.04.2014 / 03:37
2

Parece que os outros respondentes não fizeram testes no BusyBox. Aqui estão os únicos comandos que trabalharam no BusyBox no meu initramfs:

  • cat /proc/partitions mostra o tamanho do disco e da partição em blocos (KiB)

  • blkid mostra os rótulos, UUIDs e tipos de partições (EXT4, NTFS, etc)

por 27.05.2017 / 06:14
0

os comandos da caixa ocupada são tipicamente um pouco mais limitados do que as versões completas incluídas em distros maiores e a resposta anterior não abordou bem isso, pois descobri quando tive o mesmo problema.

Eu encontrei a informação que eu precisava (e muito mais) para ext sistemas de arquivos usando tune2fs que estava disponível no Linux embarcado que estou usando no momento. Não sei como fazer isso para outros tipos de sistemas de arquivos desmontados.

tune2fs -l /dev/sdbXY | grep 'Block' | tr -s ' ' | cut -f3 -d' '
488378112
4096
group:

Isso lhe dará essa saída porque tr -s retira espaços repetidos e cut -f3 -d ' ' fornece o terceiro campo de saída. Basta remover os canais sucessivos para saber um pouco mais sobre o que está acontecendo.

O primeiro número é a quantidade de blocos e o segundo é o tamanho do bloco. Multiplique-os para obter sua resposta em bytes. A palavra group: é apenas uma anomalia da filtragem e pode ser ignorada.

    
por 23.11.2015 / 15:36