Por que o tamanho da partição e a saída df são diferentes?


16

Eu tenho uma partição / dev / sda1.
O utilitário de disco mostra que tem capacidade para 154 GB.
df -h shows

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

Por que os resultados são diferentes? Onde estão os 31 GB ausentes?


3
Por favor, publique a saída de fdisk -l /dev/sda(execute como root).
Gilles 'SO- stop be evil' '' -

2
Qual sistema de arquivos você está usando? Se for ext2 / 3/4, você poderá tune2fs -l /dev/sda1examiná-lo. Observe a contagem e o tamanho do bloco e multiplique-os para obter o tamanho do sistema de arquivos. Além disso, fdisk -s /dev/sda1para obter o tamanho da partição em blocos de 1k. Multiplique isso por 1024 para obter o tamanho em bytes. Esse número deve ser apenas um pouco maior que o sistema de arquivos. Na minha partição ext4 de 40 GB, é 3072 bytes maior. Se o seu sistema de arquivos for estranhamente menor, tente redimensioná-lo. Para ext2 / 3/4, use resize2fs /dev/sda1. Você pode fazer isso enquanto usa o computador normalmente.
penguin359

@Gilles sudo fdisk -l / dev / sda shows (estou postando apenas a partição sda1, porque outros não nos interessam). Dispositivo de inicialização Início Fim Blocos Id System / dev / sda1 1 18706 150253568 83 Linux
xralf

@ penguin359 Eu tenho o sistema de arquivos ext4. contagem de blocos = 32668162, tamanho do bloco = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Parece ser estranhamente menor. Posso redimensioná-lo sem perda de dados? O que causou que é menor?
Xralf

@xralf: o redimensionamento deve ser seguro, nunca perdi dados ao fazê-lo. Pode ser um pouco mais seguro fazê-lo em uma partição não montada, como, por exemplo, um CD ao vivo. Mas ainda assim, faça um backup primeiro. Sempre faça um backup antes de executar as principais tarefas do administrador do sistema.
Faheem Mitha

Respostas:


25

Uma razão pela qual as capacidades da partição podem diferir é que algum espaço é reservado para raiz, caso as partições fiquem cheias. Se não houver espaço reservado para raiz e as partições ficarem cheias, o sistema não poderá funcionar. No entanto, essa diferença geralmente é da ordem de 1%, portanto isso não explica a diferença no seu caso. Na página de manual do df

Se um argumento é o nome absoluto do arquivo de um nó de dispositivo de disco que contém um sistema de arquivos montado, df mostra o espaço disponível nesse sistema de arquivos em vez do sistema de arquivos que contém o nó do dispositivo (que é sempre o sistema de arquivos raiz).

Então o df está realmente mostrando o tamanho do seu sistema de arquivos, que geralmente é o tamanho do dispositivo, mas isso pode não ser verdade no seu caso. O seu sistema de arquivos se estende por toda a sua partição?

Faz

resize2fs /dev/sda1

faz alguma diferença? Este comando tenta aumentar seu sistema de arquivos para cobrir toda a partição. Mas verifique se você tem um backup se tentar isso.


>> O seu sistema de arquivos se estende por toda a partição? Acho que sim. É ext4. <br> O que devo fazer backup? Não tenho disco secundário para fazer backup maior.
Xralf

@xralf: (Ok, isso é fora de tópico em termos desta pergunta, mas ...) Se não houver um backup, configure-o imediatamente. A única alternativa de um bom backup (e não é uma boa alternativa) é o uso sistemático de um sistema de controle de versão distribuído e empurrá-lo para algum local remoto. Mas é claro, você não pode colocar tudo sob controle de versão, por exemplo. meios de comunicação. Por favor, desculpe se eu estou sendo um homem ocupado.
Faheem Mitha

@xralf: gostaria de postar seus resultados de saída na própria pergunta, é mais fácil ver e ler.
Faheem Mitha 07/04

resize2fs é uma operação bastante segura, não há necessidade de fazer backup (se você tiver energia estável e usar software estável). BTW, a contagem de blocos reservados padrão é de 5% para sistemas de arquivos ext *.
RVS

@rvs: discordo sobre backup. Você está certo sobre os 5% pelo menos no Debian. Eu estava me lembrando errado. Mas não sei se isso é padrão em todas as distribuições.
Faheem Mitha

5

A principal diferença é que algumas coisas dizem que 1 kilobyte é de 1000 bytes e outras dizem que 1 kilobyte é de 1024 bytes.

O Utilitário de Disco Gnome mostra a capacidade usando 1 kilobyte = 1000 bytes, porque os fabricantes de discos descrevem os tamanhos dos discos dessa maneira. Isso significa que a capacidade do seu disco está próxima de 154.000.000.000 bytes .

Por outro lado, a maioria dos sistemas operacionais diz 1 kilobyte = 1024 bytes. Todas as ferramentas gostam dfe fdiskusam esta convenção. Então, 154.000.000.000 de bytes / 1024/1024/1024 = 143,4 GB .

Como o jlliagre aponta corretamente (e Gilles implica ao solicitar sua fdisksaída), o utilitário de disco está informando o tamanho de todo o seu disco rígido. Mas /dev/sda1é uma única partição no seu disco rígido. Por exemplo, seu disco rígido provavelmente possui outras partições, como uma partição de 4 a 8 GB para troca (também conhecida como memória virtual) e uma partição de inicialização que geralmente tem cerca de 100 MB.

Você não publicou a saída de fdisk -l /dev/sda, então vamos assumir que sua partição de swap é de 8 GB. Agora estamos com 135 GB .

Depois, há outras coisas que contribuem para a diferença.

Por exemplo, o sistema de arquivos usa parte da partição do disco para metadados. Metadados são coisas como nomes de arquivo, permissões de arquivo, quais partes da partição pertencem a quais arquivos e quais partes da partição são gratuitas. No meu sistema, cerca de 2% da partição é usada para isso. Supondo que o seu seja semelhante, reduziria o espaço livre para cerca de 132 GB .

O sistema de arquivos também pode reservar algum espaço que só pode ser usado pelo usuário root. No meu sistema, é 5% da partição; portanto, no seu caso, isso significaria uma capacidade total de cerca de 125 GB .

Os números exatos dependem de você estar usando ext2, ext3, ext4, fat, ntfs, btrfs, etc. e quais configurações foram usadas ao formatar a partição.

Se você estiver usando ext2 ou ext3, sudo tune2fs -l /dev/sda1pode ajudar a entender para onde está indo o espaço.


O utilitário de disco mostra exatamente a capacidade de 154 GB (153.859.653.632 bytes).
xralf

>> sudo tune2fs -l / dev / sda1 << Quais parâmetros me dizem para onde está indo o espaço?
xralf

2

Provavelmente eles são usados ​​por inodes. Alguma quantia pode ser utilizada pelo MBR.


1
O MBR não aparece como está no cilindro 0 (nem mesmo na primeira partição, que geralmente começa no setor 2048). No entanto, existem cópias do superbloco. Ainda assim, são os inodes. Veja também: unix.stackexchange.com/questions/13547/... e os comandos "lsblk / dev / sdX" e "dumpe2fs -h / dev / sdX"
David Tonhofer

1

O sda1 não é todo o seu disco, mas sua primeira partição primária. Você pode ter criado outras partições desmontadas que não aparecem na saída df ou simplesmente têm o sda1 não preenchendo todo o espaço utilizável por algum motivo ou o sistema de arquivos não está usando todo o espaço disponível em sua partição.

fdisk -l lhe dirá como é a sua tabela de partição.


Claro. Estamos falando apenas da partição / dev / sda1, não de todo o disco.
xralf

Isso não ficou óbvio na sua pergunta, pois você se refere a um utilitário de disco sem mostrar sua saída. Você deve editá-lo para deixar isso claro. Contar como você criou o sistema de arquivos / também seria útil.
Jlliagre

A parte relevante da saída do utilitário de disco é "capacidade da partição sda1 = 154 GB".
Xralf

Edite sua pergunta original para deixar isso claro.
Jlliagre
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.