diff --git a/windows-install.sh b/windows-install.sh index 6856da3..28f03fe 100644 --- a/windows-install.sh +++ b/windows-install.sh @@ -1,93 +1,68 @@ #!/bin/bash +# Configuration des URLs +URL_ISO_WIN="https://bit.ly/3UGzNcB" +URL_VIRTIO="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso" + +echo "--- Préparation du système ---" apt update -y +apt install grub2 wimtools rsync ntfs-3g gdisk parted wget -y -apt install grub2 filezilla gparted wimtools -y +# 1. Nettoyage et Partitionnement +DISK="/dev/sda" +parted $DISK --script mklabel gpt +# Partition 1 : L'installeur (Boot) - 15 Go +parted $DISK --script mkpart primary ntfs 1MB 15GB +# Partition 2 : La cible (Système final) - Le reste du disque +parted $DISK --script mkpart primary ntfs 15GB 100% -#Get the disk size in GB and convert to MB -disk_size_gb=$(parted /dev/sda --script print | awk '/^Disk \/dev\/sda:/ {print int($3)}') -disk_size_mb=$((disk_size_gb * 1024)) +partprobe $DISK +sleep 5 -#Calculate partition size (25% of total size) -part_size_mb=$((disk_size_mb / 4)) +# Formatage en NTFS +mkfs.ntfs -f ${DISK}1 +mkfs.ntfs -f ${DISK}2 -#Create GPT partition table -parted /dev/sda --script -- mklabel gpt +# 2. Montage des partitions +mkdir -p /mnt/installer +mount ${DISK}1 /mnt/installer -#Create two partitions -parted /dev/sda --script -- mkpart primary ntfs 1MB ${part_size_mb}MB -parted /dev/sda --script -- mkpart primary ntfs ${part_size_mb}MB $((2 * part_size_mb))MB +# 3. Préparation de l'ISO Windows +mkdir -p /root/iso_win +wget -O /root/win10.iso "$URL_ISO_WIN" +mount -o loop /root/win10.iso /root/iso_win -#Inform kernel of partition table changes -partprobe /dev/sda +# Copie des fichiers d'installation vers la partition de boot +rsync -avz --progress /root/iso_win/* /mnt/installer/ -sleep 30 +# 4. Intégration des pilotes VirtIO (Crucial pour Contabo) +mkdir -p /root/iso_virtio /mnt/installer/sources/virtio +wget -O /root/virtio.iso "$URL_VIRTIO" +mount -o loop /root/virtio.iso /root/iso_virtio -partprobe /dev/sda +# Copie des drivers dans un dossier accessible par l'installeur +rsync -avz --progress /root/iso_virtio/* /mnt/installer/sources/virtio/ -sleep 30 +# 5. Injection des drivers dans Boot.wim (pour que l'installeur voit le disque) +cd /mnt/installer/sources +echo 'add virtio /virtio' > cmd.txt +# On injecte dans l'index 2 (l'environnement de setup Windows) +wimlib-imagex update boot.wim 2 < cmd.txt -partprobe /dev/sda +# 6. Installation de GRUB pour booter sur la partition NTFS +grub-install --root-directory=/mnt/installer $DISK -sleep 30 - -#Format the partitions -mkfs.ntfs -f /dev/sda1 -mkfs.ntfs -f /dev/sda2 - -echo "NTFS partitions created" - -echo -e "r\ng\np\nw\nY\n" | gdisk /dev/sda - -mount /dev/sda1 /mnt - -#Prepare directory for the Windows disk -cd ~ -mkdir windisk - -mount /dev/sda2 windisk - -grub-install --root-directory=/mnt /dev/sda - -#Edit GRUB configuration -cd /mnt/boot/grub -cat < grub.cfg -menuentry "windows installer" { - insmod ntfs - search --set=root --file=/bootmgr - ntldr /bootmgr - boot +cat < /mnt/installer/boot/grub/grub.cfg +menuentry "Install Windows 10 IoT LTSC" { + insmod ntfs + search --set=root --file /bootmgr + ntldr /bootmgr + boot } EOF -cd /root/windisk - -mkdir winfile - -wget -O win10.iso https://archive.org/download/en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f_202301/en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f.iso - -mount -o loop win10.iso winfile - -rsync -avz --progress winfile/* /mnt - -umount winfile - -wget -O virtio.iso https://shorturl.at/lsOU3 - -mount -o loop virtio.iso winfile - -mkdir /mnt/sources/virtio - -rsync -avz --progress winfile/* /mnt/sources/virtio - -cd /mnt/sources - -touch cmd.txt - -echo 'add virtio /virtio_drivers' >> cmd.txt - -wimlib-imagex update boot.wim 2 < cmd.txt - -reboot - - +echo "--- Terminé ! ---" +echo "Le VPS va redémarrer sur l'installeur Windows." +echo "Utilise la console VNC de Contabo pour finaliser l'installation." +sleep 5 +reboot \ No newline at end of file