Actualiser windows-install.sh
This commit is contained in:
@@ -1,93 +1,68 @@
|
|||||||
#!/bin/bash
|
#!/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 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
|
partprobe $DISK
|
||||||
disk_size_gb=$(parted /dev/sda --script print | awk '/^Disk \/dev\/sda:/ {print int($3)}')
|
sleep 5
|
||||||
disk_size_mb=$((disk_size_gb * 1024))
|
|
||||||
|
|
||||||
#Calculate partition size (25% of total size)
|
# Formatage en NTFS
|
||||||
part_size_mb=$((disk_size_mb / 4))
|
mkfs.ntfs -f ${DISK}1
|
||||||
|
mkfs.ntfs -f ${DISK}2
|
||||||
|
|
||||||
#Create GPT partition table
|
# 2. Montage des partitions
|
||||||
parted /dev/sda --script -- mklabel gpt
|
mkdir -p /mnt/installer
|
||||||
|
mount ${DISK}1 /mnt/installer
|
||||||
|
|
||||||
#Create two partitions
|
# 3. Préparation de l'ISO Windows
|
||||||
parted /dev/sda --script -- mkpart primary ntfs 1MB ${part_size_mb}MB
|
mkdir -p /root/iso_win
|
||||||
parted /dev/sda --script -- mkpart primary ntfs ${part_size_mb}MB $((2 * part_size_mb))MB
|
wget -O /root/win10.iso "$URL_ISO_WIN"
|
||||||
|
mount -o loop /root/win10.iso /root/iso_win
|
||||||
|
|
||||||
#Inform kernel of partition table changes
|
# Copie des fichiers d'installation vers la partition de boot
|
||||||
partprobe /dev/sda
|
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
|
cat <<EOF > /mnt/installer/boot/grub/grub.cfg
|
||||||
|
menuentry "Install Windows 10 IoT LTSC" {
|
||||||
#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 <<EOF > grub.cfg
|
|
||||||
menuentry "windows installer" {
|
|
||||||
insmod ntfs
|
insmod ntfs
|
||||||
search --set=root --file=/bootmgr
|
search --set=root --file /bootmgr
|
||||||
ntldr /bootmgr
|
ntldr /bootmgr
|
||||||
boot
|
boot
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cd /root/windisk
|
echo "--- Terminé ! ---"
|
||||||
|
echo "Le VPS va redémarrer sur l'installeur Windows."
|
||||||
mkdir winfile
|
echo "Utilise la console VNC de Contabo pour finaliser l'installation."
|
||||||
|
sleep 5
|
||||||
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
|
reboot
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user