Posso compartilhar / usr / local entre várias distribuições do Linux?

6

Eu tentei o Ubuntu 12.04 e com base no meu entendimento eu fiz as seguintes partições:

  • Troca de 2 GB (tenho 2 GB de RAM)
  • 1GB /boot , já que instalarei diferentes versões do kernel (estou iniciando o desenvolvimento do kernel)
  • 35 GB /var
  • 40 GB /usr/local
  • 407 GB /home
  • 15 GB / (raiz)

Agora eu quero instalar o OpenSUSE 12.2 junto com o Ubuntu 12.04. Posso compartilhar /var e /usr/local entre os dois sistemas operacionais? Eu sei que eles são duas distribuições diferentes com pacotes diferentes, mas existe alguma maneira de compartilhar o espaço em disco? Para que ambos os sistemas operacionais possam ter seus próprios /usr/local na mesma partição ou algo parecido?

    
por ArunMKumar 03.05.2013 / 05:30

4 respostas

3

Você pode compartilhar /usr/local . Às vezes, as duas distribuições terão diferentes versões de bibliotecas disponíveis, portanto, talvez seja necessário instalar algumas bibliotecas de um lado ou de outro ou em /usr/local . O ônus de instalar a biblioteca extra ímpar provavelmente será compensado por não precisar manter duas instalações de cada programa em /usr/local .

Se houver programas que você deseja somente em /usr/local para um dos sistemas, você pode fazer um arranjo diferente: não compartilhe /usr/local , mas compartilhe um stow e crie links simbólicos para o /usr/local de ambos os sistemas.

Você não precisa colocar /usr/local em uma partição separada para compartilhá-lo. Você pode armazená-lo na partição do sistema de um sistema, montá-lo onde quiser no outro sistema e criar um link simbólico.

Você não pode compartilhar /var . Há pequenas diferenças em como os diretórios são organizados e cada distribuição possui seus próprios IDs de usuário. Você pode compartilhar partes de /var , por exemplo, o spool de correio.

35 GB para /var é enorme. Você não precisa disso para um sistema básico. Se você colocar muitos dados lá (por exemplo, porque é onde está a raiz do seu servidor web), dimensione o sistema de arquivos de acordo com seus dados. Não faz sentido dividir /var da partição raiz, então combine-os. Você não menciona /usr em sua lista: isso também não precisa ser separado da partição raiz. Basta criar uma partição do sistema para cada sistema operacional, além de um /home compartilhado. Você precisa de mais de 15 GB para a partição do sistema, a menos que você seja muito conservador nos programas que você instalará. Faça uma partição do sistema de 50GB e você ficará bem.

Não há necessidade de uma partição /boot separada, a menos que você tenha requisitos adicionais, como a criptografia da partição do sistema.

    
por 04.05.2013 / 02:21
2

Além de links simbólicos, você também pode usar bind mounts : link

Basicamente, você pode ter uma partição com um sistema de arquivos (semelhante à configuração do Anthon). Nesse caso, supondo que você tenha o sistema de arquivos montado em /mnt/local , basta fazer mount --bind /mnt/local/ubuntu /usr/local na instalação do ubuntu e mount --bind /mnt/local/suse /usr/local na instalação do suse.

Um benefício de fazer isso é que você pode fazer isso sobre um /usr/local existente sem destruir / mover o diretório /usr/local real.

Veja um exemplo:

# mkdir foo
# touch foo/nowyouseeme
# mkdir bar
# touch bar/nowyoudont
# ls foo
nowyouseeme
# mount --bind ./bar ./foo
# ls foo
nowyoudont
# umount foo
# ls foo
nowyouseeme
    
por 03.05.2013 / 08:09
2

/usr/local (ou seja, software compilado / instalado localmente) deve funcionar bem, desde que as bibliotecas do sistema usadas por qualquer coisa que exista sejam compatíveis . Isso significa que você pode se safar disso com distribuições contemporâneas "para uso em desktop". Se você tentar misturar e combinar, diga Fedora e RHEL / CentOS do all construindo na distribuição com as bibliotecas antigas (RHEL / CentOS neste caso), já que as bibliotecas base ( glibc principalmente) são razoavelmente retrocompatível. Você irá encontrar problemas com o C ++ (o tempo de execução do C ++ tende a mudar um pouco entre as versões), algumas bibliotecas gráficas alteram as interfaces a qualquer momento. Qualquer ambiente de desktop relacionado (seja KDE ou Gnome ou qualquer outro) provavelmente está fora de questão.

    
por 03.05.2013 / 16:56
1

Como configurar várias instalações em uma máquina é algo que depende do seu estilo de trabalhar com essas instalações. Outro ponto a ter em mente é que, a menos que você faça algum trabalho de máquina virtual bacana usando partições reais, essas duas instalações não funcionarão ao mesmo tempo.

Na minha experiência, a /home partion deve ser compartilhável sem muito problema. Quaisquer usuários feitos especificamente para aplicativos ( dovecot , fetchmail ), mas qualquer um dos sistemas normalmente não tem diretórios reais em /home , como os 'usuários normais'. Eu compartilho nomes de login entre diferentes versões do Ubuntu, mas isso às vezes dá problemas para voltar a uma instalação mais antiga, porque os arquivos de configuração no seu diretório pessoal foram convertidos automaticamente. Para resolver esses problemas, tenho o mesmo login com diferentes diretórios base em /home , mas com o mesmo ID de usuário e ID de grupo para compartilhar os dados. Você sempre pode criar um link entre um subdiretório específico (por exemplo, aqueles com sua Música) para os quais não há risco de atualizações incompatíveis / irreversíveis.

Eu não tenho uma partição separada desde que trabalhei em um PDP 11/70 em meados dos anos 80, então não sei por que seu amigo recomendou isso. Além disso, vários programas serão instalados por padrão em /usr/local se você instalar a partir da origem e, por exemplo, pip installs para módulos python fazem o mesmo. Para evitar problemas lá, eu faria um /mnt/local em cada máquina montar a partição designada para /usr/local lá, faça os diretórios ubuntu e suse nessa partição e link flexível ( ln -s /usr/local /mnt/local/ubuntu ) para cada resp. máquina. Dessa forma, você compartilha o espaço nessa partição sem correr o risco de sobregravação acidental. Você sempre pode criar links mais tarde entre coisas que você deseja compartilhar explicitamente.

Uma coisa adicional que posso recomendar é manter algum tipo de registro para o que você instalou para cada instalação (eu uso o emacs no modo changelog com um arquivo para cada combinação máquina-distribuição-revisão), então você pode refazer a instalação se atualizar e você não precisa se lembrar de quais coisas extras você instalou. Hoje em dia tenho um script setupnewsystem que faz todas as coisas extras para mim, incluindo colocar /etc sob controle de revisão depois de instalar mercurial

    
por 03.05.2013 / 06:29