En général, les différents systèmes d'exploitation prennent en charge différents types de systèmes de fichiers, et il est malheureusement rare que deux systèmes d'exploitation différents prennent en charge le même système de fichiers de manière suffisante pour les besoins du système d'exploitation.
Par exemple, le système de fichiers par défaut de Windows est NTFS, qui est fermé - ce qui signifie qu'une réimplémentation de NTFS par Linux doit être faite au hasard et par rétro-ingénierie, car il n'y a pas de spécifications officielles à lire. Linux a deux pilotes NTFS : l'un fait partie du noyau, mais est encore de faible qualité ; l'autre - ntfs-3g - est écrit en utilisant FUSE, ce qui rend son intégration dans le processus de démarrage un peu délicate, bien que cela puisse certainement être fait (si le démarrage se fait avec un initramfs).
Dans l'autre sens, sur une douzaine de systèmes de fichiers supportés par Linux, seul ext2/3/4 a des pilotes tiers disponibles pour Windows (ext2IFS et ext2fsd) ; encore une fois, l'un d'eux est limité à ext2, l'autre prétend supporter ext3/ext4 mais seulement sans journal, et aucun d'eux n'est capable de démarrer Windows à partir d'une partition ext2/3/4.
La situation est fondamentalement la même, quelle que soit la combinaison de systèmes d'exploitation dont vous disposez. Linux ne peut pas lire UFS à partir de FreeBSD et a besoin d'un pilote tiers pour supporter ZFS en raison de problèmes de licence (encore une fois, le démarrage de Linux à partir de ZFS est possible, mais il ne sera pas nécessairement aussi facile que d'utiliser un système de fichiers natif de Linux). FreeBSD supporte aussi seulement ext2 et - à peine - ext3.
En général, le seul système de fichiers largement pris en charge en natif est le système FAT/FAT32 de Microsoft. tout à fait lent et peu fiable par rapport à tout ce qui précède, sans parler de ses limitations (par exemple, la taille des fichiers est limitée à 2 ou 4 Go).
La FAT ne prend pas non plus en charge de manière native tout ce que les systèmes d'exploitation de type Unix attendent, à savoir les bits de permission, les listes d'accès ou les fichiers spéciaux comme les liens symboliques. (Tout cela, oui, NTFS hace soutien.)
Il fut un temps où il était possible d'installer Linux sur une partition FAT à côté de MS-DOS ou des premiers systèmes Windows, en utilisant le logiciel spécial umsdos
qui stockerait ces métadonnées Unix supplémentaires dans des fichiers spéciaux cachés à la fois à Linux et à MS-DOS. Cependant, il a été supprimé depuis longtemps. (Windows lui-même a abandonné la prise en charge du démarrage à partir d'une partition FAT, également).
D'autre part, l'installation de deux versions de la même système d'exploitation sur la même partition souvent est possible, bien que cela entraîne presque toujours des conflits de fichiers. Par exemple, même si le fichier \WINDOWS
Le nom du répertoire peut être changé pour une deuxième installation (certaines versions avaient même \WINNT
comme valeur par défaut), les deux systèmes s'attendront toujours à avoir le contrôle sur la valeur par défaut de l'option \Users
y \Program Files
les répertoires.
Les Linux modernes rendent cela possible assez facilement - la plupart des installations utilisent un initramfs qui possède juste assez d'outils en espace utilisateur pour monter le système de fichiers principal "racine" sur un chemin régulier tel que /mnt
o /new_root
puis saisissez-le en utilisant chroot
o pivot_root
. Il serait trivial de modifier l'initramfs pour lui faire entrer /mnt/system-one
o /mnt/system-two
à la place - donc la partition racine aurait /system-one/usr
y /system-two/usr
par exemple, mais les deux systèmes seraient convaincus qu'ils ne voient que leur propre système. /usr
et vous pourriez même avoir la racine du système de fichiers réelle liée à la partie supérieure de /all-systems
si vous le souhaitez.
(Notez que je ne dis nulle part que c'est réellement une bonne idée).