Installing a system to a directory only

Jason Edgecombe jason at rampaginggeek.com
Tue Mar 31 22:44:10 UTC 2009


Tom H wrote:
> Hi all,
>
> I'm trying to use anaconda to build system images for Amazon's EC2
> service. For this, you need to build a standard Linux system, then run
> a tool to package up the system into several files.
>
> The whole image building and packaging process is a bit adhoc, so I'm
> trying to automate it. My idea is to start with a kickstart file, then
> have anaconda build the system into a directory (rather than build a
> system from scratch), then run the packager on that directory only. To
> summarise:
>
> kickstart file -> [anaconda install] -> full system image in a
> directory -> [EC2 packager] -> final system image
>
> Looking at various websites, the --rootpath option seems to be the answer.
>
> On a CentOS 5.2 i386 machine, with the 11.1.2.113-1.el5.centos.2
> version of anaconda installed, I tried this:
>
> mkdir -p /mnt/runtime/usr/sbin/
> LANG=en /usr/sbin/anaconda -T -m
> http://mirrors.dedipower.com/centos/5.2/os/i386/
> --rootpath=/root/buildroot
>
> The installer displays the text menu, asks for the early options, but
> then dies just after the "Checking dependencies in packages selected
> for installation..." step:
>
> Traceback (most recent call first):
>   File "/usr/lib/anaconda/urlinstall.py", line 95, in systemMounted
>     self.loopbackFile = "%s%s%s" % (chroot,
>   File "/usr/lib/anaconda/yuminstall.py", line 1328, in doPreInstall
>     if self.method.systemMounted (anaconda.id.fsset, anaconda.rootPath):
>   File "/usr/lib/anaconda/backend.py", line 180, in doPreInstall
>     anaconda.backend.doPreInstall(anaconda)
> ++  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/text.py", line 588, in run
>     anaconda.dispatch.gotoNext()
>   File "/usr/sbin/anaconda", line 982, in ?
>     anaconda.intf.run(anaconda)
> IndexError: list index out of range
>
> The last statement run is:
>         self.loopbackFile = "%s%s%s" % (chroot,
>                                         fsset.filesystemSpace(chroot)[0][0],
>                                         "/rhinstall-stage2.img")
>
> With this being the problem:
> (Pdb) print fsset.filesystemSpace(chroot)
> []
>
> The same problem has been noted before:
>
> http://www.linux-archive.org/centos/101098-anaconda-test-problem.html
> http://www.linuxsir.org/bbs/thread330760.html
>
> Does anyone have any ideas?
>   
Tom,

I think that anaconda is the wrong tool for your task. I think you 
should look at using the "yum" command with the "--installroot" option. 
What you want sounds similar to how a livecd is built.

Take a look at this for an example:
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=18293

You also might want to look at revisor. It's a tool to automate the 
creation of livecd's.
http://revisor.fedoraunity.org/

Jason




More information about the Kickstart-list mailing list