Kernel auf anderem Rechner installieren

Post Reply
Message
Author
User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Kernel auf anderem Rechner installieren

#1 Post by hjb »

Hi!

Da es wenig Sinn hat, die Kernelquellen auf jeden Rechner zu werfen, wenn man mehrere Rechner hat, compiliere ich Kernel zentral auf einem Rechner. Bisher habe ich den Kernel dann immer von Hand installiert. Doch warum jedesmal aufwendig dieselben Schritte ausführen, wenn es auch automatisch gehen kann? Hier ist ein Skript dafür. Habe ich was übersehen? Bei mir funktioniert es. Es kopiert allerdings nur den Kernel. Einträge für den Bootloader oder ein eventuelles Erzeugen einer Ramdisk habe ich außen vor gelassen.

Es waren ein paar Hürden zu überwinden, die mich bisher davon abgehalten haben, es zu implementieren. Im Endeffekt war es aber nicht viel Arbeit.

Code: Select all

#!/bin/sh
# Install a self-compiled kernel on a remote machine
# 20080621 hjb

# Assumptions:
# ssh with passwordless login for root
# Kernel is named bzimage
# .config belongs to the current kernel

set -e

# config
arch=x86      # Valid for x86 and x86_64 with newer kernels

dest="$1"
if [ -z "$dest" ]; then
  echo "Need target hostname as argument"
  exit 1
fi

# Kernel version
version=$(head .config | grep "Linux kernel version:" | tr -d ' #:[A-z]')
grep -q CONFIG_LOCALVERSION_AUTO=y .config
if [ $? = 0 ]; then
  localversion=$(grep "CONFIG_LOCALVERSION=" .config | sed -e 's/.*="\(.*\)"/\1/')
  version=$version$localversion
fi

# Install modules
mdir="$(cd ..; pwd)"
rm -rf "$mdir/lib"
make modules_install INSTALL_MOD_PATH="$mdir"
rm -f "$mdir/lib/modules/$version/build"
rm -f "$mdir/lib/modules/$version/source"

scp "arch/$arch/boot/bzImage" root@$dest:/boot/linux-$version
scp "System.map" root@$dest:/boot/System.map-$version
scp ".config" root@$dest:/boot/config-$version
ssh -l root $dest "rm -rf /lib/modules/$version"
tar cvzf - -C "$mdir" lib | ssh -l root $dest "cd /; tar xvzf -"
Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Post Reply