Por que o diretório / lost + found é 16K em vez de 4k bytes?

5

Eu estava na direção da raiz, / , e fiz ls -lah por qualquer motivo e observei o tamanho das pastas. Notei que a pasta lost+found tem um tamanho de 16K, enquanto todos os outros diretórios têm um tamanho de 4K. /dev , /proc e /sys também são tamanhos diferentes, mas lost+found foi o que eu estava curioso inicialmente.

As pessoas apontaram que /dev é porque é um sistema de arquivos diferente e que /proc e /sys são sistemas de arquivos virtuais, portanto, não seguem as mesmas regras de um sistema normal.

Alguém tem uma explicação para isso (o diretório lost+found )? De um Google rápido, não consegui encontrar uma resposta

-rw-r--r--  1 root root  152 Jul  2 11:47 extlinux.conf
drwxr-xr-x  3 root root 4.0K Nov  7 01:51 home
lrwxrwxrwx  1 root root   30 Jul  2 11:47 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
-r--r--r--  1 root root  32K Jul  2 11:47 ldlinux.sys
drwxr-xr-x 12 root root 4.0K Jul  2 11:46 lib
drwxr-xr-x  2 root root 4.0K Nov  7 01:43 lib64
drwx------  2 root root  16K Jul  2 11:44 lost+found
drwxr-xr-x  2 root root 4.0K Jul  2 11:46 media
drwxr-xr-x  2 root root 4.0K Dec 24  2014 mnt
drwxr-xr-x  4 root root 4.0K Nov 14 22:00 opt
dr-xr-xr-x 85 root root    0 Nov  9 19:51 proc
drwx------  3 root root 4.0K Nov 15 21:01 root
drwxr-xr-x 15 root root  480 Nov 15 23:26 run
drwxr-xr-x  2 root root 4.0K Nov  7 01:43 sbin

Editar: vejo a pergunta O que o tamanho de um diretório significa na saída do comando 'ls -l'? que tipo de respostas a pergunta, mas todos os novos diretórios que eu faço são 4.0K e lost+found que eu saiba que nunca teve nenhuma informação nele para garantir um tamanho maior (esta é uma instalação relativamente nova, sem necessidade de desligamentos). Além disso, para esclarecimento, o tipo de sistema de arquivos é ext3.

Editar 2: Esses arquivos podem ser mais úteis para pessoas que podem realmente interpretá-los, mas eles ainda não explicam porque / run é diferente, mas alguém sugeriu que isso é porque ele é montado (verificado com df -h ) . Ele também é criado pelo comando mklost+found , mas quando esse comando é executado, o tamanho do diretório é mostrado como 49K (12 blocos) em vez de 16K (4 blocos). O arquivo mke2fs.c explica o arquivo 16K com a linha if ((lpf_size += fs->blocksize) >= 16*1024) , mas não a 49k.

por cutrightjm 17.11.2015 / 05:41

1 resposta

2

@cas estava correto em sua suposição de que "é mais simples para o fsck criar um diretório lost + found com mais espaço reservado para arquivos encontrados do que expandi-lo se / quando necessário. Com alguns tipos de corrupção de fs, ele pode não até mesmo ser possível ou seguro expandir o diretório lost + found enquanto o fsck está corrigindo erros. "

Não sei por que não o fiz antes, mas se você consultar a página mklost+found man, você receberá estas informações:

mklost+found pre-allocates disk blocks to the lost+found directory so that when e2fsck(8) is being run to recover a filesystem, it does not need to allocate blocks in the filesystem to store a large number of unlinked files. This ensures that e2fsck will not have to allocate data blocks in the filesystem during recovery.

A resposta mais detalhada à pergunta específica, por que , o tamanho do arquivo é 49,152 KB (ou 49 MiB ou 12 setores) em algum lugar nos arquivos abaixo. É a razão pela qual eu estava tão curioso sobre isso, mas eu ainda não descobri (eu não consigo ler C muito bem). Se alguém tiver tempo livre e souber que eu posso explicar o porquê, aceitarei sua resposta sobre essa:

por 23.11.2015 / 08:43