Recentemente, um instalador do Debian 5.0.5 ofereceu-me para separar /usr
, /home
, /var
e /tmp
partições (em um disco físico).
Qual é a razão prática para isso? Eu entendi aquilo /home
pode ser vantajoso colocar em uma partição separada, porque os arquivos do usuário podem ser criptografados separadamente, mas por que mais alguma coisa?
/usr
Estiver em uma partição separada, um /usr
Danificado não significa que você não pode recuperar /etc
./
Nem sempre pode ser ro (/root
Pode precisar ser rw etc.), mas /usr
Pode. Pode ser usado para fazer ro o máximo possível./tmp
(Não confiável, mas rápido para muitos arquivos) e /home
(Deve ser confiável). O similar /var
Contém dados, enquanto /usr
Não possui estabilidade de /usr
, Mas pode ser sacrificado, mas não tanto quanto /tmp
.Uma separação /usr
pode ser útil se você tiver várias máquinas compartilhando o mesmo sistema operacional. Eles podem compartilhar uma única central /usr
em vez de duplicá-lo em todos os sistemas. /usr
pode ser montado como somente leitura.
/var
e /tmp
pode ser preenchido por programas ou daemons do usuário. Portanto, pode ser seguro tê-los em partições separadas que impediriam /
, a partição raiz, para estar 100% cheia, e afetaria muito o seu sistema. Para evitar ter duas partições distintas para elas, não é incomum ver /tmp
sendo um link simbólico para /var/tmp
.
Como usuários comuns podem fazer com que as coisas sejam gravadas em /var
e /tmp
e, portanto, potencialmente causar problemas para todo o sistema. Dessa forma, os processos do usuário podem preencher /var
e /tmp
, mas não a raiz fs. Uma separação /usr
é útil para /usr
sobre NFS ou outro fs remoto.
(Espero que esteja claro, ainda não tomei café)
O problema é que um root completo fs torna o sistema linux inoperável a uma extensão que até um administrador o corrige sem um CD de recuperação ou similar. Quando /tmp
e /var
e em particular /home
estão em uma partição separada, o root fs nunca pode ser preenchido sem que um administrador faça isso. Toma /usr
na mistura em que todas as instalações habituais serão colocadas e até a instalação de um novo software não pode causar esse problema.
Em geral, os argumentos para ter partições separadas são:
Segurança: é possível, por exemplo, montar uma partição somente leitura para impedir que usuários (ou processos) mal-intencionados substituam ou substituam binários por trojans. Portanto, se o seu binário ssh vive em/usr/local/bin e/usr/local é montado como somente leitura, será difícil para qualquer um substituir esse binário.
Flexibilidade/conveniência: por exemplo, se você configurar o/var em sua própria partição e ele ficar 80% cheio, poderá redimensioná-lo ou até movê-lo para outro disco, se necessário. Eu prefiro fazer isso do que lidar com um sistema cujo '/' esteja 100% cheio, porque os logs em/var foram de alguma forma danificados. Partições diferentes também podem ter sistemas de arquivos completamente diferentes, permitindo que seu sistema operacional use ext3 (por exemplo) e seu banco de dados use ext4, ou seu repositório de objetos para usar XFS ou seu aplicativo personalizado para usar ... dispositivos brutos!
Tradicionalmente, isso era feito dessa maneira devido às peculiaridades do hardware DEC em que foi desenvolvido. Era mais econômico comprar um disco pequeno e rápido para root e swap e um disco maior e mais lento para dados do usuário (/usr
). De certa forma, a convenção ficou emperrada.
No entanto, ainda existem algumas razões para fazer isso. Alguns comuns são:
Colocar/inicializar em uma pequena partição separada, próxima ao início do disco. O firmware mais antigo do BIOS do PC inicializava apenas a partir das primeiras 1024 faixas do disco. É menos provável que seja um problema com o hardware moderno.
Colocando partições ocupadas, como /var
ou /tmp
em discos separados para remover gargalos no acesso aos dados do usuário.
Diferentes sistemas de arquivos em diferentes partições. Por exemplo, você pode usar um sistema de arquivos de diário para /usr
mas não para partições que hospedam arquivos para um DBMS como o Oracle - o DBMS faz seu próprio diário e o sistema de arquivos pode impor uma sobrecarga significativa.
A existência de dados do usuário em um disco ou partição separada facilita a migração para um disco maior sem grandes cirurgias na máquina.
Você pode montar dados compartilhados, como diretórios pessoais ou binários de aplicativos, através do NFS.
fsck
leva muito tempo em grandes volumes para certos tipos de sistema de arquivos. Você pode desejar ter agendamentos diferentes de manutenção do sistema de arquivos para áreas do sistema (freqüentes) e áreas do usuário (menos frequentes).
Formatar um sistema de arquivos também pode ser mais rápido que rm -rf'ing. Especialmente se você tiver milhares de arquivos pequenos para apagar. Squid cache que você deseja recriar totalmente ... toneladas de arquivos de imagem que você precisa para processar, mas que podem ser descartados após a criação do resultado final. arquivos .obj de grandes compilações ... etc.
Uma pasta que às vezes coloco em uma partição separada é /usr/local/
para que qualquer software que eu criei e instalei separadamente do gerenciador de pacotes da minha distribuição possa ser reutilizado se eu alterar/atualizar minha distribuição ou por outra instalação instalada ao lado. Obviamente, não é garantido que funcione em todas as combinações possíveis, mas não faz mal.
Eu coloco /tmp
em um tmpfs, para que o conteúdo seja armazenado em RAM em vez de em disco. Isso não seria útil para /etc
ou /usr
Contudo.
Mas ser capaz de colocar diretórios diferentes em sistemas de arquivos diferentes pode ser benéfico; ou seja, /home
em um sistema de arquivos rápido/experimental como o ext4 vs um sistema de arquivos estável/confiável como o ext2 para /etc
.