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 7: Line 7:
<li> Step 1 : Create arch specifics fais configuration direcories
<li> Step 1 : Create arch specifics fais configuration direcories
<pre>
<pre>
for dir in /etc/fai-i386 /etc/fai-amd64 ;  
for dir in /etc/fai-i386 /etc/fai-amd64 ;  
do
do
mkdir $dir
mkdir $dir
cd $dir
cd $dir
ln /etc/fai/fai.conf
ln /etc/fai/fai.conf
ln /etc/fai/NFSROOT
ln /etc/fai/NFSROOT
ln /etc/fai/apt
ln /etc/fai/apt
ln /etc/fai/menu.lst
ln /etc/fai/menu.lst
cp /etc/fai/make-fai-nfsroot.conf .
cp /etc/fai/make-fai-nfsroot.conf .
done
done
</pre>
</pre>


Line 24: Line 24:
<li> Simply add thoses lines to <code>/etc/fai-i386/apt_arch.conf</code> ( for <code>/etc/fai-amd64/apt_arch.conf</code>, replace i386 by amd64)
<li> Simply add thoses lines to <code>/etc/fai-i386/apt_arch.conf</code> ( for <code>/etc/fai-amd64/apt_arch.conf</code>, replace i386 by amd64)
<pre>
<pre>
APT {
APT {
Architecture "i386";
Architecture "i386";
}
}
</pre>
</pre>
</li>
</li>
<li> You can create automagicaly those file running the following script
<li> You can create automagicaly those file running the following script
<pre>
<pre>
for arch in i386 amd64 ; do
for arch in i386 amd64 ; do
CONTENT='APT {\n\tArchitecture "$arch";\n}'
CONTENT='APT {\n\tArchitecture "$arch";\n}'
echo $CONTENT > /etc/fai-$arch/apt_arch.conf
echo $CONTENT > /etc/fai-$arch/apt_arch.conf
done  
done  
</pre>
</pre>
</li>
</li>
Line 43: Line 43:
<ul><li> Configure and Run this little script for your different architectures
<ul><li> Configure and Run this little script for your different architectures
<pre>
<pre>
rm /tmp/fai-kernel*
rm /tmp/fai-kernel*
for arch in i386 amd64 ; do
for arch in i386 amd64 ; do
echo "Downloading $arch fai-kernels package"
echo "Downloading $arch fai-kernels package"
echo "--------------------------------------"
echo "--------------------------------------"
export APT_CONFIG=/etc/fai-$arch/apt_arch.conf
export APT_CONFIG=/etc/fai-$arch/apt_arch.conf
apt-get update
apt-get update
apt-cache -f search fai-kernels
apt-cache -f search fai-kernels
PACKAGE=$(apt-cache -f search fai-kernels | grep Filename | awk ' { print $2 }')
PACKAGE=$(apt-cache -f search fai-kernels | grep Filename | awk ' { print $2 }')
MIRROR=http://ftp.debian.org/debian
MIRROR=http://ftp.debian.org/debian
wget $MIRROR/$PACKAGE -P /tmp
wget $MIRROR/$PACKAGE -P /tmp
done
done
export -n APT_CONFIG
export -n APT_CONFIG
apt-get update
apt-get update
for file in /tmp/fai-kernels* ; do
for file in /tmp/fai-kernels* ; do
echo "Unpacking $arch fai-kernels package"  
echo "Unpacking $arch fai-kernels package"  
echo "--------------------------------------"
echo "--------------------------------------"
dpkg-deb -x $file /
dpkg-deb -x $file /
done
done
</pre>  
</pre>  
</li>
</li>
Line 79: Line 79:
<li> Execute this commands
<li> Execute this commands
<pre>
<pre>
export APT_CONFIG=/etc/fai-i386/apt_arch.conf
export APT_CONFIG=/etc/fai-i386/apt_arch.conf
make-fai-nfsroot -C /etc/fai-i386 -V vmlinuz-install-i386 -v
make-fai-nfsroot -C /etc/fai-i386 -V vmlinuz-install-i386 -v
</pre>
</pre>
</li>
</li>
Line 90: Line 90:
<li> Run the command below
<li> Run the command below
<pre>
<pre>
FAI_CHBOOT_ARCH=i386
FAI_CHBOOT_ARCH=i386
FAI_CHBOOT_OPT="-k \"ip=dhcp FAI_ACTION=install \
FAI_CHBOOT_OPT="-k \"ip=dhcp FAI_ACTION=install \
nfsroot=/srv/fai/nfsroot-$FAI_CHBOOT_ARCH,v3,tcp,rsize=32768,wsize=32768\" \
nfsroot=/srv/fai/nfsroot-$FAI_CHBOOT_ARCH,v3,tcp,rsize=32768,wsize=32768\" \
-F  vmlinuz-install-i386 /dev/nfs"
-F  vmlinuz-install-i386 /dev/nfs"
fai-chboot $FAI_CHBOOT_OPT computer
fai-chboot $FAI_CHBOOT_OPT computer
</pre>
</pre>
</li>
</li>
</ul>
</ul>

Revision as of 10:21, 16 April 2007

FAI 3.1.8 Etch cross architecture NFSROOT build

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

  • 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