Qual é o significado dos diretórios padrão na hierarquia do sistema de arquivos Linux?

41

Depois de instalar várias distribuições Linux para consertar, fico intrigado com os instaladores que oferecem layouts de partição - para uma saída mais fácil, apenas uso todo o espaço em disco disponível.

Algumas das partições oferecidas têm nomes enigmáticos, incluindo / var , swap , / usr e / home . Os instaladores realmente não me explicam isso - a qual propósito eles servem e qual, se houver, deve ser usado?

Grant Palin
fonte

Respostas:

61

A breve resposta sobre nomes de diretório: digite " man hier" em um terminal :)

Essa é a página de manual da hierarquia do sistema de arquivos, que explica o objetivo geral dos nomes de diretório e o que eles possuem. Você pode ver uma versão da web aqui .

Há também mais leitura na Wikipedia:

Esses links explicam tudo sobre como as partições são chamadas o que e o que são (ou foram historicamente) usadas para armazenar.

A resposta sobre o uso de partições separadas, em vez de apenas diretórios na mesma partição, volta à capacidade de manutenção e expansibilidade. Se você possui uma partição, digamos, /e /homenela, Joe User pode preencher sua /home/joepasta e toda a máquina ficará sem espaço em disco e deixará de funcionar (estou simplificando aqui, mas esse é o resultado geral). Se você tiver /e /homepartições diferentes, Joe User poderá preencher sua /home/joepasta e a /homepartição estará cheia, mas a máquina continuará operando porque /não é afetada.

Portanto, expanda esse princípio para quase todos os diretórios diferentes em partições diferentes, e você pode ver como isso seria útil, principalmente quando uma máquina está executando 24 horas por dia, 7 dias por semana, na função de multiusuário e multi-serviço.

Ben Williams
fonte
12
+1 para man hierEnsine um homem a pescar e tudo isso.
George Marian
Sim, obrigado pelo ponteiro para hier (7). Sempre visitei a página da ESF, sem saber que tive respostas muito mais facilmente disponíveis.
andol
O problema é que, embora estes sejam explicados como devem ser usados, alguns não são de fato usados ​​dessa maneira por padrão, como no diretório / srv.
Ronaldo Nascimento
7

Ao instalar, muitas distribuições oferecem as opções para colocar diretórios diferentes em diferentes partições. Por exemplo, muitos usuários optam por ter o diretório / home em uma partição diferente do restante da instalação. Isso ocorre porque tudo no diretório / home pertence a um usuário - documentos, vídeos e todos os outros dados específicos do usuário estão aqui. Ao colocar o diretório / home em uma partição separada e os arquivos atuais do sistema operacional em outra, se um usuário decidir fazer uma nova instalação do sistema operacional Linux, ele poderá reescrever a partição principal e deixar sua partição / home (e todos os demais). de seus arquivos) intactos.

Isso também permite ao usuário instalar várias distribuições Linux em diferentes partições, todas compartilhando a mesma partição / home. Dessa forma, um usuário pode acessar seus arquivos, independentemente da versão do Linux que estiver usando.

Um usuário casual não precisa se preocupar muito em atribuir um / var, swap, / usr etc. separados. Todos esses diretórios fazem parte do sistema operacional e têm pouco a ver com os arquivos do usuário.

Makario
fonte
+1 para o bom link. / Swap não é sempre uma partição separada?
George Marian
@ George Marian: Não precisa. É possível configurar a troca do sistema de arquivos (que é um arquivo dentro do sistema de arquivos de uma partição existente) em vez da troca da partição. Dessa forma, o sistema Ubuntu pode funcionar em uma única partição.
precisa saber é o seguinte
3
Para aqueles que jogam em casa, vale a pena notar que a capacidade de usar um arquivo de troca em um sistema de arquivos regular depende do sistema de arquivos. IE: Não tente fazer isso com o btrfs, ele (nos kernels antigos) permitirá que você corrompa silenciosamente os dados e (nos kernels mais recentes) gera um erro ao tentar adicionar a troca.
RAOF 5/08/10
5

Usar todo o espaço em disco disponível é uma opção perfeitamente válida (e provavelmente a recomendada) para computadores pessoais. Particionar o sistema de arquivos como esse é, na minha opinião, uma escala desde os tempos antigos, antes que o RAID ou o gerenciamento de volume virtual fossem práticos em software.

Em sistemas do tipo UNIX, o sistema de arquivos inicia no diretório raiz '/'. Nos termos do DOS / Windows, seria 'C:'

Enquanto no DOS / Windows, você adiciona unidades às letras de mergulho D :, E :, etc. Nos sistemas UNIX, você 'monta' as unidades nos diretórios. No dia em que você tinha discos rígidos de 10 ou 10 megabytes, era possível montar vários diretórios em diferentes unidades e partições para dar a ilusão de uma única unidade grande. O RAID 0 de um pobre homem.

Existem muitas razões para particionar os vários diretórios raiz, mas uma idéia popular é que, desde que as partições swap e / var foram gravadas ao máximo, elas têm a maior chance de falhar. Ao separá-las em diferentes partições, é realmente fácil adicionar outra unidade do backup e montá-la novamente.

Também ter uma parição separada / home pode ser realmente bom se você executar várias versões do linux em uma máquina. (Por exemplo, Ubuntu e Red Hat). Como os programas Unix / Linux colocam as configurações do usuário dentro de seu diretório pessoal. Isso funciona muito melhor na teoria do que na prática. Porque você precisa entender completamente as implicações das permissões.

Aqui estão alguns diretórios importantes para sistemas operacionais do tipo UNIX e suas explicações.

  • /bin - Arquivos executáveis ​​básicos do sistema
  • /lib - Bibliotecas básicas do sistema (.so no Linux, .dlls no Windows).
  • /boot- Onde você vive do núcleo. O computador não inicia sem este.
  • /var- Diretório onde os serviços podem armazenar arquivos. Como arquivos de log e caixas de correio
  • /etc - arquivos de configuração do sistema
  • /usr- Aplicativos de usuário não essenciais. (Um sistema unix pode inicializar sem um / usr (para fins de recuperação), mas não seria muito divertido. Em sistemas mais antigos, é o mesmo que / home.)
  • /home- Diretórios pessoais do usuário. Usuários normais só podem gravar em seu próprio diretório inicial.
  • swap (não um diretório) Geralmente, é uma partição separada no UNIX. Não há diretório de troca, embora você possa criar arquivos de troca no Linux.
wm_eddie
fonte
2
Eu diria que, mesmo para um computador desktop / pessoal, ter / home em uma partição separada é uma boa idéia. Dessa forma, você tem menos dores de cabeça, caso preencha o diretório inicial.
George Marian
@ George Não há nada impedindo que você faça o link simbólico para o diretório inicial em outra unidade. Na minha configuração, para permitir compatibilidade com o Windows, minha partição pessoal é NTFS e eu vinculo todas as pastas que eu usar na minha pasta pessoal. Gostaria de vincular a pasta inteira, mas gostaria de manter o material oculto em ~ / separado, caso decida fazer uma nova instalação. O uso de caminhos de arquivos codificados e vinculados a partições separadas pode ter sido necessário vinte anos atrás, mas as restrições arquitetônicas que as tornaram necessárias não existem hoje.
Evan Plaice
1
@evan Estou confuso. Você está se referindo ao link simbólico de diretórios em seu diretório pessoal ou ao link simbólico de seu diretório pessoal em outro lugar? Como isso é diferente da configuração / home para uma partição diferente? (Observe que "partição diferente" pode estar em uma unidade totalmente diferente.) Eu estava me referindo à proteção contra o comportamento padrão (por exemplo, downloads sendo colocados em um subdiretório da sua pasta pessoal) inadvertidamente preenchendo a partição raiz.
George Marian
@ George Ambos e o que você preferir. O ponto que estou tentando enfatizar é: por que definir links codificados durante a instalação do sistema, quando você pode simplesmente inserir alguns links simbólicos após fazer a mesma coisa e pode ser alterado facilmente a qualquer momento?
Evan Plaice
@evan Um ponto justo. Nunca tive muita sorte de mexer com esse tipo de coisa após a instalação, por isso sempre preferi fazê-lo da maneira "padrão".
George Marian
1

A partição swap também é usada para hibernação. Se você deseja colocar seu laptop ou desktop em hibernação, precisará de uma partição ou arquivo de troca grande o suficiente para armazenar o sistema operacional em execução e seus aplicativos abertos.

Muitas vezes, é sugerido que a partição de troca tenha o mesmo tamanho da sua memória RAM.

jr0cket
fonte
1

Você pode criar partições separadas durante a instalação. uma /homepartição significa que sempre que você instala o Ubuntu, suas configurações pessoais de usuário permanecem.

/- é a raiz.
/var- (explicado acima)
/dev- contém "links" para dispositivos registrados. / dev / Video0 é uma placa de captura ...

/bin /sbin - conter aplicativos

melhor ainda, a Wikipedia tem uma ótima página http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

A maior coisa que eu acho é ter uma segunda partição (a maior) para o seu material e, como eu disse toda vez que você reinstalar ou atualizar. Selecione essa partição novamente e desmarque a caixa de formatação e tudo está de volta. Até o seu papel de parede!

MJ
fonte
1

Bem, swapé usado um espaço de troca. É como um arquivo de paginação no Windows. É meio que complementa a RAM.

/home é usado para dados do usuário como Meus documentos no Windows,

/usr é onde a maioria dos programas se parece muito com C: \ Windows e

/var contém dados que são alterados quando o sistema está funcionando normalmente.

Quanto ao motivo pelo qual eles estão em partições separadas, acho que é principalmente se o seu SO desce, os dados não descem com ele. Mas eu realmente não tenho certeza.

Cody Harlow
fonte
Diferença entre /varvs /etc?
Pacerier
1

Historicamente, é considerado uma boa prática ter /home, swape outros nós críticos residem em diferentes partições, diferentes discos físicos ou até diferentes máquinas físicas. Embora por conveniência (para melhor ou para pior) e com o advento de backups externos baratos ou baseados em nuvem, tudo agora esteja em uma única partição grande e você faça backup de suas coisas pessoais em outro lugar.

/usr, significa Recursos do sistema Unix

/sbin, Binários do sistema

Ao contrário das crenças populares, /etcnão representa et cetera . Em vez disso, significa Extended Tool Chest . Mas, ao contrário das crenças populares, ainda é uma questão de debate.

Aqui estão mais algumas informações sobre essas pastas e como elas são organizadas.

Eric Carvalho
fonte
0

A troca deve ser mantida separadamente, se você a usar. E use 1,5-2,0 x seu tamanho de ram para isso.

O resto pode ser mantido junto e não importa (o Linux / Unix não é o Windows e possui uma hierarquia de diretórios única, seja seu diretório / var uma partição separada ou não, parece exatamente o mesmo). O principal objetivo do particionamento é usar sistemas de arquivos diferentes e dividir possíveis cenários de "disco cheio" (por exemplo, se / var for preenchido com logs de algum aplicativo maluco, / home stil funciona)

Como nota de rodapé, recomendo o uso do LVM, que permite criar quantas partições removíveis e redimensionáveis ​​livremente forem necessárias, e até adicionar novos discos rígidos à família. Ainda assim, é necessário aprender alguma linha de comando, portanto não é para o iniciante total.

Mekk
fonte