Salut !
J'ai créé un script (merci au forum… 😉 ) permettant de créer un périphérique d'install Win® facilement. Je risque encore de le modifier, donc voici le lien Dropbox, avec les différentes versions ! (winonlinux-*)
Si vous avez des commentaires, propositions, etc, je suis tout ouïe 😃
Félix
https://www.dropbox.com/sh/kvifjq9019q9i53/DcXpIgWyE
winonlinux-2
#!/bin/bash
# Le script fonctionnera correctement avec fdisk, mkfs.ntfs, rsync, gettext, et après installation de ms-sys. Voir fin du script pour install.
# Le périphérique ne doit pas être en gpt, mais en mbr. Veuillez utiliser gparted avant dans ce cas.
### POUR INSTALLER ms-sys :
# Télécharger la dernière version sur http://ms-sys.sourceforge.net/#Download puis :
# cd ms-sys-X.X.X
# sudo make
# sudo make install
# Je n'ai pas encore trouvé comment interrompre le script en cas d'échec, par exemple du démontage, etc. Ce sera dans la v3 je pense.
echo "Ceci est une version en cours de développement du script, il est déconseillé de l'utiliser pour le moment !"
## Tests de bon fonctionnement :
if [ ! -f /usr/local/bin/ms-sys ] ; then # ms-sys installé ?
echo "Veuillez installer ms-sys avant. lancez $EDITOR $0 pour plus de précisions." ; exit
fi
if [ $USER != root ] ; then # Êtes-vous en root ?
echo -e "À exécuter en Root (Administrateur) !\nExécutez \"sudo $0\" ou connectez-vous en tant que Root !" ; exit
fi
if [ $# != 1 ] ; then # M'avez-vous donné l'iso ?
echo "Ne me prenez pas pour Dieu : je ne sais pas quelle iso vous voulez copier !" ; exit
fi
## Fin des tests de bon fonctionnement
ISO=$1
echo "ATTENTION, perte de données sur la clé !"
fdisk -l | grep " /dev/" # Affichage des périphériques
while [ ! -b "$CLE" ] ; do # Demande du périphérique cible
read -p "Donnez la clé à réécrire TOTALLEMENT (sous le format /dev/sd*) :" CLE; done
KEY="$CLE?"
printf "%s\n" $KEY | sudo xargs umount # Démontage de la cible (J'ai pas trop compris ce que j'ai écrit, on m'a donné ça et ça fonctionne.)
# Confirmation.
while [[ "$BOOL" != "y" && "$BOOL" != "Y" && "$BOOL" != "n" && "$BOOL" != "N" ]] ; do read -p "L'iso $ISO sera copiée sur le périphérique $CLE. Okay ? (y/N) : " BOOL; done
if [[ $BOOL = n || $BOOL = N ]] ; then
echo "Le script est interrompu par l'utilisateur, donc c'est votre faute." ; exit
fi
while [[ "$VER" < 1 || "$VER" > 3 ]]; do read -p "Vous devez, pour écrire le MBR, sélectionner la version de Windows qui va être installée.
1. WindowsXP/2000/2003…
2. WindowsVista
3. Windows7 ou 8
Votre version ? (1-3) :" VER ; done # Le MBR dépend de la version de M®W®. Il sera écrit à la fin.
# Partie effective du script ! (Enfin !)
echo "
******************Effacement du MBR.******************
"
dd if=/dev/zero of=$CLE bs=446 count=1
echo "
***************Création des partitions.***************"
cat <<EOF | fdisk $CLE
d
n
p
1
a
1
w
EOF
mkfs.ntfs $CLE'1' --fast --no-indexing # Formatage, c'est évident.
mkdir /mnt/USBWIN # Montage pour la copie.
mkdir /mnt/ISOWIN
mount $CLE'1' /mnt/USBWIN
mount "$ISO" /mnt/ISOWIN -o loop,ro
echo "
**************Copie. L'attente la plus longue sera sur sources/install.wim**************
"
rsync -arv --progress /mnt/ISOWIN/* /mnt/USBWIN
umount /mnt/ISOWIN
umount /mnt/USBWIN
rm -r /mnt/USBWIN /mnt/ISOWIN
case $VER in
"1") /usr/local/bin/ms-sys --mbr $CLE ;;
"2") /usr/local/bin/ms-sys --mbrvista $CLE ;;
"3") /usr/local/bin/ms-sys --mbr7 $CLE ;;
esac
echo "Voilà ! Votre clé d'installation Windows® est prête à être utilisée."
## À faire :
# Arrêt en cas d'erreur ?
# Arrêt complet en cas de Ctrl+C ? (je pense que ça revient au même)
# Que faire si /mnt/USBWIN ou ISOWIN existent déjà ?
# Nettoyer un peu la sortie, que diable !
Il s'exécute avec les droits root, sous la forme
winonlinux chemin_vers_l'iso_à_copier
après installation de ms-sys.
EDIT : Hum, je me suis planté dans mon copié-coller, maintenant ça fonctionne 🙂