Geralmente, diferentes sistemas operacionais suportam diferentes tipos de sistemas de arquivos, e infelizmente é raro que dois sistemas operacionais diferentes suportem o mesmo sistema de arquivos o suficiente para as necessidades do SO.
Por exemplo, o sistema de arquivos padrão no Windows é NTFS, que é fechado - o que significa que uma reimplementação do NTFS no Linux basicamente precisa ser feita por adivinhação e engenharia reversa, já que não há especificações oficiais para ler. O Linux possui dois drivers NTFS: um é parte do kernel, mas ainda é de baixa qualidade; o outro - ntfs-3g - é escrito usando o FUSE, o que dificulta a integração ao processo de inicialização, embora certamente possa ser feito (se inicializar com um initramfs).
Indo em outra direção, de talvez uma dúzia de sistemas de arquivos suportados pelo Linux, somente o ext2 / 3/4 possui drivers de terceiros disponíveis para o Windows (ext2IFS e ext2fsd); novamente, um deles é limitado a apenas ext2, o outro suporta o suporte a ext3 / ext4, mas apenas sem um diário, e nenhum deles é capaz de inicializar o Windows a partir de uma partição ext2 / 3/4.
A situação é basicamente a mesma, independentemente da combinação de sistemas operacionais que você possui. O Linux não pode ler o UFS do FreeBSD e precisa de um driver de terceiros para suportar o ZFS devido a problemas de licenciamento (novamente, a inicialização do Linux pelo ZFS é possível, mas não necessariamente será tão fácil quanto usar um sistema de arquivos nativo do Linux). O FreeBSD também suporta apenas ext2 e - apenas - ext3.
Em geral, o único sistema de arquivos amplamente suportado nativamente é o FAT / FAT32 da Microsoft, que é bastante lento e pouco confiável comparado a tudo o mais acima, sem mencionar suas limitações (por exemplo, tamanho de arquivo limitado a 2 ou 4 GB.)
O FAT também não suporta nativamente qualquer coisa que sistemas operacionais semelhantes ao Unix esperariam, isto é, bits de permissão, listas de acesso ou arquivos especiais como links simbólicos. (Todos os quais, sim, o NTFS suporta .)
Houve uma época em que era possível instalar o Linux em uma partição FAT junto com o MS-DOS ou sistemas Windows anteriores, usando o driver especial umsdos
filesystem que armazenaria esses metadados adicionais do Unix em arquivos especiais ocultos do Linux e do MS -DOS. No entanto, há muito que foi removido. (O próprio Windows também desativou o suporte à inicialização de uma partição FAT).
Por outro lado, a instalação de duas versões do sistema operacional same para a mesma partição, muitas vezes é possível, embora quase sempre resulte em conflitos de arquivos. Por exemplo, mesmo que o nome do diretório \WINDOWS
possa ser alterado para uma segunda instalação (algumas versões tiveram \WINNT
como padrão), os dois sistemas ainda terão controle sobre os diretórios \Users
e \Program Files
padrão .
O Linux moderno torna isso possível com facilidade - a maioria das instalações usa um initramfs que tem apenas ferramentas de espaço do usuário suficientes para montar o sistema de arquivos principal "raiz" em um caminho regular como /mnt
ou /new_root
e, em seguida, insira-o usando chroot
ou pivot_root
. Seria trivial modificar o initramfs para inserir /mnt/system-one
ou /mnt/system-two
- assim, a partição raiz teria /system-one/usr
e /system-two/usr
, por exemplo, mas ambos os sistemas seriam convencidos de que eles só vêem seus próprios /usr
, e você pode até ter a raiz real do sistema de arquivos vinculada a /all-systems
, se desejado.
(Note que em nenhum lugar eu digo que isso é realmente uma boa idéia.)