da recht häufig nach einer Möglichkeit gefragt wurde, wie man ein Upgrade von SuSE 8.1 zu SuSE 8.2 durchführt, habe ich das folgende HowTo zusammengestellt.
#!/bin/false
############################################################
# 1&1 RootServer - SuSE 8.1 auf SuSE 8.2 updaten #
#----------------------------------------------------------#
# #
# !!! WARNUNG !!! #
#----------------------------------------------------------#
# DIE FOLGENDE INSTALLATIONSANLEITUNG RICHTET SICH #
# AUSSCHLIESSLICH AN ERFAHRENE SYSTEMADMINISTRATOREN #
#----------------------------------------------------------#
# #
############################################################
# #
# Voraussetzungen: #
# Der Server ist frisch eingerichtet (reinitialisiert) und #
# das Paket 'findutils-locate' ist installiert. Zudem muss #
# sowohl mit Datenverlusten, als auch mit einem nicht mehr #
# erreichbarem Server gerechnet werden >>> BACKUP anlegen! #
# #
# ALLE Punkte muessen als root durchgefuehrt werden! #
# #
############################################################
#
# 1) Das obligatorische (vollstaendige) Backup anlegen!
#
# 2) Installieren des zum Update zwingend notwendigen
# Pakets compat-2003.2.22-9.i586.rpm aus SuSE 8.2:
#
wget ftp://ftp.suse.com/pub/suse/i386/8.2/suse/i586/compat-2003.2.22-9.i586.rpm
rpm -Uvh compat-2003.2.22-9.i586.rpm
rm -f compat-2003.2.22-9.i586.rpm
ldconfig
#
# 3) Auf einem vertrauenswuerdigem SuSE 8.2 System das
# RPM Binary, sowie die zugehoerigen Libs einpacken
# und anschliessend per scp auf den Server laden:
#
cd /
tar --create --sparse --atime-preserve --numeric-owner
--preserve-permissions --absolute-names --totals --gzip
--file=/rpm82.tar.gz /bin/rpm /usr/{bin,lib}/{popt,rpm}*
scp /rpm82.tar.gz root@%INSERT_SERVER_IP%:/rpm82.tar.gz
#
# 4) Auf dem Server das SuSE 8.1 RPM ueberschreiben:
#
tar --extract --sparse --atime-preserve --numeric-owner
--gunzip --preserve-permissions --file=/rpm82.tar.gz -C /
rpm --rebuilddb --dbpath=/var/lib/rpm
#
# 5) YaST aufrufen und als (neue) Installationsquelle
# 'ftp://update.rootmaster.info/suse/8.2' angeben.
# Bereits vorhandene Installationsquellen loeschen
# beziehungsweise deaktivieren und YaST verlassen.
#
# 6) Den Server im Rescuemodus booten und chroot'en:
#
mkdir /mnt/hdd
mount /dev/hda3 /mnt/hdd
mount /dev/hda1 /mnt/hdd/boot
mount -o bind /proc /mnt/hdd/proc
chroot /mnt/hdd /usr/bin/env -i HOME=/root TERM=$TERM
PATH=/sbin:/bin:/usr/sbin:/usr/bin /bin/bash --login +h
#
# 7) Das System fuer ein sauberes Update vorbereiten:
#
rpm -e --nodeps k_deflt lilo
rm -f /var/adm/YaST/ProdDB/prod_00000001
#
# 8) Per YaST das System Update auswaehlen, starten,
# warten bis das Update vollstaendig beendet ist.
#
# 9) Nach geaenderten und neuen Konfigurationsdateien
# suchen und diese an das eigene System anpassen:
#
SuSEconfig --verbose
updatedb
locate rpmnew
locate rpmsave
#
# 10) Den aktuellen 1&1 RootServer-Kernel installieren:
#
cd /
rm -rf /boot/{b,c,e,i,v,K,S}* /lib/modules/*
wget ftp://update.rootmaster.info/local-updates/kernel-2.4.26-040421.tar.gz
tar xzf kernel-2.4.26-040421.tar.gz -C /
ln -sf vmlinuz-2.4.26-040421 /boot/vmlinuz
rm -f kernel-2.4.26-040421.tar.gz
#
# 11) Den Bootloader Grub rekonfigurieren:
#
cat > /boot/grub/menu.lst << "EOF"
color white/blue black/light-gray
default 0
timeout 1
title Linux
kernel (hd0,0)/vmlinuz root=/dev/hda3
EOF
grub --no-floppy
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
#
# 12) WICHTIG:
# Das Rootpasswort erneuern, da unter Anderem
# essentielle Systemprogramme und Configfiles
# durch dieses Update ersetzt wurden:
#
passwd root
#
# 13) chroot verlassen und im Normalmodus booten:
#
exit
umount /mnt/hdd/proc
umount /dev/hda1
umount /dev/hda3
shutdown -r now
#
# 14) 1 Euro an den Verfasser des HowTo spenden ;)
#
# EOF
Viel Spass und Erfolg mit SuSE 8.2
Last edited by Joe User on 2005-01-27 17:06, edited 21 times in total.
Anyware wrote:
Allerdings verstehe ich den Sinn von Schritt 3 und 4 nicht ganz. Könntest du mir das bitte mal erklären ?
Die Schritte sind notwendig, da rpm bei SuSE dynamisch kompiliert wurde und bei SuSE 8.2 eine neue glibc zum Zuge kommt. Daher würde rpm nach dem Upgrade der glibc nicht mehr funktionieren und alle nachfolgenden Pakete nicht installieren. Durch das temporäre überschreiben von rpm wird dieses quick&dirty umgangen
hört sich interessant an.
Leider hab ich hier zuhause keine suse zum testen, und gleich aufm rootie ausprobieren is mir doch etwas dangerous ;)
wäre es den möglich die suse 8.2 rpm.tgz zum download zur verfügung zu stellen ?(falls da keine rechtlichen probleme bestehen, bei suse weiß man ja nie ;) )
is ja genial, jedoch habe ich noch was in Erinnerung, daß es da selbst laut Suse ein Problem beim Updaten geben soll. Ist da was dran oder hat da jemand anderes ebenfalls was gehört ??
Ich finde die Quelle leider nicht mehr aber ich meine gelesen zu haben, daß das angeblich nicht funktionieren soll oder aber mit Problemen behaftet sein soll ....
Outlaw wrote:
is ja genial, jedoch habe ich noch was in Erinnerung, daß es da selbst laut Suse ein Problem beim Updaten geben soll. Ist da was dran oder hat da jemand anderes ebenfalls was gehört ??
das Problem, welches Du ansprichst, ist der dynamisch gelinkte rpm und die neue glibc (siehe oben). Aus diesem Grund muss zuerst das compat-%VERSION%.rpm der 8.2, welches unter Anderem eine zu 8.1kompatible libc, installiert und das rpm Binary, sowie die rpm Libs von 8.2 (im rpm.tar.gz enthalten) verwendet werden.
Auf diese Weise habe ich bereits sieben 1&1 Rooties und vier Workstations problemlos upgedatet. Newbies sollten allerdings die Finger davon lassen
Das 1. ist kein Fehler. Wenn Tar das nicht machen würde (führenden / entfernen), könntest du nie ein Archiv in ein Unterverzeichnis entpacken. durch das -C / wirds aber umgangen.
2. Tippfehler im Howto. hda -> hdd dann sollte es gehen.
Habe mich als Newbie an das Update gewagt und was soll ich sagen: Ich habe nicht alle Schritte vollständig verstanden, aber 20 Minuten war alles erfolgreich gegessen!
Super Sache. Sehr zuverlässig. Danke für die Arbeit!