Files
Windows-Server-Contabo-VPS-…/windows-install.sh
2025-12-19 00:05:53 +00:00

94 lines
2.2 KiB
Bash

#!/bin/bash
apt update -y
apt install grub2 filezilla gparted wimtools -y
#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))
#Calculate partition size (25% of total size)
part_size_mb=$((disk_size_mb / 4))
#Create GPT partition table
parted /dev/sda --script -- mklabel gpt
#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
#Inform kernel of partition table changes
partprobe /dev/sda
sleep 30
partprobe /dev/sda
sleep 30
partprobe /dev/sda
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 <<EOF > grub.cfg
menuentry "windows installer" {
insmod ntfs
search --set=root --file=/bootmgr
ntldr /bootmgr
boot
}
EOF
cd /root/windisk
mkdir winfile
wget -O win10.iso https://software.download.prss.microsoft.com/dbazure/Win11_25H2_French_x64.iso?t=4830085e-54a3-4d71-9259-405531454853&P1=1766189130&P2=601&P3=2&P4=OCiMPTx2xoHNG4VYuh4s8SgMMXhN0XoAsnnU8Haxr5L4qaHTnnw39%2fSFziVniaodtzX96uurZgQ18w%2fILUU9KI%2bPU9TZZRAKGVq6iY7DRqhNPAtq5WJy2q3B%2foclmzFcjULMKAVlJ1gbu46VARZdzjbGRm3%2fkhD0ulaexSsRDy6t%2fyMV2qeGS1pia7nSSbLmf9VdvcRBP8N%2baPLZ1%2fKxZX2ZkPVjfCziUhfHCKizZdYugcP4qWUhk5cgmtGnDIeWoXt2yRGE304UBa47u1jyS%2fIqc0dqg0GFsWMk%2bJ3TH15is7tYabUfWXsv0TaEWhJvcrW9sm9Mu4tl8EvObHbutQ%3d%3d
mount -o loop win10.iso winfile
rsync -avz --progress winfile/* /mnt
umount winfile
wget -O virtio.iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.285-1/virtio-win-0.1.285.iso
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