Date: Thu, 27 Jul 2006 08:39:37 +0200 From: Andreas Klemm <andreas@freebsd.org> To: hackers@freebsd.org Subject: disklabel differences FreeBSD, DragonFly Message-ID: <20060727063936.GA1246@titan.klemm.apsfilter.org>
next in thread | raw e-mail | index | archive | help
Hi, DragonFly uses another disklabel as FreeBSD I discovered. Made a test installation of their 1.6 yesterday. Later I wanted to mount the dfly filesystems on FreeBSD 6.1, of course still my main Unix ;-) But it wasn't possible. The disklabel couldn't be read and as a result devfs didn't create the devices under /dev. So I compared sys/disklabel.h on the 2 BSDs and discovered a difference at the very beginning of the struct. I'm not sure for what exact purpose Matt uses his new pack identifier. Does somebody have a clue ??? Is this perhaps something useful that FreeBSD could also use/need ? Or at least adopt, to be compatible if it doesn't hurt too much ??? Would be cool to be able to mount fs's across BSDs. Our FreeBSD 6.1 one: struct disklabel { u_int32_t d_magic; /* the magic number */ u_int16_t d_type; /* drive type */ u_int16_t d_subtype; /* controller/d_type specific */ char d_typename[16]; /* type name, e.g. "eagle" */ char d_packname[16]; /* pack identifier */ /* disk geometry: */ DragonFly: struct disklabel { u_int32_t d_magic; /* the magic number */ u_int16_t d_type; /* drive type */ u_int16_t d_subtype; /* controller/d_type specific */ char d_typename[16]; /* type name, e.g. "eagle" */ /* * d_packname contains the pack identifier and is returned when * the disklabel is read off the disk or in-core copy. * d_boot0 and d_boot1 are the (optional) names of the * primary (block 0) and secondary (block 1-15) bootstraps * as found in /boot. These are returned when using * getdiskbyname(3) to retrieve the values from /etc/disktab. */ union { char un_d_packname[16]; /* pack identifier */ struct { char *un_d_boot0; /* primary bootstrap name */ char *un_d_boot1; /* secondary bootstrap name */ } un_b; } d_un; #define d_packname d_un.un_d_packname #define d_boot0 d_un.un_b.un_d_boot0 #define d_boot1 d_un.un_b.un_d_boot1 /* disk geometry: */ Andreas /// -- Andreas Klemm - Powered by FreeBSD 6 Need a magic printfilter today ? -> http://www.apsfilter.org/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060727063936.GA1246>