Bug#80325: Installer misreports partition numbers
Paul.Chr@t-online.de (Chris Paul) writes:
> it took me quite a few days to `find ..` your "flavours" in a path requiring 70 chars ... ;-)
> There was no vanilla, but the test results of the rest looks really interesting.
Vanilla is the same as "no flavor", that is, the images right in
images-1.44/*.bin (rather than images-1.44/compact/*.bin).
> > ... I need to know what "flavor" you were booting from...
> So sit down, ...;-)
> <Long Story>
> Lets begin with my current layout:
> susa:~ # fdisk -l /dev/hda
> Disk /dev/hda: 240 heads, 63 sectors, 3970 cylinders
> Units = cylinders of 15120 * 512 bytes
> Device Boot Start End Blocks Id System
> /dev/hda1 * 1 258 1950448+ 6 FAT16
> /dev/hda2 259 775 3908520 a5 BSD/386
> /dev/hda3 776 820 340200 4f QNX4.x 3rd part
> /dev/hda4 821 3970 23814000 5 Extended
> /dev/hda5 821 1078 1950448+ 83 Linux
> /dev/hda6 * 1079 1336 1950448+ eb BeOS fs
> /dev/hda7 1337 1594 1950448+ 83 Linux
> /dev/hda8 1595 2111 3908488+ 83 Linux
> /dev/hda9 2112 3117 7605328+ 83 Linux
> /dev/hda10 3118 3892 5858968+ 83 Linux
> /dev/hda11 3893 3970 589648+ 82 Linux
> - 3 primary partitions a the beginning, with a BSD Unix containing slices at pos. 2,
> - swap at disk/extended partition end (11)
> So now my current OS:
> susa:~ # uname -a
> Linux susa 2.2.16 #1 Wed Aug 2 20:03:33 GMT 2000 i686
> susa:~ # dmesg | grep hda:.hda1
> hda: hda1 hda2! hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 > <
> hda12 hda13 hda14 hda15 >
> - quite broken! It is a SuSE 7.0 "apm" kernel with default modules, unchanged, AFAIRemember...
> (It __should__ show: hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8
> hda9 hda10 hda11 >)
I believe this is not actually broken, but, in fact, the SUSE-supplied
kernel must have been compiled to support BSD disklabels, and
therefore, it looks into the bsd disklabel in hda2 and interprets the
slices defined within as extended partitions. I would assume, from
the output, you have 4 such slices, and those are probably put onto
hda5 -- hda8, or else hda12 -- hda15 (as you surmise below).
> My custom kernels dont show these "extra partitions" (2.4.0-test5
> and 2.2.12)
Probably because your custom kernel wasn't compiled with
> - And [c]fdisk, too.
> 1) idepci:
> - "Show Part. Table (?)" from "Setup (?)" shows something like
> /dev/hda1 not mounted (type ok)
> 2 not avail. (type ok)
> 5 not avail. (type ok)
> 6 not avail. (type ok)
> 7 not avail. (type ok)
> 8 not avail. (type ok)
> 3 not avail. unknown
> 4 not avail. extended
> 9 not mounted linux nat.
> 10 not avail. unknown <---(???)
> 11 not mounted linux nat.
> - dmesg: looks like it should (like hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 >)
> - BUT /var/log/messages: (something like...)
> user.warn: dbootstrap: no dev. name f. disk /dev/hda part. 12 (skipped)
> (and same entry for part. 13, 14, 15)
This is because dbootstrap uses libfdisk, which is compiled with BSD
disklabel support, but the kernel doesn't have bsd disklabel support.
> - fdisk: OK
fdisk and cfdisk, unlike dbootstrap/libfdisk, seem to use or not use
the kernel BSD disklabel support, depending on whether the kernel was
compiled to use them.
> 2) compact:
> Same like idepci; BUT: /var/log/messages only warnings for part. 12
> and 13...
> - fdisk: OK
Woah, that's wierd -- why would they be different I wonder.
> 3) udma66:
> - Very much and very fast scrolling-by errors "can't ...(open device???)" before inittial screen...
> - "Show Part. Table (?)"
> - same like "idepci" (see above) PLUS
> 12 not mounted
> 13 not mounted
> 14 not mounted
> 15 not in use <- whatever it means...
> - dmesg: hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 >
> - log/messages: nothing but syslog started...
> - fdisk: OK
Yes, this kernel has CONFIG_BSD_DISKLABEL.
Now, in the compact/idepci case, where we don't have hda12 - hda15, is
it the case that dbootstrap thinks you have hda12 - hda15? I'm not
sure, but I think it does.
> 1) the order of the partitions 1-2-5-6-7-8-3-4-...
> 1 is fat, 2 BSD with slices, 3 unknown to linux (but was the same with ext2), 4 extended.
> Some process
Well, the kernel.
> inserts the slices with numbers greater than the extended one at the
> places where they are found on disk, ads the real partition (3) and
> the following ... This ordering keeps constant whether the kernel
> sees more partitions or not...
Are you saying the slices come up has hda5-8 ?
> 2) Part. 10: Why "not available"?
> 3) Part. 15: What could be meant with "not in use"?
Dunno. It's all kernel stuff. I have to keep my focus on this issue.
> 4) All that doesnt affect fdisk, mkfs, mount,swapon,... (but
> unfortunatly you might "not quite get what you want"...)
I would think these *would* be affected by the partitions as seen by
the kernel.... are you saying they are not?
> 5) My partitoning is ok: the "newer" lilo (e.g. found on debian)
> boots what it can boot - up to the high cylinders and the great GRUB
> boots them all...
> 6) All that disappeard when I temporarily changed my type-id of the
> BSD-Partition (Did you ever hear of "56 Golden Bow" ?)
> Last but not least: Q.: Why dont you use some fdisk -l | sed | grep
> && awk for display AND mkfs?
Eh? Are you asking why we have libfdisk at all? Look at the
functions from libfdisk that are used by dbootstrap and you will see.
.....Adam Di Carlo....adam@onShore.com.....<URL:http://www.onShore.com/>