Outils pour utilisateurs

Outils du site


gnu:clonage

Différences

Ci-dessous, les différences entre deux révisions de la page.


gnu:clonage [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Clonage de machine GNU/linux ======
 +===== Solution liveCD =====
 +Quand on a le temps ou une multitude de configuration différentes 
 +  - Faire une image iso pour CD ou DVD avec remastersys
 +  - Utiliser cette image pour la déposer sur une cléUSB avec unetbootin voir multisystem ;-)
 +  - Prendre le CD ou la clé et passer sur chaque machine
 +===== Solution réseau =====
  
 +Quand on veut optimiser le déploiement à travers une réseau grâce à un serveur d'image.
 +
 +**Idée de cloner sa propre machine**
 +  - Passer par un remastersys pour faire un joli iso
 +  - le poser sur un répertoire de tftpboot pour l'offrir au boot réseau PXE, ce qui fonctionne avec grub2
 +
 +
 +il y a la solution clonezilla/drbl mais nous pouvons utiliser un script qui offre un boot PXE sur le reseau local et une image iso ou au moins un systeme de fichier en NFS avec un ubiquity pour l'installation.
 +
 +
 +liens donnant des pistes:
 +  * http://www.unixgarden.com/index.php/gnu-linux-magazine-hs/demarrez-sans-disque-avec-pxe-grub-et-nfs
 +  * http://ubuntuforums.org/archive/index.php/t-1112209.html
 +  * http://random.kakaopor.hu/ubuntu-12-04-live-nfspxe-boot-diskless-casper-kept
 +  * https://help.ubuntu.com/community/NFSv4MinimalHowto
 +  * http://flashinformatique.epfl.ch/spip.php?article1942
 +
 +Nous avons deja grub2, il manque:
 +gru2pxe
 +<code>
 +cd /usr/lib/grub/i386-pc
 +grub-mkimage --output=core.img --prefix="(pxe)/boot/grub" --format=i386-pc pxe pxecmd
 +cat pxeboot.img core.img > grub2pxe
 +cp grub2pxe /tftpboot
 +mkdir -p /tftpboot/boot
 +cp -a /boot/grub /tftpboot
 +chmod 666 /tftpboot/boot/grub/grub.cfg
 +</code>
 +
 +dans le /tftpboot/grub/grub.cfg au lieu du reste
 +<code>
 +menuentry 'Clonezilla' --class ubuntu --class gnu-linux --class gnu --class os {
 +insmod ext2
 +insmod iso9660
 +insmod loopback
 +loopback loop (pxe)/clonezilla.iso
 +linux (loop)/live/vmlinuz boot=live union=aufs noswap config nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=800x600-16 ocs_numlk="on" ip=172.31.0.1 nosplash fetch=tftp://172.31.0.1/tftpboot/iso/clonezilla/live/filesystem.squashfs 
 +initrd (loop)/live/initrd.img
 +}
 +
 +menuentry 'XUB-SNALIS 7d ISO' --class ubuntu --class gnu-linux --class gnu --class os {
 +insmod iso9660
 +insmod loopback
 +loopback loop (pxe)/iso/xub-snalis-7d.iso
 +linux (loop)/linux
 +initrd (loop)/initrd.gz
 +}
 +</code>  
 +
 +<code>
 +apt-get install nfs-kernel-server nfs-common
 +</code>
 +
 +
 +Clonezilla will run into extreme difficulty if you boot too many systems at once, unless you change the configuration settings for NFS. These settings are stored in the file /etc/default/nfs-kernel-server, the important ones to change are the number of simultaneous NFS processes to use:
 +<code>
 +
 +# Number of servers to start up
 +RPCNFSDCOUNT=100
 +
 +and the number of simultaneous RPC mounts:
 +
 +RPCMOUNTDOPTS="--manage-gids --num-threads=50"
 +</code>
 +
 +
 +
 +
 +
 +
 +http://drbl.sourceforge.net/one4all/techrpt.php?c=drbl-SL.sh&t=Load%20Small%20GNU/Linux%20%28DSL,%20PuppyLinux,%20Clonezilla%20live%20or%20GParted%20live%29%20into%20DRBL%20environment
 +
 +<code>
 +mkdir -p /tftpboot
 +echo "/tftpboot 172.31.0.0/255.255.0.0(rw,crossmnt,no_subtree_check,async)">> /etc/exportfs
 +exportfs -a
 +
 +apt-get install pxe xinetd
 +
 +</code>
 +
 +==== clonezilla modification ====
 + 
 +
 +si on fixe le nom pour un restore automatique
 +
 +de https://raymii.org/s/software/Clonezilla-custom-backup-script.html et 
 +http://clonezilla.org/fine-print-live-doc.php?fullmode=0&path=./clonezilla-live/doc/05_Preseed_options_to_do_job_after_booting/01-preseed-options.doc#01-preseed-options.doc
 +<code>
 +cd live
 +sudo unsquashfs -f ./filesystem.squashfs 
 +</code>
 +
 +
 +faire script dans squashfs-root/scripts/restoredisk.sh
 +<code>
 +#!/bin/bash
 +clear
 +echo "################################"
 +echo "# SNALIS Clonage               #"
 +echo "#     Based on Clonezilla      #"
 +echo "#       fait le 15/01/2013     #"
 +echo "################################"
 +echo
 +for i in 0 1 2 3 4
 +do
 +        ifconfig eth$i up
 +        dhclient eth$i
 +done
 +ifconfig | grep "inet addr"
 +NAME="image-maitre"
 +echo "Montage NFS "
 +echo "recherche de " $NAME
 +echo
 +mount -t nfs 192.168.1.10:/home/partimag /home/partimag
 +#clear
 +echo
 +if [ ! -f "/home/partimag/ne-pas-effacer" ] ; then
 +        echo "NFS"
 +        echo "le serveur 192.168.1.10:/home/partimag "
 +        echo "n est pas accessible"
 +        echo "pas de fichier ne-pas-effacer"
 +        echo "Test avec un montage samba ubuntu/ubuntu sur partimag"
 +        mount -t cifs -o username="ubuntu",password="ubuntu" //192.168.1.10/partimage /home/partimag
 +        if [ ! -f "/home/partimag/ne-pas-effacer" ] ; then
 +                echo "SAMBA"
 +                echo "Pas de samba non plus"
 +                echo "sortie"
 +                exit 1
 +        fi
 +fi
 +cd /home/partimag
 +pwd
 +# tentative eject CD avant eteind
 +echo "ejection CD"
 +eject
 +
 +if [ -d "image-maitre" ] ; then
 +        echo "recuperation de l'image image-maitre"
 +        echo y | /opt/drbl/sbin/ocs-sr -g auto -e1 auto -e2 -c -r -j2 -k1 -p poweroff restoredisk $NAME sda
 +else
 +        echo "il n'y a pas d'image image-maitre sur le serveur NFS"
 +        echo "ou le serveur 192.168.1.10:/home/partimag "
 +        echo "n est pas accessible"
 +        echo "on en fait une :) "
 +        echo "10s pour stoper par Ctrl-C"
 +        sleep 10
 +        echo y | /opt/drbl/sbin/ocs-sr -q2 -c -j2 -rm-win-swap-hib -z1 -i 2000 -p poweroff savedisk $NAME sda
 +fi
 +
 +exit 0
 +</code>
 +
 +copier dans /home/partimage par exemple
 +<code>
 +label RESTOR
 +menu label RESTOR
 +kernel /live/vmlinuz
 +append initrd=/live/initrd.img boot=live hostname=precise config union=overlayfs quiet noswap nolocales edd=on nomodeset noprompt ocs_live_run="/scripts/restoredisk.sh" ocs_live_extra_param="" ocs_live_keymap="/usr/share/keymaps/i386/azerty/fr-latin9.kmap.gz" ocs_live_batch="yes" ocs_live_keymap=NONE ocs_lang=fr_FR.UTF-8 ocs_numlk="on" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=800x600-16 ip=frommedia  nosplash toram=filesystem.squashfs
 +</code>
 +
 +refaire le filesystem.squashfs dans /live
 +<code>
 +cd ../..
 +rm -f ./filesystem.squashfs
 +mksquashfs ./squashfs-root ./filesystem.squashfs
 +rm -rf squashfs-root
 +</code>
 +refaire l'iso
 +<code>
 +cd ../..
 +mkisofs -r -V "Clonezilla SNALIS restore CD" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o clonezilla-snalis.iso clonezilla
 +
 +</code>
 +
 +ca donne clonezilla-snalis.iso sur http://sourceforge.net/projects/xublivecd/files/?source=navbar
 +===== SME avec un thinclient ====
 +Apres l'install du paquet smeserver-thinclient,
 +modifier le fichier pxelinux.cfg/default. 1.10 pour par exemple pour le serveur 
 +<code>
 +label clonezilla
 +menu label clonezilla
 +kernel /clonezilla/live/vmlinuz
 +append initrd=/clonezilla/live/initrd.img boot=live union=aufs noswap config nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=800x600-16 ocs_numlk="on" nosplash fetch=tftp://192.168.1.10/clonezilla/live/filesystem.squashfs live-media-path=/clonezilla
 +menu end
 +
 +</code>
 +Dépaquer un iso clonezilla dans /tftpboot/clonezilla
 +
 +===== Projet machine de clone =====
 +Un projet se monte entre les associations [[http://www.alis44.org|ALIS44 ]], [[http://www.snalis.org|SNALIS ]], [[http://www.nautile.org|Le n@utile]], et [[http://la-fabrique.du-libre.org|la Fabrique du Libre]]. Une mini distribution Ubuntu? pour monter sa machine à dépoter du GNU/Linux à la pelle
 +
 +c'est le livecd drbl :)
 +<code>
 +
 +echo "deb http://drbl.sourceforge.net/drbl-core drbl stable">>/etc/apt/sources.list
 +apt-get update
 +apt-get install drbl
 +/opt/drbl/sbin/drblsrv -i
 +/opt/drbl/sbin/drblpush -i
 +
 +</code>
 +
 +http://ditwww.epfl.ch/SIC/SA/SPIP/Publications/spip.php?article1942
 +
 +http://wiki.lm7.fr/index.php/Installation_par_le_r%C3%A9seau
 +
 +Create Recovery Clonezilla http://clonezilla.org/show-live-doc-content.php?topic=clonezilla-live/doc/04_Create_Recovery_Clonezilla
 +
 +http://restonux.wikispaces.com/documentation+clonezilla
 +
 +====== Resultats sur sourceforge ======
 +Avec un article sur snalis :
 +http://snalis.org/Un-nouveau-serveur-de-clonage-pour
 +
 +  - Image clonezilla du serveur de clone drbl/clonezilla/ : https://sourceforge.net/projects/xublivecd/files/Clonages/
 +  - iso du cd de boot clonezilla avec le script de restoration automatique de l'image ///home/partimag/image-maitre// :  https://sourceforge.net/projects/xublivecd/files/Clonages/clonezilla.snalis.iso
 +
 +le pcloneur est sous debian, 
 +  * Il DOIT posséder 2 cartes réseaux, 
 +    * 1/WAN internet(reseau local), IP venant du dhcp local
 +    * 1/LAN réseau de clonage , IP = 192.168.66.6
 +  * root pass = gnu/linux
 +  * il utilise un NFS et le répertoire /home/partimag y est accessible.
 +  * il  a aussi un samba , pas testé.
 +  * il offre un slitaz en boot réseau
 +  * slitaz US est nécessaire pour un usage de gparted, redimentionnement de partition (FR marche pas)
 +  * UltimateBootCD  permet de reformater bas niveau ( et bien plus de choses )
 +
 +Le cd clonezilla de snalis, offre
 +  * un clonezilla standard utilsable telquel
 +  * un script de suvegarde/restoration automatique 
 +    * le serveur 192.168.66.6 est utilisé
 +    * /home/partimage/image-maitre est faite automatiquement si elle n'existe pas, 
 +    * /home/partimage/image-maitre  est restorée automatiquement apres avoir répondu 'y' sur la machine cible
 +      * le disque comportera une partition redimensionnée (option clonezilla -k1)