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