1. Verification configuration & boot PXE

====> CLIENTS <====
  1. Installer virtualbox
  2. Créer une nouvelle machine virtuelle dans virtualbox:
    • Type : Linux / 64bits
    • Disque dur : VDI - 25Go - Taille fixe
  3. Configurer la machine virtuelle:
    • Mode accès réseau : "Accès par pont"
  4. Executer la nouvelle vt :
    • F12 (boot menu)
    • Sélectionner "LAN"
      • Il est nécessaire de vérifier que :

        • Le serveur DHCP a bien été contacté
        • La VT a reçu une IP valide
        • Le "Next server" est la vmPXE
        • Le "FileName" est pxelinux.0
        • Le processus s'arrête après un connection timeout.

2. Création de vmPXE

====> Dom0 <====
  1. Créer une nouvelle machine virtuelle :
    xen-create-image	--hostname=vmPxe --ip=10.0.x.102 --size=100G
  2. Lancer la vmPxe :
    xl create /etc/xen/vmPxe.pvlinux

3. Installation serveur TFTP

====> vmPXE <====
  1. Installer le paquet "tftpd-hpa"
    apt-get install tftpd-hpa
  2. Lancer tftp :
    systemctl start tftpd-hpa
  3. Créer un fichier de test:
    cd /
    ls -R * &> /srv/tftp/test")

4. Tester serveur TFTP

====> Clients <====
  1. installer le paquet "tftp-hpa"
  2. Récupérer le fichier test :
    # tftp 10.0.x.102
    tftp> get test
    tftp> quit
  3. Vérifier le contenu du fichier :
    less test

5. Première image : debian

====> vmPXE <====
  1. Télécharger les fichiers nécessaires :
    mkdir -p /home/download/debian 
    cd /home/download/debian
    wget http://ftp.fr.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz
    wget http://ftp.fr.debian.org/debian/dists/jessie/main/installer-amd64/current/images/SHA256SUMS
    wget http://ftp.fr.debian.org/debian/dists/jessie/Release 
  2. Vérifier l'intégrité des fichiers :
    • Du fichier SHA256SUMS :
      # sha256sum SHA256SUMS
      3daaacad2361d6244f05b5d9e09f7ecb0595af0ff3582e7cfb7e5fae7bf3938d  SHA256SUMS
      # cat Release | grep -A 100000 '^SHA256' | grep -F installer-amd64/current/images/SHA256SUMS
      3daaacad2361d6244f05b5d9e09f7ecb0595af0ff3582e7cfb7e5fae7bf3938d    14289 main/installer-adm64/current/images/SHA256SUMS
    • Du fichier netboot.tar.gz :
      # cat SHA256SUMS | grep -F netboot/netboot.tar.gz
      d47dc8c8cfbc585b5d43258acfd4bdd85c47fc7a39c989bc81f36aba49834b79  ./netboot/netboot.tar.gz
      # sha256sum netboot.tar.gz
      d47dc8c8cfbc585b5d43258acfd4bdd85c47fc7a39c989bc81f36aba49834b79  netboot.tar.gz
  3. Décompresser netboot.tar.gz :
    				# tar xvf netboot.tar.gz
    			
  4. Copier les fichiers dans tftp :
    // Fichier nécessaire à PXE 
    // Installeur debian
    # mkdir -p /srv/tftp/sources/linux/debian
    # cp -R /home/download/debian/debian-installer/* /srv/tftp/sources/linux/debian/
    
    // Fichier nécessaire à pxe
    # cp /home/download/debian/ldlinux.c32 /srv/tftp/
    # cp /srv/tftp/sources/linux/debian/amd64/boot-screens/vesamenu.c32 /srv/tftp/ 
    
    // Fichier de configuration du menu PXE
    # mkdir /srv/tftp/pxelinux.cfg
    # cp /srv/tftp/sources/linux/debian/amd64/boot-screens/syslinux.cfg /srv/tftp/pxelinux.cfg/default
    # cp /srv/tftp/sources/linux/debian/amd64/boot-screens/libcom32.c32 /srv/tftp/
    # cp /srv/tftp/sources/linux/debian/amd64/boot-screens/libutil.c32 /srv/tftp/
    # cp /srv/tftp/sources/linux/debian/amd64/pxelinux.0 /srv/tftp/
  5. Donner les droits en lecture :
    # chmod -R a+r /srv/tftp/sources/linux/debian/* 
  6. Mettre à jour la configuration du menu :
    • Editer le fichier de configuration:
      # nano /srv/tftp/pxelinux.cfg/default
    • Remplacer le contenu du fichier par :
      INCLUDE pxelinux.cfg/menu/menu.cfg
      DEFAULT vesamenu.c32
      
      TIMEOUT 150
      MENU AUTOBOOT Demarrage automatique dans # seconde{,s}...
      MENU SAVE
      
      MENU TITLE Menu Principal
      
      # Installation de debian
      LABEL 1
      	MENU LABEL ^1)  Installer debian
      	KERNEL sources/linux/debian/amd64/linux
      	APPEND initrd=sources/linux/debian/amd64/initrd.gz desktop=xfce vga=791 quiet sources/linux/debian/allow_unauthenticated=true
      
      # Crée une ligne de séparation dans le menu
      	LABEL blank	
      		MENU LABEL
      
      # Boot local
      	LABEL hd
      		MENU LABEL ^H)  Demarrer depuis le Disque Dur Local
      		MENU DEFAULT      
      		localboot 0x80
    • Creer le fichier menu.cfg (voir intranet):
      # mkdir /srv/tftp/pxelinux.cfg/menu
      # nano /srv/tftp/pxelinux.cfg/menu/menu.cfg

6. Test du serveur PXE

====> Clients <====
  1. Dans virtualbox, lancer la machine virtuelle
  2. Booter en LAN
  3. Vérifier que vous pouvez atteindre l'installation de debian.

7. Ajout d'une nouvelle image + menu

====> VmPXE <====
  1. Télécharger l'installateur réseau ubuntu :
    # mkdir -p /home/download/ubuntu
    # cd /home/download/ubuntu
    # wget http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz
    # tar xvf netboot.tar.gz
  2. Copier l'installeur ubuntu dans tftp :
    # mkdir /srv/tftp/sources/linux/ubuntu
    # cp -R /home/download/ubuntu/ubuntu-installer/* /srv/tftp/sources/linux/ubuntu/
    			
  3. Ajouter une nouvelle entrée dans le menu :
    • Editer le fichier de configuration:
      # nano /srv/tftp/pxelinux.cfg/default
    • Après la définition du LABEL 1, rajouter :
      LABEL 2
      	MENU LABEL ^2)  Installer Ubuntu
      	KERNEL sources/linux/ubuntu//amd64/linux
      	APPEND vga=788 initrd=sources/linux/ubuntu/amd64/initrd.gz --- quiet 

8. Tester serveur PXE

====> Clients <====
  1. Lancer la machine virtuelle de virtualbox
  2. Booter en LAN
  3. Vérifier qu'il est possible de lancer l'installeur ubuntu

9. Clonezilla

====> vmPXE <====
  1. Télécharger clonezilla live :
    # mkdir -p /home/download/clonezilla
    # cd /home/download/clonezilla
    # wget -O clonezilla_live-2.4.2-61-amd64.zip http://downloads.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.4.2-61/clonezilla-live-2.4.2-61-amd64.zip?r=http%3A%2F%2Fclonezilla.org%2Fdownloads%2Fdownload.php%3Fbranch%3Dstable&ts=1452213010&use_mirror=netix
  2. Décompresser l'archive zip :
    # apt-get install unzip
    # unzip clonezilla_live-2.4.2-61-amd64.zip 
  3. Copier les fichiers vers tftp :
    # mkdir -p /srv/tftp/sources/utils/clonezilla
    # cp /home/download/clonezilla/live/filesystem.squashfs /srv/tftp/sources/utils/clonezilla/
    # cp /home/download/clonezilla/live/vmlinuz /srv/tftp/sources/utils/clonezilla/
    # cp /home/download/clonezilla/live/initrd.img /srv/tftp/sources/utils/clonezilla/
  4. Metter a jour le fichier du menu PXE :
    • Editer le fichier de configuration :
      # nano /srv/tftp/pxelinux.cfg/default 
    • Après la définition de LABEL 2, rajouter (! mettre à jour l'ip !) :
      LABEL 3
      	MENU LABEL ^3)  Clonezilla Live
      	KERNEL sources/utils/clonezilla/vmlinuz
      	APPEND initrd=sources/utils/clonezilla/initrd.img boot=live username=user union=overlay config components quiet noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=tftp://10.0.x.102/sources/utils/clonezilla/filesystem.squashfs

10. Serveur NFS

====> vmPxe <=====
  1. Installer le serveur nfs :
    apt-get install nfs-kernel-server
  2. Préparer le repertoire de partage :
    # mkdir /srv/nfs
    # chmod a+rw -R /srv/nfs 
  3. Ouvrir le fichier de configuration :
    # nano /etc/exports
  4. Ajouter une entrée :
    /srv/nfs 10.0.x.0/24(rw,sync,no_subtree_check,fsid=0)
  5. Restart du serveur nfs:
    # systemctl restart nfs-kernel-server

11. Tester serveur NFS

====> Clients <=====
  1. Installer nfs-common :
    # apt-get install nfs-common
  2. Monter le partage nfs :
    # mkdir /media/nfs
    # mount -t nfs -o rw 10.0.x.102:/srv/nfs /media/nfs
  3. Vérifier les droits en ecriture :
    # echo "Hello World" > /media/nfs/test.txt

12. Creation image systeme

====> Clients <====
  1. Booter votre workstation en PXE
  2. Selectionner l'entrée Clonezilla
  3. Créer une image de votre systeme en suivant les étapes :
    1. Choisir depuis la liste le keymap azerty - belgian - standard
    2. Start clonezilla
    3. device-image
    4. nfs_server
    5. nfs4 NFS V4
    6. 10.0.X.102
    7. /srv/nfs
    8. Ne pas prendre expert
    9. savedisk
    10. Nom de l'image : nomdelamachine-img
    11. Selectionner le disque contenant votre système (sda ?)
    12. Skip checking filesystem
    13. Yes checked the saved image
    14. Not to encrypt the image
  4. Une fois l'image terminée, rebooter la machine sur le disque dur local

13. Restauration image system

====> Clients <====
  1. Booter en mode LAN
  2. Selectionner Clonezilla et restaurer l'image en suivant les étapes :
    1. Choisir depuis la liste le keymap azerty - belgian - standard
    2. Start clonezilla
    3. device-image
    4. nfs_server
    5. nfs4 NFS V4
    6. 10.0.X.102
    7. /srv/nfs
    8. Ne pas prendre expert
    9. restoredisk
    10. Sélectionner l'image créée a l'étape 12
    11. Sélectionner le Disque dur qui sera utilisé pour la restauration

Malheureusement après avoir réstaurer l'image, le système ne semble pas vouloir démarrer. D'après l'erreur, quel peut être la cause ? Comment faudrait-il faire pour résoudre ce problème ? Prends le temps d'y réfléchir avant de passer à l'étape suivante.

14. Memdisk & SuperGrub

====> vmPxe <====
  1. Installation de memdisk :
    # apt-get install syslinux
  2. Copier les fichiers vers tftp:
    # mkdir /srv/tftp/sources/iso
    # cp /usr/lib/syslinux/memdisk /srv/tftp/sources/iso/
  3. Récupérer Super grub :
    1. Créer le repertoire sur vmPxe:
      # mkdir /home/download/supergrub
    2. Copier le fichier depuis la clef usb (sur client):
      # scp chemin_du_fichier_supergrub.iso root@10.0.x.102:/home/download/supergrub
  4. Déplacer les fichiers dans le tftp :
    # mkdir /srv/tftp/sources/iso/supergrub
    # cp super_grub2_disk_hybrid_2.02s3.iso /srv/tftp/sources/iso/supergrub/
    		
  5. Editer le fichier de configuration des menus :
    # nano /srv/tftp/pxelinux.cfg/default
  6. Ajouter l'entrée suivante ( après la def du label 3):
    LABEL 4
        MENU LABEL ^4)  Super grub
        KERNEL sources/iso/memdisk
        APPEND initrd=sources/iso/supergrub/super_grub2_disk_hybrid_2.02s3.iso

15. Restauration Grub

====> Clients <====
  1. Booter en PXE
  2. Choisir "Super Grub"
  3. Choisir "Detect and show boot methods"
  4. Sélectionner le premier operating system
  5. Se loguer dans le système
  6. Reconfigurer grub
    # grub-install /dev/sdX --force
    # update-grub
    Pour vérifier quel est le disque système :
    # sudo blkid
    # cat /etc/fstab
  7. Rebooter sur le disque dur

16. Parted Magic

====> vmPxe <====

Récupère l'iso de pmagic sur la clef usb et réalise les opérations nécessaire pour pouvoir booter en pxe l'utilitaire Parted Magic. (utilisation de memdisk).

Le lancement de pmagic peut prendre un certain temps.

17. Debian Live

====> vmPxe <=====
  1. Télécharger debian live:
    # mkdir /home/download/debian_live
    # cd /home/download/debian_live
    # wget http://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-8.2.0-amd64-gnome-desktop.iso
  2. Créer un repertoire et monter l'iso:
    # mkdir -p /srv/distrib/debian_live
    # mount debian-live-8.2.0-amd64-gnome-desktop.iso /srv/distrib/debian_live
  3. Editer le fichier de configuration NFS:
    # nano /etc/exports
  4. Ajouter une entrée pour partager la debian_live :
    /srv/distrib/debian_live 10.0.x.0/24(ro,sync)
  5. Editer le fichier de configuration du menu Pxe:
    # nano /srv/tftp/pxelinux.cfg/default
  6. Ajouter une nouvelle entrée:
    LABEL 6
        MENU LABEL ^6)  Debian 8.2 Live Gnome
        KERNEL sources/linux/debian_live/vmlinuz
        APPEND initrd=sources/linux/debian_live/initrd.img boot=live components locales=fr_BE.UTF-8 keyboard-layouts=be vga=791 noswap netboot=nfs nfsroot=10.0.x.102:/srv/distrib/debian_live quiet
    		

18. Préparation image Windows

====>Client<=====
  1. Récupérer l'ISO de windows 7
  2. Dans Virtualbox :
    1. Ajouter un lecteur optique
    2. Charger l'image de windows dans le lecteur
    3. Booter la machine sur le lecteur optique
    4. Installer windows 7
  3. Se connecter au Windows 7 virtualbox
  4. Télécharger "Windows Automated Installation Kit" (https://www.microsoft.com/en-us/download/details.aspx?id=5753)
  5. Télécharger "daemon tools lite" et installer le
  6. Monter l'image de Windows Automated Installation Kit à l'aide de Daemon tools
  7. Installer Windows Automated Installation Kit
  8. Menu Windows > All programs > Microsoft Windows AIK > Deployment Tools command prompt
  9. Exécuter les commandes suivantes:
    > copype amd64 C:\winPE_amd64
    > copy "C:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim" C:\winpe_amd64\ISO\Sources\Boot.wim
    > copy "C:\Program Files\Windows AIK\Tools\amd64\Imagex.exe" C:\winpe_amd64\ISO\
    > oscdimg -n -bC:\winpe_amd64\etfsboot.com C:\winpe_amd64\ISO C:\winpe_amd64\winpe_amd64.iso
  10. Envoit des fichiers sur vmPxe:
    1. Configurer la machine virtuelle : "configuration -> général -> avancé" et sélectionner le mode bidirectionnel pour le glisser-déposer
    2. Glisser-déposer le fichier "c:\winpe_amd64\winpe_amd64.iso" de la machine virtuelle vers la machine hote
    3. A l'aide de la commande scp envoyer le fichier sur la vmPxe:
      # scp /..../winpe_amd64.iso root@10.0.x.102:/home/download
  11. ====> vmPxe <====
    Copier l'image dans tftp :
    # mkdir /srv/tftp/sources/iso/windows
    # cp /home/download/winpe_amd64.iso /srv/tftp/sources/iso/windows
  12. Editer le fichier de configuration des menu pxe:
    # nano /srv/tftp/pxelinux.cfg/default
  13. Ajouter une entrée pour le windows :
    LABEL 7
        MENU LABEL ^7)  Windows
    	KERNEL sources/iso/memdisk
    	APPEND initrd=sources/iso/windows/winpe_amd64.iso iso
    
  14. ====> Client <====
    Booter le client en PXE, choisir windows et vérifier que vous arrivez à une invite de commande windows

19. Configuration serveur Samba

====>vmPxe<====
  1. Installer le serveur samba :
    # apt-get install samba samba-common libcups2
    		
  2. Editer le fichier de configuration:
    # nano /etc/samba/smb.conf
  3. Ajouter une entrée Anonymous :
    [Anonymous]
    path = /srv/samba
    browsable =yes
    writable = yes
    guest ok = yes
    read only = no
  4. Créer le repertoire samba et le configurer:
    # mkdir /srv/samba
    # chmod -R 0755 /srv/samba
    # chown -R nobody:nogroup /srv/samba/
  5. Démarrer le service samba:
    # service smbd restart
    # service nmbd restart
  6. ====>Client<====
    Ouvrir la machine virtuelle windows
  7. Menu windows -> champ de recherche -> taper "run"
  8. Dans "run", entrer : "\\10.0.x.102" et vérifier que vous avez accès au partage samba

20. Déploiement Windows

====> vmPxe <======
  1. Créer un répertoire samba :
    # mkdir -p /srv/samba/windows/amd64
  2. Copier le fichier iso d'installation de windows présent sur la clef usb dans le repertoire /home/download/windows à l'aide des commandes mkdir et scp.
  3. Monter l'iso dans le répertoire samba :
  4. # mount /home/download/SW_DVD5_Win_Pro_7w_SP1_64BIT_English_-2_MLF_X17-59279.ISO /srv/samba/windows/amd64/
  5. ===> Client <====
    Configurer la machine virtuelle de virtualbox pour avoir au moins 4Go de ram
  6. Booter la machine virtuelle en PXE
  7. Sélectionner "Windows"
  8. Dans l'invite de commande windows, mapper le partage samba et lancer l'éxecution de l'installation:
    > net use * \\10.0.x.102\Anonymous\windows\amd64
    Drive Z: is now connected to ...
    > z:
    > setup