On Fri, 2004-04-09 at 10:17, Jean-Francois Dive wrote:
> une 2eme partition, installation d'un systeme ultra minimum sur celle
> ci, boot sur la 2eme partition, scratch de la 1ere, copie du systeme de
> base sur la 1ere, reboot, on finis l'install. c'est de la haute voltige
> si tu veux mon avis, surtout si tu n'as jamais eu acces au matos avant
> histoire de voir comment construire cette image de base. Mais bon, c'est
> possible et c'est pas du tout evident, un excellent defis ;)
Je crois que c'est la bonne solution ... pour ne pas scier la branche
sur laquelle tu es : compacter le premier syst�me pour faire de la place
au second.
1/ Installer un GRUB g�n�rique (qui liste toutes les combinaisons
futures utiles).
Demander de rebooter -> ancien syst�me pour v�rifier.
2/ installer une mini distrib sur une machine que tu peux approcher pour
travailler � l'aise.
3/ en pr�parer une image (j'ai �crit un petit utilitaire qui m'a d�j�
bien servi � r�installer un syst�me sur d'autres machines cf attach)
4/ copier les paquets vitaux (bin.tgz, sbin.tgz, usrbin.tgz base.tgz
etc. sur le serveur � distance, les installer froidement sur les
partitions ad-hoc.
5/ �diter � distance le [/newrootfs]/etc/fstab (tr�s important cela !),
et d'autres param�tres capitaux comme ceux du r�seau.
5/ demander de rebooter -> le nouveau, si cela rate, redemande ->
l'ancien et continue � travailler.
J'ai d�j� install� froidement mes paquets ghost�s sur diverses machines
sans le moindre probl�me.
J'utilise aussi mon script 'ghost' avant de faire un upgrade d'un
serveur : j'ai une partition que j'appelle /aux et dans laquelle je
d�pose une image syst�me de mon serveur (puis -> CD). C'est utile aussi
en cas de doute de rootkit : il suffit de rapatrier /sbin, /bin,
/usr/bin pour �craser les ex�cutables douteux (cela m'a d�j� servi...).
Il y a de bons utilitaires plus ambitieux, comme celui de Gratien
d'Haase mkCDrec, mais le mien me suffit amplement.
Bon amusement dans la haute voltige.
PS. dans ces cas l�, je pr�pare par �crit un plan de ce que je veux,
pour ne pas me pr�cipiter... en bas de l'arbre !
Alain
Il faut qu'� distance
> On Thu, Apr 08, 2004 at 06:44:02PM +0200, R?mi Letot wrote:
> > Hello world,
> >
> > j'ai ? effectuer une conversion d'un serveur RH vers debian. Comme il
> > n'y a pas de donn?es critiques sur ce serveur, ce n'est en soi rien de
> > bien compliqu?, si ce n'est que je n'ai pas d'acc?s physique ? ce
> > serveur :-)
> >
> > Donc tout doit se passer via ssh, et si possible sans erreur :-)
> >
> > J'ai trouv? quelques pistes de solutions sur le web et en r?fl?chissant
> > un peu, mais j'aimerais savoir si d'autres ici ont d?j? tent?
> > l'exp?rience, et si oui par quel moyen.
> >
> > Quoi qu'il en soit je documenterai mon exp?rience apr?s coup, ?a peut
> > toujours servir.
> >
> > A+,
> > --
> > R?mi
> >
> >
> > _______________________________________________________
> > Linux Mailing List - http://www.unixtech.be
> > Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
> > Archives: http://www.mail-archive.com/[EMAIL PROTECTED]
> > IRC: chat.unixtech.be:6667 - #unixtech
--
------------------------------------------------------------
Dr Alain Empain <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
Bioinformatics, Molecular Genetics,
Fac. Med. Vet., University of Li�ge, Belgium
Bd de Colonster, B43 B-4000 Li�ge (Sart-Tilman)
WORK: +32 4 366 3821 FAX: +32 4 366 4122
HOME: rue des Martyrs,7 B- 4550 Nandrin
+32 85 51 23 41 GSM: +32 497 70 17 64
#!/bin/sh
# $Version$
################################### A.EMPAIN'1999-2000 ########
# GHOST : build seperate pack of every main directories
# /var /home /usr /usr/X11R6 /opt...
# WARNING : Take every dir, even mounted,
# except on /mnt and /alt (usual target for ghost tgz)
# so umount what you don't want ...
# VERSION=1.0 2002-06-06
# #############################################################
# TITLE="GHOST v1.0 A.Empain'2002"
# TITLE="GHOST v1.1 20030527 A.Empain'2003"
TITLE="GHOST v1.2 20030714 A.Empain'2003"
LOC=/etc/flists
if [ ! -d $LOC ]
then mkdir $LOC
fi
TM=`date +%y%m%d`
NAME=`hostname`
BASE="$LOC/$NAME"
ALL=${BASE}_ALL
CONF=${BASE}_CONF # fixed list of config files (hand edited)
WORK=/tmp/work_ghost
TMP=/tmp/tmp_ghost
# -------------------------------------------------------------
function filterlist() {
ID=$1
LIST="$LIST $ID" # add it the the list
echo "..$ID"
PATT=$2
egrep "$PATT" < $WORK > ${BASE}_${ID} # extract
egrep -v "$PATT" < $WORK > $TMP; # remain
mv $TMP $WORK # ready for the next selection
}
# -------------------------------------------------------------
function help() {
echo "# --------------------------------------------------------------A.Empain'2003"
echo
echo "GHOST : save the system as well defined compressed packages"
echo
echo "0: be sure to umount remote servers etc. ;-) "
echo "1: build the collection of file lists /etc/flist/* : BUILD-LIST"
echo "2: create compressed cpio packs of any sublist"
echo " ALL is particular : every packs except HOME (system backup)"
echo " HOME : user's DATA backup, better done with on-the-fly file list & tar..."
echo "3: list the 'table of content' of one compressed pack"
echo "4: extract localy one CPZ pack"
echo "5: extract in place (absolute path) one CPZ pack"
echo "-----------------------------------------------------------------------------"
echo
}
# -------------------------------------------------------------
function buildlist() {
echo "First, building the main list $ALL "
TM0=`date +%s`
## find / -mount | egrep -v "^/proc/" | egrep -v "^/mnt/" |
find / | egrep -v "^/proc/" | egrep -v "^/mnt/" |
egrep -v "^/tmp/" | grep -v "/.cache/ | grep -v /log/ " > $ALL
echo "ALL: `wc -l $ALL` lines"
TM1=`date +%s`
echo "ALL: `expr $TM1 - $TM0` sec"
echo "--------------------------------------"
echo "Now, filtering it into sublists HOME, USR, OPT..."
echo " ALL: `wc -l $ALL` lines"
cp $ALL $WORK # will be parsed to produce the many sub lists
TM1=`date +%s`
# -----------------------------------------
filterlist OPT "^/opt/"
filterlist X11 "^/usr/X11R6/"
filterlist BIN "^/bin|^/sbin|^/usr/sbin"
filterlist LIB "^/lib|^/usr/lib"
filterlist DOC "^/usr/share/doc|^/usr/doc"
filterlist SHARE "^/usr/share"
filterlist LOCAL "^/usr/local"
filterlist USR "^/usr"
filterlist MYSQL "^/var/lib/mysql"
filterlist VAR "^/var"
filterlist BOOT "^/boot"
filterlist ROOT "^/root"
filterlist HOME "^/home"
filterlist EXP "^/export"
filterlist DBS "^/dbs"
filterlist DEV "^/dev"
# last step, discard the /alt/ refs from the remaining items
grep -v "^/alt/" $WORK > ${BASE}_BASE
rm $WORK
}
# -------------------------------------------------
function makeimages() {
echo $BAR$BAR
echo "The images will be rebuilt (cpio + gzip)"
echo ""
echo "=========== ALL = everything EXCEPTED the /home ============="
cd $LOC
LIST=`ls -1 $NAME_* | cut -d_ -f2 ` # palm_VAR .. VAR
select CHOICE in $LIST
do
break
done
if [ $CHOICE = "ALL" ]
then CHOICE=`echo $LIST | sed 's/HOME//' | sed 's/ALL//' `
fi
echo "..CHOICE is set to $CHOICE"
sleep 3
echo ----------------------
echo Disk free :
echo ----------------------
df
echo ----------------------
echo -n "Enter the destination path [/tmp] : "
read PTH
if [ -z $PTH ]
then PTH=/tmp
fi
header
echo "..path set to $PTH, choice to $CHOICE"
echo
echo " REM: the next steps will take a while ;-)"
echo
# --------------------
for ITEM in $CHOICE
do
FILE=`ls /etc/flists/*$ITEM`
DEST=$PTH/${NAME}_${TM}_${ITEM}
echo "Creating $DEST ($FILE) (" `date` ")"
cat $FILE | cpio -o 2>> /tmp/cpz.log | gzip > $DEST.cpz
done
date
}
# -------------------------------------------------------------
function header() {
clear
BAR="======================================="
echo $BAR$BAR
echo $TITLE
echo
mount
}
# -------------------------------------------------------------
function selcpz() {
LIST=`ls -1 *cpz`
if [ -z "$LIST" ]
then
echo "<E> no CPZ files in the current directory"
echo "Please move to the correct ghost repository [/alt] and try again"
help
exit
fi
select CPZ in $LIST
do
break
done
}
# ==========================================================
# MAIN
#===========================================================
header
echo "---------------------------------------------------------------------"
echo "Select the main mode (based on lists of file systems) : "
select MODE in HELP BUILD_LIST MAKE_IMAGES TABLE LOCAL-EXTRACT ROOT-EXTRACT
do echo "..mode is set to $MODE"
break
done
# -----------------------------------------
if [ $MODE = HELP ]
then
help
exit
fi
# -----------------------------------------
if [ $MODE = BUILD_LIST ]
then
header
buildlist
exit
fi
# -----------------------------------------
if [ $MODE = MAKE_IMAGES ]
then
header
makeimages
fi
# -----------------------------------------
if [ $MODE = TABLE ]
then
selcpz
zcat $CPZ | cpio -itv | less
exit
fi
# -----------------------------------------
if [ $MODE = LOCAL-EXTRACT ]
then
selcpz
zcat $CPZ |
cpio -iv --make-directories --unconditional --no-absolute-filenames
exit
fi
# -----------------------------------------
if [ $MODE = ROOT-EXTRACT ]
then
selcpz
zcat $CPZ |
cpio -iv --make-directories --unconditional
exit
fi
_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/[EMAIL PROTECTED]
IRC: chat.unixtech.be:6667 - #unixtech