IVENTOY : permet de lancer des ISOs en réseau, donc en PXE, soit pour l'installation des OS soit pour les diagnostics, restauration...
Le site de IVENTOY : https://www.iventoy.com/en/index.html
Un résumé de IVENTOY sur le site de l'éditeur, traduit en français :
Ses caractéristiques toujours sur le site de l'éditeur. Description traduite en français :
Beaucoup de personnes connaissent VENTOY, l'outil qui permet de formater un disque dur ou une clé sub en 2 partitions. Une pour boot et une qui contient les ISOs.
IVENTOY est son équivalent en PXE.
Mon environnement pour cette mise en place
1) CREATION DE L'ENVIRONNEMENT D’IVENTOY
Sur le NAS, j'ai créé un dossier partagé avec le nom iventoy.
J'ai téléchargé la version gratuite linux : iventoy-1.0.20-linux-free.tar.gz à cette page : https://github.com/ventoy/PXE/releases
J'ai décompressé le fichier iventoy-1.0.20-linux-free.tar.gz et j'ai obtenu les dossiers et fichiers suivants :
J'ai copié ces fichiers-dossiers sous le dossier partagé iventoy sur le nas :
dans le dossier "iso", on met les fichiers isos sur lequels on veut démarrer (bien sûr sous format ISO et non décompressés).
J'ai modifié le script iventoy.sh :
J'ai mis en commentaire la 3ème ligne comme ceci : #PROJ_DIR=$PWD
Et j'ai mis à sa place le dossier réel : PROJ_DIR=/volume1/iventoy
Bash:
#! /bin/bash
PROC_ENV="env IVENTOY_API_ALL=1"
#PROJ_DIR=$PWD
PROJ_DIR=/volume1/iventoy
PROJ_EXEC=$PROJ_DIR/lib/iventoy
PROJ_PID=/var/run/iventoy.pid
uid=$(id -u)
if [ $uid -ne 0 ]; then
echo "Please use sudo or run the script as root."
exit 1
fi
if [ "$1" = '-A' ]; then
shift
fi
if [ "$1" = '-R' ]; then
shift
PROC_ENV="$PROC_ENV IVENTOY_AUTO_RUN=1"
fi
if echo $1 | grep -P -q '^(start|stop|status)$'; then
:
else
echo -e "\nUsage: $0 { start | stop | status }\n"
exit 1
fi
iventoy_get_running_pid() {
local PID
local FILE
if [ -f $PROJ_PID ]; then
if grep -q '[0-9]' $PROJ_PID; then
PID=$(cat $PROJ_PID)
if [ -e /proc/$PID/exe ]; then
FILE=$(readlink -f /proc/$PID/exe)
if echo $FILE | grep -q '/iventoy$'; then
echo $PID
return
fi
fi
fi
fi
echo 0
}
start() {
local PID
local RETVAL
PID=$(iventoy_get_running_pid)
if [ $PID -ne 0 ]; then
echo "[ERROR] iventoy is already running. PID=$PID"
exit 1
fi
cd $PROJ_DIR
$PROC_ENV $PROJ_EXEC
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
PID=$(iventoy_get_running_pid)
echo "iventoy start SUCCESS PID=$PID"
echo ""
echo "Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)"
echo ""
else
echo "iventoy start FAILED"
fi
}
stop() {
local PID
local RETVAL
PID=$(iventoy_get_running_pid)
if [ $PID -eq 0 ]; then
echo "[ERROR] iventoy is not running"
exit 1
fi
kill -15 $PID
}
status() {
local PID
PID=$(iventoy_get_running_pid)
if [ $PID -ne 0 ]; then
echo "iventoy is running, PID=$PID"
echo ""
else
echo "iventoy is not running."
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo -e "\nUsage: $0 { start | stop | status }\n"
exit 2
esac
exit $?
2) CREATION D'UNE TACHE QUI LANCE LE SCRIPT AU DEMARRAGE DU NAS
3) EXECUTION DE TACHE MANUELLEMENT POUR LE TEST
Clic droit de la souris sur la le nom de la tâche dans la liste des tâche et exécuter.
Au dessus de la liste des tâches, on clique sur "Action" puis on clique sur Afficher le résultat qui devrait être comme suit :
4) Comme indiqué dans le message du résultat, mettre l'adresse du nas avec le port 26000 pour le paramétrage de iventoy
Dans mon cas, je mets 192.168.1.19:26000 et je me retrouve avec la page suivante :
C'est la page Boot Information :
Dans IP Pool (begin) : mettre l'adresse IP de début pour l'attribution de l'adresse IP en DHCP
Dans IP Pool (end) : mettre l'IP de fin.
On peut laisser ces plages si ça ne gêne pas d'autres services.
Dans la page suivante, il y a la configuration du réseau dont le mode de DHCP.
Moi, j'ai choisi "internal" pour laisser iventoy le gérer.
5) On va sur la 1ère page et on lance le processus
On prend un PC pour démarrer en Réseau.
J'ai testé en mode "BIOS" et en mode "UEFI" et j'ai pu installer windows 10, x64.
Iventoy_Task.pdf