Old style fixed partitions in KS-- Anaconda bug??
dwight at supercomputer.org
dwight at supercomputer.org
Wed Feb 6 17:14:59 UTC 2008
On Tuesday 05 February 2008 04:02:52 am Cris Rhea wrote:
> I've tried with and without zeroing the first block (did this to
> nuke some systems that came from Sun with ZFS/GPT). No change...
>
> The sfdisk IS SUCCESSFUL (looking at the disk with the <CTL><ALT>
> <F2> shell).
One has to be careful. There's an in-core copy of the partition table
(used by the kernel) and an on-disk copy. The two are different, and
can be out of sync. Looking at the changes by hand can give you the
in-core copy, when in fact it hasn't been written to disk.
This has been an annoying problem across all versions of UNIX and
Linux ever since UNIX was first put on the PC back in the mid 1980's.
And this is, in fact, what anaconda/parted appear to be running into:
> 15:27:41 CRITICAL: parted exception: Error: Error informing the
> kernel about modifications to partition /dev/sda5 -- Device or
> resource busy. This means Linux won't know about any changes you
> made to /dev/sda5 until you reboot -- so you shouldn't mount it or
> use it in any way before rebooting.
It would seem that anaconda is somehow leaving open /dev/sda, and
preventing the new table from being sync'd. But this only happens if
you do modifications in the %pre section.
Clearly this is a failure on anaconda's part. The options aren't
pleasant.
One quick workaround might be to kickstart twice. The first time
through, do the partitioning as you have it, and then reboot. The
second time would do the rest of your kickstart file. This isn't
pleasant, but it might work.
Barring that, I think one would have to dig into anaconda, and
figureout who is keeping that device open between the %pre section,
and when parted is run.
I hope that doesn't sound discouraging, because what you are doing is
pretty important. The lack of a reliable way to define partitions in
the %pre section is IMHO the greatest weakness of Kickstart.
Anaconda's preordained ability to overwrite what the user wants,
with no alternative, based upon arbitrary and undocumented defaults,
is very limiting in a production environment.
And your solution here is the best that I've seen. It should part
of a FAQ somewhere.
-dwight-
More information about the Kickstart-list
mailing list