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

Répondre à