Package: boot-floppies Version: N/A; reported 2002-04-12 Severity: normal See subject. mke2fs and mkreiserfs do not touch the first 100 bytes of the partition, but exactly this area (first 4 chars) is used to detect the XFS filesystem. So you can reinitialise an ex-XFS partition as often as you want, dbootstrap detects the old XFS header and runs mount with -t xfs.
I tried to make a workaround (attachment), though I did not work and have not much time this weekend. If someone wants to fix and test, go ahead. Gruss/Regards, Eduard. -- System Information Debian Release: 3.0 Architecture: i386 Kernel: Linux zombie 2.4.18 #2 Mit Apr 10 11:14:30 CEST 2002 i686 Locale: LANG=de_DE@euro, LC_CTYPE=de_DE@euro -- <Zomb> kennt jemand eine DAU-freundliche Möglichkeit, die Uhrzeit einzustellen? <roots-> zomb: date --set <Zomb> roots-: muss ich da auf diese DOS-Ebene? Igit, da muss man ja tippen... -- #debian.de
Index: utilities/dbootstrap/partition_config.c =================================================================== RCS file: /cvs/debian-boot/boot-floppies/utilities/dbootstrap/partition_config.c,v retrieving revision 1.164 diff -u -r1.164 partition_config.c --- utilities/dbootstrap/partition_config.c 2002/04/06 20:29:40 1.164 +++ utilities/dbootstrap/partition_config.c 2002/04/11 23:01:33 @@ -766,8 +766,8 @@ char xfsmagic[6]; char e2fsmagic[4]; char shfsmagic[11]; + int e2notfound; - bzero(xfsmagic, sizeof(xfsmagic)); bzero(e2fsmagic, sizeof(e2fsmagic)); bzero(shfsmagic, sizeof(shfsmagic)); @@ -780,6 +780,9 @@ fread (xfsmagic, 5, 1, fd); fseek (fd, 65588, SEEK_SET); fread (shfsmagic, 10, 1, fd); + fseek (fd, 1080, SEEK_SET); + fread (e2fsmagic, 2, 1, fd); + e2notfound = (strncmp("\x53\xef", e2fsmagic, 2)); fseek (fd, 1116, SEEK_SET); fread (e2fsmagic, 1, 4, fd); @@ -789,18 +792,8 @@ else strcpy(e2fsmagic, "2"); - if (!(strcmp(xfsmagic, "XFSB"))) { /* XFS */ -#if #cpu(powerpc) - if (verify_powerpc_mount(mount_point, "xfs")) - return 1; -#endif - INFOMSG("Mounting XFS partition %s on %s", partition->name, mount_point); - snprintf(prtbuf, sizeof(prtbuf), "mount -t xfs %s %s", partition->name, real_mount_point); - status = execlog(prtbuf, LOG_INFO); - } - /* thanks to [EMAIL PROTECTED] for the clue about the reiserfs magic number */ - else if (!(strcmp(shfsmagic, "ReIsErFs") && strcmp(shfsmagic, "ReIsEr2Fs"))) /* reiserfs */ + if (!(strcmp(shfsmagic, "ReIsErFs") && strcmp(shfsmagic, "ReIsEr2Fs"))) /* +reiserfs */ { #if #cpu (powerpc) if (verify_powerpc_mount(mount_point, "reiserfs")) @@ -828,6 +821,15 @@ partition->name, real_mount_point); status = execlog(prtbuf, LOG_INFO); } + else if (e2notfound && !(strcmp(xfsmagic, "XFSB"))) { /* XFS */ +#if #cpu(powerpc) + if (verify_powerpc_mount(mount_point, "xfs")) + return 1; +#endif + INFOMSG("Mounting XFS partition %s on %s", partition->name, mount_point); + snprintf(prtbuf, sizeof(prtbuf), "mount -t xfs %s %s", partition->name, +real_mount_point); + status = execlog(prtbuf, LOG_INFO); + } else if (is_ext3) { /* ext2/ext3 */ if (!strcmp(mount_point, "/boot")) { if (