Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

partitions bsd sous linux

7 réponses
Avatar
mielpop
Bonjour,

J'ai installé il y a quelques jours freebsd via ftp sur un DD en slave.
Mon DD en master est sous linux mandrake.

J'ai quelques problèmes à configurer le serveur X sous bsd, et j'aimerais
pouvoir travailler à partir de linux pour modifier les fichiers de config
sde bsd, ce qui suppose de pouvoir lire et écrire sur la partition bsd.

j'ai utilisé les options par défaut lors de l'installation de bsd.
apparemment, une seule partition bsd avec plusieurs partitions logiques...
En tout cas, sous diskdrake, linux ne détecte qu'une seule partition bsd.
J'ai monté cette partition qui apparaît dans mon fstab comme ceci :

/dev/hdb1 /mnt/bsd auto defaults 0 0

Mais je ne parviens pas à faire apparaître les fichiers.

Ai-je raté quelque chose, et quoi ?

7 réponses

Avatar
Nicolas Le Scouarnec
/dev/hdb1 /mnt/bsd auto defaults 0 0
Mais je ne parviens pas à faire apparaître les fichiers.
Ai-je raté quelque chose, et quoi ?


Oui, dans le noyau, il faut activer le support des disklabels BSD et
avec de la chance, tu arriveras a voir tes partitions FreeBSD. Je te
souhaite bien du courage, j'avais pas réussi a l'époque, et j'avais
donc fait toute ma config directement sous FreeBSD (c'est pas si galère
que ca en meme temps)


--
Nicolas Le Scouarnec

Avatar
pornin
According to Nicolas Le Scouarnec <nlsn+news+:
Oui, dans le noyau, il faut activer le support des disklabels BSD et
avec de la chance, tu arriveras a voir tes partitions FreeBSD.


Oui, il y a un gros piège :

-- Dans le monde des PC/Ms-Dos, et sous Linux, il y a un système de
découpage du disque en "partitions". La "table de partitions" au début
du disque indique le découpage en quatre partitions "primaires".
Certaines peuvent être des partitions "étendues", qui référencent alors
d'autres partitions (selon une liste chaînée). Sous Linux, les quatre
partitions primaires sont notées hdb1, hdb2, hdb3 et hdb4 (qu'elles
soient présentes ou pas), et les étendues commencent à hdb5 (je parle de
"hdb" s'il s'agit du deuxième disque dur sur le premier contrôleur ATA).

-- Dans le monde BSD, les "partitions" décrites ci-dessus sont appelées
des "slices". Le terme "partition" prend alors un autre sens : c'est une
subdivision d'une "slice" en au plus 8 (ou 16 avec le format étendu sous
OpenBSD) sous-blocs. Ces sous-blocs sont décrits par un "disklabel" qui
est situé au début du disque.

Typiquement, un FreeBSD s'installe dans une unique slice principale
(marquée par le type "A5"), puis la découpe en partitions avec un
disklabel adapté. Sur le deuxième disque du premier contrôleur
ATA, nommé ad1, la première slice est référencée par ad1s1, et les
partitions (au sens BSD) sont indiquées par une lettre (de "a" à "h").
Traditionnellement, la partition root est "a", le swap est "b", et "c"
est un alias pour toute la slice (c'est-à-dire que ad1s1c décrit un
bloc recouvrant tout ad1s1). Dans le monde Unix en général et BSD en
particulier, la Tradition est quelque chose de fort, aussi mieux vaut ne
pas déroger (il peut y avoir quelques problèmes si, par exemple, on ne
met pas le swap en "b").


Si on veut supporter ça sous Linux, alors il faut un noyau qui est
capable de reconnaître les disklabels BSD. Ça se configure lors de la
compilation du noyau. Si le noyau est ainsi équipé, il ajoutera les
partitions BSD au bout de la liste des partitions étendues. Ainsi,
si le Linux travaille normalement jusqu'à hdb7, alors la partition
root du FreeBSD sera hdb8, etc... Cette numérotation est dynamique,
donc un changement de l'état du disque (suppression ou ajout d'une
partition) ou du noyau (ajout ou retrait du support de certains
format de partitionnement, comme les disklabels) peut chambouler la
numérotation -- ce qui rend le /etc/fstab potentiellement caduque, c'est
assez pénible, même si ça se corrige facilement.


Bon, maintenant, une fois qu'on a fait reconnaître les partitions BSD
au noyau Linux, il reste le support du filesystem. Linux possède un
support du filesystem de FreeBSD sous le nom "ufs". Attention : ce
support marche bien en lecture mais est dangereux en écriture (risque
de corruption du filesystem)(j'ai moi-même planté bien des fois des
filesystems BSD comme ça). Par ailleurs, FreeBSD 5 utilise par défaut
une variante d'UFS dite UFS2, et je ne sais pas à quel point le noyau
Linux la supporte.

De façon générale, il n'est pas recommandé de faire des écritures dans
un filesystem FreeBSD depuis un Linux. À noter : c'est pareil en sens
inverse. FreeBSD a un support en lecture du filesystem ext2 de Linux (et
ça marche aussi pour ext3) mais les écritures sont dangereuses. Si on
veut un filesystem que Linux _et_ FreeBSD pourront lire _et_ écrire sans
problème, il faut prendre FAT (le filesystem Ms-Dos/Windows de base).


--Thomas Pornin

Avatar
Marwan Burelle
On Tue, 5 Oct 2004 07:50:24 +0000 (UTC)
(Thomas Pornin) wrote:

De façon générale, il n'est pas recommandé de faire des écritures dans
un filesystem FreeBSD depuis un Linux. À noter : c'est pareil en sens
inverse. FreeBSD a un support en lecture du filesystem ext2 de Linux
(et ça marche aussi pour ext3) mais les écritures sont dangereuses. Si
on veut un filesystem que Linux _et_ FreeBSD pourront lire _et_ écrire
sans problème, il faut prendre FAT (le filesystem Ms-Dos/Windows de
base).


Oui, mais ...

J'ai personellement exprérimenté 3 cas :

FreeBSD lecture/écriture sur ext2
OpenBSD lecture/écriture sur ext2
Linux (je sais plus lequel) lecture/écriture sur ufs (OpenBSD, donc pas
ufs2)

Bon et bien, sur les 2 premiers cas, je n'ai presque jamais eu de
problèmes (à part des soucis de fsck, le refut du montage par FreeBSD
n'est pas clair, le message intéressant arrivant sur la console ou dans
les logs ... ) par contre, l'écriture (et parfois simplement le montage)
sur le linux plantaient régulièrement (en fait, le montage plantait plus
de 1 fois sur 3, et l'écriture, sur les montages réussit, posait
problème, du genre sync/démontage impossible, 1/3 aussi.)

Maintenant, le dernier linux que j'ai eu avait un noyeau 2.2 ...

En gros, c'est peut être expérimental pour les 2, mais plus pour l'un
que pour l'autre ...

Pour la question initiale, je penses que booter le FreeBSD, monter
la/les partoches linux en lecture et à partir de la essayer de faire la
conf du freebsd en lisant les conf du nux, devrait résoudre le problème
(en passant, si c'est un problème lié à X, la méthode décrite dans le
handbook pour configurer X marche très bien, à noter au passage que la
souris ne se gère pas du tout pareil !)

--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
( | )

Avatar
pornin
According to Marwan Burelle :
J'ai personellement exprérimenté 3 cas :

FreeBSD lecture/écriture sur ext2
OpenBSD lecture/écriture sur ext2
Linux (je sais plus lequel) lecture/écriture sur ufs (OpenBSD, donc pas
ufs2)


Outre mes expériences personnelles, j'ai vu quelques autres cas, qui
en gros disaient que :
-- La lecture marche toujours bien, dans tous les sens ;
-- L'écriture ufs depuis un Linux (noyau 2.2.x tardif) marche plutôt
bien dans pas mal de cas si on utilise un i386 mais il y a quand
même un risque de corruption (depuis un Alpha, c'est quasiment
systématique) ;
-- L'écriture ext2 depuis un FreeBSD (4.x) marche bien pour les accès
"simples" (créer ou tronquer à zéro un fichier, le remplir par
des write() séquentiels). Les accès en écriture "compliqués" (genre
mmap() avec PROT_WRITE et MAP_SHARED) aboutissent rapidement à
des ennuis divers (dont la corruption de filesystem).

En résumé, on peut peut-être prétendre que l'ext2 de FreeBSD est plus
stable que l'UFS de Linux, mais c'est assez difficile de faire des
statistiques fiables. J'ai pu refaire un "make world" avec /usr/obj
en ext2, et ça a marché impeccable : la compilation ne fait que des
écritures simples. En revanche, poser un spool de news d'inn sur une
partition ext2, c'est chercher les ennuis (le fichier "history" part
aux fraises).

Dans tous les cas, il y a risque de corruption, donc peu de sérénité.
Je recommande de ne faire ce genre de montage que pour les cas
exceptionnels, où on n'a pas le choix.



Bon, sinon, on peut essayer de booter les deux OS en même temps avec
VMWare, et faire des montages NFS.


--Thomas Pornin

Avatar
mielpop
Thomas Pornin wrote:

According to Nicolas Le Scouarnec <nlsn+news+:
Oui, dans le noyau, il faut activer le support des disklabels BSD et
avec de la chance, tu arriveras a voir tes partitions FreeBSD.



Bon, maintenant, une fois qu'on a fait reconnaître les partitions BSD
au noyau Linux, il reste le support du filesystem. Linux possède un
support du filesystem de FreeBSD sous le nom "ufs". Attention : ce
support marche bien en lecture mais est dangereux en écriture (risque
de corruption du filesystem)(j'ai moi-même planté bien des fois des
filesystems BSD comme ça). Par ailleurs, FreeBSD 5 utilise par défaut
une variante d'UFS dite UFS2, et je ne sais pas à quel point le noyau
Linux la supporte.


Ok, j'ai vérifié avec un make xconfig que le support de disklabel et d'UFS
était activé dans le kernel


Si on veut supporter ça sous Linux, alors il faut un noyau qui est
capable de reconnaître les disklabels BSD. Ça se configure lors de la
compilation du noyau. Si le noyau est ainsi équipé, il ajoutera les
partitions BSD au bout de la liste des partitions étendues. Ainsi,
si le Linux travaille normalement jusqu'à hdb7, alors la partition
root du FreeBSD sera hdb8, etc... Cette numérotation est dynamique,
donc un changement de l'état du disque (suppression ou ajout d'une
partition) ou du noyau (ajout ou retrait du support de certains
format de partitionnement, comme les disklabels) peut chambouler la
numérotation -- ce qui rend le /etc/fstab potentiellement caduque, c'est
assez pénible, même si ça se corrige facilement.


Ok, mais alors, comment faire la syntaxe dans /etc/fstab

J'ai essayé :

/dev/hdb1 /mnt/bsd auto defaults 0 0
/dev/hdb8 /mnt/bsdracine auto defaults 0 0
/dev/hdb10 /mnt/bsdusr auto defaults 0 0

Si j'ai bien compris l'explication qui précède : /dev/hdb1 correspond à la
partition bsd étendue et /dev/hdb8+n aux partitions logiques...

Avec pas de /dev/hdb9 qui est le swap

Cela ne fonctionne pas...

En passant par diskdrake et la reconaissance automatique de la table des
partitions, le disque hdb n'est pas reconnu ??

J'ignore pourquoi : pourrait-il s'agir d'un filesystem non reconnu sous mon
noyeau 2.6-3 : genre UFS2 ?


Avatar
pornin
According to mielpop :
Ok, mais alors, comment faire la syntaxe dans /etc/fstab

J'ai essayé :

/dev/hdb1 /mnt/bsd auto defaults 0 0
/dev/hdb8 /mnt/bsdracine auto defaults 0 0
/dev/hdb10 /mnt/bsdusr auto defaults 0 0

Si j'ai bien compris l'explication qui précède : /dev/hdb1 correspond à la
partition bsd étendue et /dev/hdb8+n aux partitions logiques...


/dev/hdb1 n'a pas à être montée : c'est une partition mais pas un
système de fichiers(*).

Par ailleurs, j'ai dit "hdb8" si PAR AILLEURS les partitions "étendues"
amènent le compte à 7. Ça dépend du disque. Il faut aller regarder dans
ce que raconte le noyau (avec "dmesg", on a les messages de boot, qui
contiennent une liste des partitions détectées).

De plus, "cela ne fonctionne pas" n'est pas une phrase prodigieuse de
précision.

Enfin, pour faire des essais de montage, le mieux est quand même
d'essayer des "mount" manuels. Modifier /etc/fstab, c'est la phase
suivante, quand on veut automatiser.


--Thomas Pornin

(*) Enfin ça _pourrait_ marcher, en montant la partition racine, mais ce
serait un peu par hasard. C'est parce que la première partition (BSD)
commence traditionnellement exactement au début de la slice, donc le
Linux pourrait y accéder directement en tapant dans la slice -- mais je
ne recommande pas et ça pourrait bien faire planter d'autres choses.

Avatar
Nicolas Le Scouarnec
Par ailleurs, j'ai dit "hdb8" si PAR AILLEURS les partitions "étendues"
amènent le compte à 7. Ça dépend du disque. Il faut aller regarder dans
ce que raconte le noyau (avec "dmesg", on a les messages de boot, qui
contiennent une liste des partitions détectées).


Avec un petit exemple, ca donne cela:
hda: 78125000 sectors (40000 MB) w/2048KiB Cache, CHS383/255/63,UDMA(100)
hda: hda1 hda2 hda3

C'est donc un disque avec les 3 partitions hda1...3

De plus, "cela ne fonctionne pas" n'est pas une phrase prodigieuse de
précision.


Pour ma part, c'était Linux qui ne reconnaissait pas le type de la
partition UFS. En passant, si on jette un oeil a la page de manuel de
mount pour linux (en anglais), on a un petit apercu des options
disponibles pour ufs. Notament une ufstypeDbsd (pour Free/Open/NetBSD)

Pour ma part, meme avec cela, il avait un probleme, mais j'avais
d'autres problemes sur mon disques (les partitions se chevauchaient, et
si FreeBSD s'y retrouvait, Linux pouvait avoir du mal).

--
Nicolas Le Scouarnec