[Bug 167602] kernel does not know extended partitions -> grub fails
https://bugzilla.novell.com/show_bug.cgi?id=167602 odabrunz@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Info Provider|jplack@novell.com | ------- Comment #26 from odabrunz@novell.com 2006-09-12 07:54 MST ------- The reason why we did not use parted and returned to use /sbin/activate from lilo was that extended partitions are not found by parted after partitioning is done with parted. (This could be workarounded with "blockdev --rereadpt <device>" after partitioning, but it should of course work without this.) Now that olh fixed parted we can use parted again instead of /sbin/activate from lilo and only put parted in the "Requires" line. This has the additional advantage that this Requires line will work on all platforms (as opposed to a "lilo" in the Requires line), and parted is required by yast2-storage already anyway. The description in olh's patch (see last comment) explains most of the breakage and olh's fix in parted. To summarize (after talking to olh): - algorithm: parted changes partitions on the disk, and then calls an ioctl() for every partition to inform the kernel of the new partitions - problem: parted did not tell the kernel about an extended partition at all, obviously (see comment in the code, e.g. in the snippet provided by fehr@ in this bug, comment #19) because - the author(s) of parted assumed that they would have to specify the full size of the extended partition as a container for the logical partitions (as opposed to only specifying the 1 or 2 blocks required for the "logical partition table" (or somesuch) at the beginning of the extended partition), and the logical partitions would overlap with a such specified extended partition, WHILE - the kernel itself only assumes 1 or 2 blocks for the extended partition when it reads a disk label itself (during boot...) - olh looked at the kernel code and found that parted could specify an extended partition in the same way as the kernel does it: specifying only the first blocks where the "logical partition table" (or somesuch) resides -- in this way the extended partition would not overlap with the logical partitions and this would be accepted by the kernel (and the ioctl()). This also leads to consistent behaviour from the kernel and parted. I consider this change to be OK. So I am now replacing the use of /sbin/activate with parted and will put parted in the Requires line (which in essence means reactivating the old change we did earlier in this bug). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
participants (1)
-
bugzilla_noreply@novell.com