Bug in anaconda / kickstart...
Cris Rhea
crhea at mayo.edu
Mon Feb 4 21:59:28 CST 2008
I came across a series of postings by Matt Domach and Michael Brown regarding
Anaconda/Kickstart and disk signatures (Dell desktop list)...
I'm looking for some advice in how to get what I believe is a bug in
Anaconda fixed (or at least find a work-around)-- finding folks who understand
the inner workings of Anaconda has proven to be difficult.
Here's what I'm trying to do:
In the Kickstart file, I am manually partitioning the disk:
%pre
sfdisk -uM /dev/sda <<EOF
,150,L
,,E
;
;
,512,L
,2048,S
,6000,L
,2048,L
,10000,L
,,L
EOF
-----
In the install section of the KS file, I'm assigning specific file systems
to those partitions:
part /boot --fstype ext3 --onpart sda1
part /tmp --fstype ext3 --onpart sda9
part /var --fstype ext3 --onpart sda8
part swap --onpart sda6
part /local1 --fstype ext3 --onpart sda10
part /usr --fstype ext3 --onpart sda7
part / --fstype ext3 --onpart sda5
This technique has worked for years... (on simple, single disk web servers, cluster
nodes, etc., I don't see any advantage to using LVM for everything as most installs
do by default these days).
If I do the above, Anaconda croaks (and the install aborts) with:
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.
I'm running CentOS--
This worked in CentOS4.4, but broke in 4.5 onward (including CentOS 5.0/5.1).
Previously, I could work around this by loading the OS from a static repository
of CentOS 4.4 and apply the updates to bring it up to 4.6. Since all versions of 5
are broken, I can no longer build systems using Kickstart + this method.
I have a couple Anaconda dump files if anybody is interested... (about 10K lines each).
Traceback (most recent call first):
File "/tmp/treedir.24162/instimage/usr/lib/anaconda/partedUtils.py", line 892, in savePartitions
disk.commit()
File "/tmp/treedir.24162/instimage/usr/lib/anaconda/packages.py", line 147, in turnOnFilesystems
anaconda.id.diskset.savePartitions ()
File "/usr/lib/anaconda/dispatch.py", line 201, in moveStep
rc = stepFunc(self.anaconda)
File "/usr/lib/anaconda/dispatch.py", line 124, in gotoNext
self.moveStep()
File "/usr/lib/anaconda/gui.py", line 1018, in nextClicked
self.anaconda.dispatch.gotoNext()
File "/usr/lib/anaconda/iw/progress_gui.py", line 243, in renderCallback
self.intf.icw.nextClicked()
File "/usr/lib/anaconda/gui.py", line 1045, in handleRenderCallback
self.currentWindow.renderCallback()
error: 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.
I can reproduce this 100% of the time, on a variety of hardware-- my latest
attempts to find a work-around have been on a PE1855 blade...
I don't understand how to build a boot-disk image from scratch well enough to
try to debug Anaconda myself...
I'd appreciate any ideas/pointers... I've been looking for a solution for
about 6 months.... listed this as a bug on the CentOS site, but either nobody
has the Anaconda knowledge or the time...
--- Cris
--
Cristopher J. Rhea
Mayo Clinic - Research Computing Facility
200 First St SW, Rochester, MN 55905
crhea at Mayo.EDU
(507) 284-0587
More information about the Linux-PowerEdge
mailing list