Estou reduzindo uma partição Linux SDCard usando o incrível guia do AOakley. Estou tentando automatizá-lo, mas parece não haver nenhuma ferramenta de linha de comando para determinar o número de bytes usados em uma partição.
Por exemplo, gparted me diz que o espaço usado é 1,88 GB de 6,99 GB (observe que estou usando /dev/loop0 que está montado na segunda partição de /dev/sdb):
df
está errado:
% df /dev/loop0
Filesystem ... Use%
udev ... 0%
...e fdisk
e parted
não imprima o espaço usado.
O que posso usar na linha de comando para determinar o espaço usado em uma partição gparted
?
RESPOSTA: Resumo abaixo: A partição é ext4
a que me permite usar dumpe2fs
e extrair: free blocks
, block count
(total) e block size
que pode ser combinada para corresponder exatamente gparted
. Acontece que isso resize2fs
lida com a fragmentação durante a redução. Consulte a página de manual para ext4
obter mais informações (embora o editor da página de manual seja um pouco amargo sobre GiB vs. GB! :)
Responder1
df
é quase a ferramenta certa, mas você deve consultar o ponto de montagem (ou qualquer arquivo abaixo) que pertence ao sistema de arquivos que deseja examinar, não ao nó do dispositivo. O nó que você usou, /dev/loop0
é um arquivo especial que pertence ao udev
sistema de arquivos virtual; daí você conseguiu udev
.
Monte /dev/loop0
(ou /dev/sdb2
, não sei por que é necessário /dev/loop0
) em algum lugar (pode ser ro
mount) e invoque df /the/mountpoint
. Então df
lhe dirá o que o sistema de arquivos reporta sobre si mesmo.
Eu disse " df
équasea ferramenta certa" porque não há garantia de que você possa reduzir o sistema de arquivos (e posteriormente a partição) para o tamanho relatado pela ferramenta. Quais df
impressões podem ser sua primeira (ou melhor, zero) estimativa.
Você precisa de ferramentas diferentes para redimensionar diferentes sistemas de campo. Em um mundo perfeito, essa ferramenta (ou alguma ferramenta que a acompanha) é capaz de informar o tamanho mínimo possível, ou pelo menos o tamanho mínimo para o qual o redimensionamento terá sucesso com certeza. Na realidade você pode encontrar isso:
Bugs Conhecidos
O tamanho mínimo do sistema de arquivos estimado porresize2fs
pode estar incorreto, especialmente para sistemas de arquivos com tamanhos de blocos de 1k e 2k.
(fonte)
gparted
usa ferramentas específicas do sistema de arquivos. Eu o executei strace
e não vi nenhuma evidência de que ele usa df
. Eu vi btrfs filesystem show …
, dumpe2fs …
, …
Resumo:
- Você usou
df
da maneira errada. - De qualquer forma, é melhor usar uma ferramenta específica para o sistema de arquivos;
gparted
faz. Não posso dizer qual ferramenta você deve usar porque você não especificou o sistema de arquivos em questão.