FAI How to build a i386 and x86 64 compatible FAI server on Debian Etch x86 64: Difference between revisions

From FAIWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
Theses procedures have only been validated on Debian Etch with FAI 3.1.8
Theses procedures have only been validated on Debian Etch with FAI 3.1.8


I was installing an installserver for my company and looking for a way to build and i386 NFSROOT on a amd64 Etch.
I was installing an installserver for my company and looking for a way to build and i386 NFSROOT on a amd64 Etch and then build arch specific FAI mirrors and CD images.Thought FAI 3.1.8 was not really designed for cross architecture,  it is possible to use it this way.
Thought FAI 3.1.8 was not really designed for cross architecture,  it is possible to use it this way.
Here is the <i>workarounds</i>.
Here is the <i>workaround</i>.
 
----
 
== Cross-Architecture NFSROOT ==
<ul>
<ul>
Line 99: Line 102:
</li>
</li>
</ul>
</ul>
----
== Cross-Architecture FAI Mirrors ==

Revision as of 10:24, 16 April 2007

Theses procedures have only been validated on Debian Etch with FAI 3.1.8

I was installing an installserver for my company and looking for a way to build and i386 NFSROOT on a amd64 Etch and then build arch specific FAI mirrors and CD images.Thought FAI 3.1.8 was not really designed for cross architecture, it is possible to use it this way. Here is the workarounds.


Cross-Architecture NFSROOT

  • Step 1 : Create arch specifics fais configuration direcories
    for dir in /etc/fai-i386 /etc/fai-amd64 ; 
    do
    	mkdir $dir
    	cd $dir
    	ln /etc/fai/fai.conf
    	ln /etc/fai/NFSROOT
    	ln /etc/fai/apt
    	ln /etc/fai/menu.lst
    	cp /etc/fai/make-fai-nfsroot.conf .
    done
    
  • Step 2 : Build a local apt_arch.conf file inside /etc/fai-i386 or /etc/fai-amd64
    • Simply add thoses lines to /etc/fai-i386/apt_arch.conf ( for /etc/fai-amd64/apt_arch.conf, replace i386 by amd64)
      APT {
      	Architecture "i386";
      }
      
    • You can create automagicaly those file running the following script
      for arch in i386 amd64 ; do
      	CONTENT='APT {\n\tArchitecture "$arch";\n}'
      	echo $CONTENT > /etc/fai-$arch/apt_arch.conf
      done			  				
      
  • Step 3 : Install fai-kernels packages for the different architectures
    • Configure and Run this little script for your different architectures
      rm /tmp/fai-kernel*
      for arch in i386 amd64 ; do
      	echo "Downloading $arch fai-kernels package"
      	echo "--------------------------------------"
      	export APT_CONFIG=/etc/fai-$arch/apt_arch.conf
      	apt-get update
      	apt-cache -f search fai-kernels
      	PACKAGE=$(apt-cache -f search fai-kernels | grep Filename | awk ' { print $2 }')
      	MIRROR=http://ftp.debian.org/debian
      	wget $MIRROR/$PACKAGE -P /tmp
      done
      	
      export -n APT_CONFIG
      apt-get update
      	
      for file in /tmp/fai-kernels* ; do
      	echo "Unpacking $arch fai-kernels package" 
      	echo "--------------------------------------"
      	dpkg-deb -x $file /	
      done
      
  • Step 4 : Configure make-fai-nfsroot.conf to be architecture specific
    • Add --arch i386 or --arch amd64 to FAI_DEBOOTSTRAP<code
    • Modidy KERNELPACKAGE with the good fai kernel package.
  • Step 5 : Build the arch dependant NFSROOT
    • Execute this commands
      export APT_CONFIG=/etc/fai-i386/apt_arch.conf
      make-fai-nfsroot -C /etc/fai-i386 -V vmlinuz-install-i386 -v
      
  • Step 6 : Configure network Install for a particular architecture
    • Run the command below
      FAI_CHBOOT_ARCH=i386
      FAI_CHBOOT_OPT="-k \"ip=dhcp FAI_ACTION=install \
      nfsroot=/srv/fai/nfsroot-$FAI_CHBOOT_ARCH,v3,tcp,rsize=32768,wsize=32768\" \
      -F  vmlinuz-install-i386 /dev/nfs"
      fai-chboot $FAI_CHBOOT_OPT computer
      

    Cross-Architecture FAI Mirrors