partições compartilhadas FreeBSD e Linux

5

Quais diretórios, e como, posso compartilhar entre o FreeBSD e o Linux? Em particular, como posso desduplicar respectivamente / usr / home e / home? Eu acho que compartilhar diretamente uma partição entre os dois sistemas pode levar a um conflito de pontos, então essa pode não ser a solução correta. A união da montagem da partição compartilhada é razoável? Dessa forma, eu poderia mover os arquivos de ponto para a partição "/" de cada sistema operacional e compartilhar o restante dos arquivos na partição compartilhada.

Qual sistema de arquivos devo usar para a partição inicial compartilhada? Eu tenho menos de 2GB de RAM, então eu não acho que o ZFS vai se comportar, pelo que eu li. Talvez o ext2 faça isso? Quaisquer melhores opções? EDIT: já é suporte ao kernel write-to-UFS no Linux estável?

  • Linux distro é LMDE.
  • Na verdade, usando o PC-BSD, mas até onde eu li, ele deveria se comportar como o FreeBSD para isso. Corrija-me se estiver errado.
  • As partições seriam:
OS      Mountpoint FS    Size (GiB; Total:~160GB)
Linux   /          ext4  16
FreeBSD /          ufs   16
Shared  /mnt/home/ ext2? ~124    # EDITED: See below
Shared         -   swap  4

Quaisquer outras partições que eu deveria fazer? É uma estação de trabalho sem servidores "persistentes", mas eu posso brincar com prisões no FreeBSD. Talvez eu deva ter uma partição para isso?

Disclaimer: Eu não usei sistemas de arquivos union antes, e sou novo no BSD em geral; sinta-se à vontade para propor soluções melhores:)

EDITAR: Que tal adicionar uma árvore "dotfiles" em cada partição raiz e montar a união?

Mount points in FreeBSD:
/
/mnt/home/
/usr/home/: /usr/dotfiles/ U /mnt/home/            # /usr/dotfiles/ has priority

Example contents:
/usr/dotfiles/fchurca/: .cache .kderc
/mnt/home/fchurca/: .vimrc development/ Documents/ # .vimrc isn't platform-specific
/usr/home/fchurca: .cache .kderc .vimrc development/ Documents/

Dessa forma, pode funcionar para todos os usuários (dois no máximo) da caixa.

    
por fchurca 17.01.2013 / 06:20

3 respostas

6

Você deve somente compartilhar partições data . Não compartilhe partições de programas.

/home é bom, mas evite bin, dev, etc, usr, var, opt e praticamente qualquer outra coisa além de home.

Quanto ao sistema de arquivos, ele terá que ser algo para o qual ambos os kernels possuam drivers. Eu não tenho certeza de quão bom é o suporte ext do BSD, mas o suporte a UFS do Linux é bom o suficiente, o que significa que você provavelmente quer ficar com o UFS ou o MSDOS. A partição swap pode ser compartilhada desde que ambos reconheçam o mesmo tipo de partição para swap (o que eu acredito que eles façam, mas não tenho certeza).

E se você estiver compartilhando partições entre sistemas operacionais, não fará nada como tentar executar uma em uma VM a partir da outra. Os sistemas operacionais precisam ter controle exclusivo sobre os sistemas de arquivos. Dois sistemas operacionais em execução diferentes, que ambos têm controle exclusivo sobre uma partição, levarão à corrupção rapidamente.

    
por 17.01.2013 / 08:36
6

Eu recomendaria não para compartilhar a partição /home . O problema é que muitos aplicativos armazenam suas configurações e dados em arquivos e diretórios ocultos em cada diretório inicial do usuário. O risco é muito alto, você não usa a mesma versão desses aplicativos em ambos os ambientes (digamos, gnome, kde, gtk, firefox, thunderbird, VirtualBox, wine e outros). Se for esse o caso, as incompatibilidades ascendentes, descendentes ou de arquitetura podem atrapalhar esses arquivos e tornar esses aplicativos instáveis ou, pior, fazer com que você perca dados.

Acabei de verificar e tenho mais de cem desses arquivos / diretórios no meu diretório pessoal.

$ ls -d ~/.??* | wc -l
119

Sugiro criar uma partição compartilhada dedicada, montada, por exemplo, em /export/shared e, possivelmente, usar links para compartilhar arquivos e diretórios específicos quando você tiver certeza de que eles são compatíveis. Certifique-se de fazer backup deles antes de atualizar esses aplicativos em ambos os lados.

Depois de ler muito tarde o seu comentário que eu anteriormente perdi, aqui estão algumas informações adicionais para melhor responder à sua pergunta:

Você pode compartilhar os diretórios Documents , Download , Images , Music , Public e os diretórios padrão ou personalizados semelhantes que estão localizados em $HOME . Desktop seria arriscado. O ZFS permite que esses diretórios sejam armazenados em seus próprios sistemas de arquivos e com seus próprios pontos de montagem. Certamente é possível ter dois diretórios home em seus próprios sistemas de arquivos, um para o FreeBSD e outro para o Linux, e ter o loopback de subdiretórios compartilhados (sistemas de arquivos) montado em ambos os diretórios home. No Linux, isso seria um -bind mount e no BSD, um nullfs one. Um problema que você pode ter é que o mool do ZFS pode não ser importado automaticamente quando você alterna de um sistema operacional para outro. O que eu faço para solucionar isso é definir o mesmo hostid em ambos os lados.

    
por 17.01.2013 / 11:17
2

Eu tenho um laptop no qual estou fazendo várias inicializações em quatro sistemas operacionais.

Eu estava pensando em fazer algo semelhante com o diretório home para sistemas Linux e BSD. Eu olhei para o zfs, mas existem alguns problemas com a compatibilidade de versões (e eu só tenho 3 Gigs of Ram, então talvez seja isso). Além disso, acho que o suporte ao Linux para o UFS é limitado, então estou inclinado para o ext2.

Eu estava pensando que talvez para o diretório /home/srobert/.config (e dotfiles semelhantes), eu poderia usar um script que seria executado no login, talvez de .xinitrc, que seria link .config-freebsd para .config OU link .config-linux para .config, dependendo da saída do uname. Eu não tentei isso (ainda) mas é uma teoria.

Para citar o grande yogue: Em teoria, a teoria e a prática são as mesmas. Na prática, eles não são.

    
por 07.03.2013 / 23:04