Experimentei o Ubuntu 12.04 e com base no meu entendimento 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 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 são duas distros diferentes com pacotes diferentes, mas existe alguma maneira de compartilhar o espaço em disco? Para que ambos os sistemas operacionais possam ter os seus próprios /usr/local
na mesma partição ou algo parecido?
Responder1
Você pode compartilhar /usr/local
. Às vezes, as duas distribuições terão diferentes versões de bibliotecas disponíveis, então pode ser necessário instalar algumas bibliotecas de um lado ou de outro ou em /usr/local
si. O fardo de instalar uma ou outra biblioteca extra provavelmente será compensado pela não necessidade de manter duas instalações de cada programa no formato /usr/local
.
Se houver programas que você deseja ativar apenas /usr/local
para um dos sistemas, você poderá fazer um acordo diferente: não compartilhe /usr/local
, mas compartilhe umarrumarrepositório e faça links simbólicos em /usr/local
ambos os sistemas.
Você não precisa criar /usr/local
uma partição separada para compartilhá-la. Você pode armazená-lo na partição de um sistema, montá-lo onde quiser no outro sistema e criar um link simbólico.
Você não pode compartilhar /var
. Existem pequenas diferenças na forma como os diretórios são organizados e cada distribuição possui seus próprios IDs de usuário. Você pode compartilhar partes /var
, por exemplo, o spool de correio.
35 GB /var
é enorme. Você não precisa disso para um sistema básico. Se você for 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 separar /var
a partição raiz, então combine-as. Você não menciona /usr
na sua lista: isso também não precisa ser separado da partição raiz. Basta criar uma partição de sistema para cada sistema operacional, além de um arquivo /home
. Você precisa de mais de 15 GB para a partição do sistema, a menos que seja muito conservador nos programas que instalará. Faça uma partição de sistema de 50 GB e você ficará bem.
Não há necessidade de uma /boot
partição separada, a menos que você tenha requisitos adicionais, como criptografar a partição do sistema.
Responder2
Além dos links simbólicos, você também pode usar bind mounts
:
http://docs.1h.com/Bind_mounts
Basicamente, você pode ter uma partição com um sistema de arquivos (semelhante à configuração do Anthon). Neste caso, supondo que você tenha o sistema de arquivos montado, /mnt/local
você faria apenas 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 em um diretório existente sem destruir/mover o diretório /usr/local
real ./usr/local
Aqui está 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
Responder3
/usr/local
(ou seja, software compilado/instalado localmente) deve funcionar bem,contanto que as bibliotecas do sistema usadas por tudo o que existe sejam compatíveis. Isso significa que você pode se safar com distribuições "para uso em desktop" totalmente contemporâneas. Se você tentar misturar e combinar, digamos que Fedora e RHEL/CentOS fazemtodoscom base na distribuição com as bibliotecas mais antigas (RHEL/CentOS neste caso), já que as bibliotecas base ( glibc
principalmente) são razoavelmente compatíveis com versões anteriores. Vocêvaiencontrar problemas com C++ (o tempo de execução do C++ tende a mudar bastante entre as versões), algumas bibliotecas gráficas alteram as interfaces quer queira quer não. Qualquer coisa relacionada ao ambiente de desktop (seja KDE ou Gnome ou qualquer outro) provavelmente está fora de questão.
Responder4
Como configurar múltiplas instalações em uma máquina é algo que depende do seu estilo de trabalhar com essas instalações. Outra coisa a ter em mente é que, a menos que você faça algum trabalho bacana em uma máquina virtual usando partições reais, essas duas instalações não funcionarão ao mesmo tempo.
Na minha experiência, a /home
partição deve ser compartilhável sem muitos problemas. Quaisquer usuários feitos especificamente para aplicativos ( dovecot
, fetchmail
), mas qualquer um dos sistemas normalmente não possui diretórios reais /home
como os 'usuários normais'. Eu compartilho nomes de login entre diferentes versões do Ubuntu, mas isso às vezes causa problemas ao voltar para uma instalação mais antiga, porque os arquivos de configuração em seu diretório inicial foram convertidos automaticamente. Para resolver esses problemas, tenho o mesmo login com diferentes diretórios iniciais em /home
, mas com o mesmo ID de usuário e ID de grupo para compartilhar os dados. Você sempre pode fazer um link entre subdiretórios específicos (por exemplo, aqueles com sua música) para os quais não há risco de atualizações incompatíveis/irreversíveis.
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 /usr/local
se você instalar a partir do código-fonte e, por exemplo, pip
instalações para módulos python fizerem o mesmo. Para evitar problemas aí eu faria /mnt/local
em cada máquina montar a partição designada para /usr/local
lá, criar diretórios ubuntu
e suse
nessa partição e soft link ( 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 sobrescrever acidentalmente. Você sempre pode criar links posteriormente entre coisas que deseja compartilhar explicitamente.
Uma coisa adicional que posso recomendar é manter algum tipo de log do que você instalou para cada instalação (eu uso o emacs no modo changelog com um arquivo para cada combinação máquina-distro-revisão), para que você possa refazer a instalação se atualizar e você não precisa se lembrar de quais coisas extras você instalou. Hoje em dia tenho um setupnewsystem
script que faz todas as coisas extras para mim, inclusive colocar /etc
sob controle de revisão após a instalaçãomercurial