Initial scripts commit

This commit is contained in:
Jérémy Lecour 2020-04-26 22:41:40 +02:00 committed by Jérémy Lecour
parent bb58f64d5a
commit 60f31b4cd4
18 changed files with 2648 additions and 0 deletions

View File

@ -0,0 +1,102 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/sda1 /, /dev/sda2 /home.
# / doit être sur /dev/sda1. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/sda1 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
parted -s /dev/sda set 1 bios_grub on
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
parted -s /dev/sda set 2 boot on
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
# /
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
# /var
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
mkfs.ext4 -LVAR /dev/sda4 >/dev/null
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
mkfs.ext4 -LUSR /dev/sda5 >/dev/null
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
parted -s /dev/sda set 6 lvm on
# Add LVM with a VG for all of the free space.
pvcreate /dev/sda6
vgcreate ssd0 /dev/sda6
pvcreate /dev/sdb
vgcreate hdd0 /dev/sdb
lvcreate --size 1G --name tmp ssd0
mkfs.ext4 -LTMP /dev/mapper/ssd0-tmp >/dev/null
lvcreate --size 10G --name swap1 ssd0
lvcreate --size 10G --name swap2 hdd0
mkswap -f -LSWAP1 /dev/mapper/ssd0-swap1
mkswap -f -LSWAP2 /dev/mapper/hdd0-swap2
lvcreate --size 20G --name home hdd0
mkfs.ext4 -LHOME /dev/mapper/hdd0-home >/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# LVM2 déjà OK sur machines OVH
#apt install -y lvm2
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,154 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# / doit être sur /dev/sda2. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/sda2 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
sleep 2
# BOOT EFI *mandatory* 100 Mo
parted -a minimal -s /dev/sda mkpart ESP fat32 0M 100M
parted -s /dev/sda set 1 esp on
parted -s /dev/sda set 1 boot on
mkfs.vfat -F32 /dev/sda1 >/dev/null
fatlabel /dev/sda1 EFI_SYSPART
sleep 2
# /boot 500 Mo
parted -a minimal -s /dev/sda mkpart primary ext4 100M 600M
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
sleep 2
# / 500 Mo
parted -a optimal -s /dev/sda mkpart primary ext4 600M 1100M
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
sleep 2
# /usr 6 Go
parted -a optimal -s /dev/sda mkpart primary ext4 1100M 7100M
mkfs.ext4 -LUSR /dev/sda4 >/dev/null
sleep 2
# swap1 10 Go
parted -a minimal -s /dev/sda mkpart primary ext4 7100M 17100M
mkswap -f -LSWAP1 /dev/sda5
sleep 2
# swap2 10 Go
parted -a minimal -s /dev/sda mkpart primary ext4 17100M 27100M
mkswap -f -LSWAP2 /dev/sda6
sleep 2
# LVM 100%
parted -a minimal -s /dev/sda mkpart primary ext4 27100M 100%
parted -s /dev/sda set 7 lvm on
sleep 2
# Add LVM with a VG for all of the free space.
pvcreate /dev/sda7
vgcreate vg0 /dev/sda7
sleep 2
# TMP
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
sleep 2
# VAR
lvcreate --size 5G --name var vg0
mkfs.ext4 -LVAR /dev/mapper/vg0-var >/dev/null
sleep 2
# HOME
lvcreate --size 50G --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
sleep 2
# Le reste du disque est laissé tel quel
# Mount partitions
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mkdir rootfs/usr
mount -LUSR rootfs/usr
# Copy data from RAM.
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ rootfs/usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var
# si on démonte usr, le chroot n'est pas possible (bash n'est pas trouvé)
# umount rootfs/usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 2
LABEL=SWAP2 none swap sw 0 2
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /boot/efi
# /usr est déjà monté depuis l'extérieur du chroot
mount /var
mount /tmp
chmod 1777 /tmp
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
# * Remove GRUB 2 from /boot/grub? Yes
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# réinstallation des paquets
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
grub-install /dev/sda
# Questions "update-grub":
# * Linux command line:
# * Linux default command line: quiet
# * Force extra installation to the EFI removable media path? Yes
# * Update NVRAM variables to automatically boot into Debian? Yes
update-grub
dpkg-reconfigure grub-efi-amd64
# paquets utiles pour evolixisation par Ansible
apt install -y sudo python python-apt
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,111 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/sda1 /, /dev/sda2 /home.
# / doit être sur /dev/sda1. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/sda2 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
parted -s /dev/sda set 1 bios_grub on
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
parted -s /dev/sda set 2 boot on
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
# /
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
# /var
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
mkfs.ext4 -LVAR /dev/sda4 >/dev/null
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
mkfs.ext4 -LUSR /dev/sda5 >/dev/null
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
parted -s /dev/sda set 6 lvm on
# Add LVM with a VG for all of the free space.
pvcreate /dev/sda6
vgcreate RAID1_VOL0 /dev/sda6
pvcreate /dev/sdb
vgcreate RAID1_VOL1 /dev/sdb
lvcreate --size 1G --name tmp RAID1_VOL0
mkfs.ext4 -LTMP /dev/mapper/RAID1_VOL0-tmp >/dev/null
lvcreate --size 512M --name swap1 RAID1_VOL0
lvcreate --size 512M --name swap2 RAID1_VOL1
mkswap -f -LSWAP1 /dev/mapper/RAID1_VOL0-swap1
mkswap -f -LSWAP2 /dev/mapper/RAID1_VOL1-swap2
lvcreate --size 600G --name home RAID1_VOL0
mkfs.ext4 -LHOME /dev/mapper/RAID1_VOL0-home >/dev/null
lvcreate --size 40G --name log RAID1_VOL0
mkfs.ext4 -LLOG /dev/mapper/RAID1_VOL0-log >/dev/null
lvcreate --size 200G --name srv RAID1_VOL1
mkfs.ext4 -LSRV /dev/mapper/RAID1_VOL1-srv >/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LLOG log
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a --exclude="log/**" root_in_ram/var/ var/
rsync -a root_in_ram/var/log/ log/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr log
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=LOG /var/log ext4 defaults 0 2
LABEL=SRV /srv ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
mount /var/log
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# LVM2 déjà OK sur machines OVH
#apt install -y lvm2
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,105 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/sda1 /, /dev/sda2 /home.
# / doit être sur /dev/sda1. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/sda1 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
parted -s /dev/sda set 1 bios_grub on
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
parted -s /dev/sda set 2 boot on
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
# /
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
# /var
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
mkfs.ext4 -LVAR /dev/sda4 >/dev/null
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
mkfs.ext4 -LUSR /dev/sda5 >/dev/null
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
parted -s /dev/sda set 6 lvm on
# Add LVM with a VG for all of the free space.
pvcreate /dev/sda6
vgcreate SSD0 /dev/sda6
pvcreate /dev/sdb
vgcreate HDD0 /dev/sdb
lvcreate --size 1G --name tmp SSD0
mkfs.ext4 -LTMP /dev/mapper/SSD0-tmp >/dev/null
lvcreate --size 512M --name swap1 SSD0
lvcreate --size 512M --name swap2 HDD0
mkswap -f -LSWAP1 /dev/mapper/SSD0-swap1
mkswap -f -LSWAP2 /dev/mapper/HDD0-swap2
lvcreate --size 200G --name home HDD0
mkfs.ext4 -LHOME /dev/mapper/HDD0-home >/dev/null
lvcreate --size 40G --name srv SSD0
mkfs.ext4 -LSRV /dev/mapper/SSD0-srv >/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SRV /srv ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# LVM2 déjà OK sur machines OVH
#apt install -y lvm2
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,192 @@
#!/bin/bash
# Le script suppose que :
# * il y a un (seul) ensemble RAID hard
# * le serveur boot en EFI
# * on va reconstruire toute la table de partitionnement (GPT) du serveur
# * le volume "rootfs" actuel est /dev/sda2
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé,
# grub et le kernel sont réinstallés.
# Si vous utilisez un terminal exotique, émulez xterm
export TERM=xterm
# Avant de commencer, consulter les disques pour vérifier les noms
lsblk
# utilisez "set -e" si vous copiez/collez des bouts de scripts et souhaitez
# un arrêt en cas d'erreur. Si vous le faites dans le shell de votre session SSH
# elle s'interrompra !
# set -e
export LC_ALL=C
swapoff -a
sleep 1
cd /mnt
mkdir -p root_in_ram rootfs home var usr srv
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/sda2 /mnt/rootfs/
sleep 1
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
sleep 1
umount /mnt/rootfs
sleep 1
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
sleep 1
# BOOT EFI *mandatory* 100 Mo
parted -a minimal -s /dev/sda mkpart ESP fat32 0M 100M
sleep 1
parted -s /dev/sda set 1 esp on
sleep 1
parted -s /dev/sda set 1 boot on
sleep 1
mkfs.vfat -F32 /dev/sda1 >/dev/null
sleep 1
fatlabel /dev/sda1 EFI_SYSPART
sleep 1
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 100M 600M
sleep 1
parted -s /dev/sda set 2 boot on
sleep 1
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
sleep 1
# /
parted -a optimal -s /dev/sda mkpart primary ext4 600M 1600M
sleep 1
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
sleep 1
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 1600M 7600M
sleep 1
mkfs.ext4 -LUSR /dev/sda4 >/dev/null
sleep 1
# swap1
parted -a optimal -s /dev/sda mkpart primary ext4 7600M 8100M
sleep 1
mkswap -f -LSWAP1 /dev/sda5 >/dev/null
sleep 1
# swap2
parted -a optimal -s /dev/sda mkpart primary ext4 8100M 8600M
sleep 1
mkswap -f -LSWAP2 /dev/sda6 >/dev/null
sleep 1
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 8600M 100%
sleep 1
# Add LVM with a VG for all of the free space.
pvcreate /dev/sda7
sleep 1
vgcreate SSD0 /dev/sda7
sleep 1
lvcreate --size 1G --name tmp SSD0
sleep 1
mkfs.ext4 -LTMP /dev/mapper/SSD0-tmp >/dev/null
sleep 1
lvcreate --size 10G --name var SSD0
sleep 1
mkfs.ext4 -LVAR /dev/mapper/SSD0-var >/dev/null
sleep 1
lvcreate -l 90%FREE --name home SSD0
sleep 1
mkfs.ext4 -LHOME /dev/mapper/SSD0-home >/dev/null
sleep 1
# Copy data from RAM.
mount -LROOTFS rootfs
mkdir -p rootfs/home && mount -LHOME rootfs/home
mkdir -p rootfs/var && mount -LVAR rootfs/var
mkdir -p rootfs/usr && mount -LUSR rootfs/usr
sleep 1
rsync -a root_in_ram/home/ rootfs/home/
rsync -a root_in_ram/var/ rootfs/var/
rsync -a root_in_ram/usr/ rootfs/usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
sleep 1
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
sleep 1
chroot /mnt/rootfs/ bash
sleep 1
export LC_ALL=C
mkdir -p /boot && mount /boot
mkdir -p /boot/efi && mount /dev/sda1 /boot/efi
mount /tmp
chmod 1777 /tmp
sleep 1
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
rm -rf /etc/default/grub.d
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
sleep 1
# purge des kernels
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
sleep 1
# réinstallation des paquets
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
sleep 1
apt purge -y os-prober
# En cas d'erreur à l'install/config de Grub, il faut vérifier si le RAID est OK
# cat/proc/mdstat
grub-install /dev/sda
sleep 1
apt purge -y os-prober
# Questions "update-grub":
# * Linux command line:
# * Linux default command line: quiet
# * Force extra installation to the EFI removable media path? Yes
# * Update NVRAM variables to automatically boot into Debian? Yes
update-grub
# dpkg-reconfigure --frontend=noninteractive grub-efi-amd64
dpkg-reconfigure grub-efi-amd64
sleep 1
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,130 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/md3 /, /dev/md4 /home.
# / doit être sur /dev/md3. Sinon adapter le script !
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md3 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
mdadm --stop /dev/md4
mdadm --stop /dev/md3
tune2fs -LBOOT /dev/md2 && tune2fs -LBOOT /dev/md2
# Check if label is BOOT
wipefs /dev/md2
mdadm --stop /dev/md2
parted -s /dev/sda rm 5
parted -s /dev/sda rm 4
parted -s /dev/sda rm 3
# /
parted -a optimal -s /dev/sda mkpart primary ext4 1073M 2073M
sleep 2
parted -s /dev/sda set 3 raid on
# /var
parted -a minimal -s /dev/sda mkpart primary ext4 2073M 12073M
sleep 2
parted -s /dev/sda set 4 raid on
# /usr
parted -a minimal -s /dev/sda mkpart primary ext4 12073M 17073M
sleep 2
parted -s /dev/sda set 5 raid on
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 17073M 100%
parted -s /dev/sda set 6 raid on
sleep 2
#Copy parts to sd{b,c,d,e,f}
for i in sd{b,c,d,e,f}; do
sgdisk -R=/dev/$i /dev/sda
sgdisk -G /dev/$i
partprobe /dev/$i
done
mdadm --assemble /dev/md2 /dev/{sda,sdb,sdc,sdd,sde,sdf}2
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {3,4,5}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=6 /dev/{sda,sdb,sdc,sdd,sde,sdf}${part}
done
# No need for LVM part to has metadata 0.90.
yes | mdadm --create /dev/md6 --level=raid10 --raid-devices=6 /dev/{sda,sdb,sdc,sdd,sde,sdf}6
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
mkfs.ext4 -LVAR /dev/md4 >/dev/null
mkfs.ext4 -LUSR /dev/md5 >/dev/null
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
vgcreate vg0 /dev/md6
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
lvcreate --size 512M --name swap1 vg0
lvcreate --size 512M --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --extents 95%FREE --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /dev/sda1 /boot/efi
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# LVM2 déjà OK sur machines OVH
#apt install -y lvm2
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
apt install -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64 dosfstools
update-grub2
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,124 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/md2 / 20G, /dev/md3 /home
# / doit être sur /dev/md2. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md2 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
mdadm --stop /dev/md2
mdadm --stop /dev/md3
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
parted -s /dev/sda set 1 bios_grub on
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
parted -s /dev/sda set 2 boot on
parted -s /dev/sda set 2 raid on
# /
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
parted -s /dev/sda set 3 raid on
# /var
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
parted -s /dev/sda set 4 raid on
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
parted -s /dev/sda set 5 raid on
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
parted -s /dev/sda set 6 raid on
#Copy parts to sdb
sgdisk -R=/dev/sdb /dev/sda
sgdisk -G /dev/sdb
partprobe /dev/sda
partprobe /dev/sdb
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {2,3,4,5}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
done
# No need for LVM part to has metadata 0.90.
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{sda,sdb}6
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
mkfs.ext4 -LVAR /dev/md4 >/dev/null
mkfs.ext4 -LUSR /dev/md5 >/dev/null
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
vgcreate vg0 /dev/md6
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
lvcreate --size 512M --name swap1 vg0
lvcreate --size 512M --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --size 10G --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
lvcreate --extents 95%FREE --name backup vg0
mkfs.btrfs -LBACKUP /dev/vg0/backup
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=BACKUP /backup btrfs defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
# LVM2 déjà OK sur machines OVH
#apt install -y lvm2
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,241 @@
#!/bin/bash
# Script vérifié le 2020-04-03 par jlecour
# Le script suppose que :
# * il y a 2 disques en RAID soft
# * le serveur boot en EFI
# * on va reconstruire toute la table de partitionnement (GPT) du serveur
# * le volume "rootfs" actuel est /dev/md2
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé,
# grub et le kernel sont réinstallés.
# Avant de commencer, consulter les disques pour vérifier les noms
lsblk
################################################################################
#
# À partir de là, le script *peut* être copié/collé en un bloc
# Mais bien vérifier l'état au fur et à mesure
# utilisez "set -e" si vous copiez/collez des bouts de scripts et souhaitez
# un arrêt en cas d'erreur. Si vous le faites dans le shell de votre session SSH
# elle s'interrompra !
# set -e
export LC_ALL=C
swapoff -a
sleep 1
cd /mnt
mkdir root_in_ram rootfs home var usr srv
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md2 /mnt/rootfs/
sleep 1
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
sleep 1
umount /mnt/rootfs
sleep 1
# Stop arrays and destroys partitions
mdadm --stop /dev/md2
sleep 1
# Create a GPT label. (Removes all parts).
parted -s /dev/nvme0n1 mklabel gpt
sleep 1
# BOOT EFI *mandatory* 100 Mo
parted -a minimal -s /dev/nvme0n1 mkpart ESP fat32 0M 100M
sleep 1
parted -s /dev/nvme0n1 set 1 esp on
sleep 1
parted -s /dev/nvme0n1 set 1 boot on
sleep 1
mkfs.vfat -F32 /dev/nvme0n1p1 >/dev/null
sleep 1
fatlabel /dev/nvme0n1p1 EFI_SYSPART
sleep 1
# /boot
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 100M 600M
sleep 1
parted -s /dev/nvme0n1 set 2 boot on
sleep 1
parted -s /dev/nvme0n1 set 2 raid on
sleep 1
# /
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 600M 1100M
sleep 1
parted -s /dev/nvme0n1 set 3 raid on
sleep 1
# /usr
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 1100M 7100M
sleep 1
parted -s /dev/nvme0n1 set 4 raid on
sleep 1
# swap
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7100M 7600M
sleep 1
# LVM
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7600M 100%
sleep 1
parted -s /dev/nvme0n1 set 6 raid on
sleep 1
# Copy partitions to second disk
sgdisk -R=/dev/nvme1n1 /dev/nvme0n1
sleep 1
sgdisk -G /dev/nvme1n1
sleep 1
partprobe /dev/nvme0n1
sleep 1
partprobe /dev/nvme1n1
sleep 1
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {2,3,4,6}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{nvme0n1p,nvme1n1p}${part}
done
sleep 1
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
sleep 1
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
sleep 1
mkfs.ext4 -LUSR /dev/md4 >/dev/null
sleep 1
mkswap -f -LSWAP1 /dev/nvme0n1p5
sleep 1
mkswap -f -LSWAP2 /dev/nvme1n1p5
sleep 1
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
sleep 1
vgcreate vg0 /dev/md6
sleep 1
lvcreate --size 1G --name tmp vg0
sleep 1
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
sleep 1
lvcreate --size 5G --name var vg0
sleep 1
mkfs.ext4 -LVAR /dev/mapper/vg0-var >/dev/null
sleep 1
lvcreate -l 98%FREE --name home vg0
sleep 1
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
sleep 1
# Copy data from RAM.
mount -LROOTFS rootfs
mkdir -p rootfs/home && mount -LHOME rootfs/home
mkdir -p rootfs/var && mount -LVAR rootfs/var
mkdir -p rootfs/usr && mount -LUSR rootfs/usr
sleep 1
rsync -a root_in_ram/home/ rootfs/home/
rsync -a root_in_ram/var/ rootfs/var/
rsync -a root_in_ram/usr/ rootfs/usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
sleep 1
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 2
LABEL=SWAP2 none swap sw 0 2
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
sleep 1
chroot /mnt/rootfs/ bash
sleep 1
export LC_ALL=C
mkdir -p /boot && mount /boot
mkdir -p /boot/efi && mount /dev/nvme0n1p1 /boot/efi
mount /tmp
chmod 1777 /tmp
sleep 1
# apt install -y debconf-utils apt-utils
# sleep 1
# cat <<EOT>/tmp/grub-selections
# grub-efi-amd64 grub2/force_efi_extra_removable boolean true
# grub-efi-amd64 grub2/linux_cmdline_default string quiet
# grub-efi-amd64 grub2/update_nvram boolean true
# grub-efi-amd64 grub2/linux_cmdline string
# grub-pc grub-pc/postrm_purge_boot_grub boolean true
# EOT
# sleep 1
# debconf-set-selections /tmp/grub-selections
# sleep 1
# dpkg-reconfigure --frontend=noninteractive grub-pc
# sleep 1
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
rm -rf /etc/default/grub.d
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
sleep 1
# purge des kernels
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
sleep 1
# réinstallation des paquets
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
sleep 1
apt purge -y os-prober
# En cas d'erreur à l'install/config de Grub, il faut vérifier si le RAID est OK
# cat/proc/mdstat
grub-install /dev/nvme0n1
sleep 1
grub-install /dev/nvme1n1
sleep 1
apt purge -y os-prober
# Questions "update-grub":
# * Linux command line:
# * Linux default command line: quiet
# * Force extra installation to the EFI removable media path? Yes
# * Update NVRAM variables to automatically boot into Debian? Yes
update-grub
# dpkg-reconfigure --frontend=noninteractive grub-efi-amd64
dpkg-reconfigure grub-efi-amd64
sleep 1
# paquets utiles pour evolixisation par Ansible
apt install -y sudo python python-apt
sleep 1
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,123 @@
#!/bin/bash
set -o errexit
set -o pipefail
set -o nounset
set -x
# Le script suppose que / est sur /boot est sur /dev/md2, / est sur
# /dev/md3 et que /home est sur /dev/md4
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel
# sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir -p root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md3 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
mdadm --stop /dev/md4
mdadm --stop /dev/md3
tune2fs -LBOOT /dev/md2 && tune2fs -LBOOT /dev/md2
# Check if label is BOOT
wipefs /dev/md2
mdadm --stop /dev/md2
parted -s /dev/sda rm 5
parted -s /dev/sda rm 4
parted -s /dev/sda rm 3
# /
parted -a optimal -s /dev/sda mkpart primary ext4 1073M 2073M
sleep 2
parted -s /dev/sda set 3 raid on
# /var
parted -a minimal -s /dev/sda mkpart primary ext4 2073M 12073M
sleep 2
parted -s /dev/sda set 4 raid on
# /usr
parted -a minimal -s /dev/sda mkpart primary ext4 12073M 17073M
sleep 2
parted -s /dev/sda set 5 raid on
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 17073M 100%
parted -s /dev/sda set 6 raid on
sleep 2
partprobe /dev/sda
for disk in {b,c,d,e,f}; do
sgdisk -R=/dev/sd${disk} /dev/sda
sgdisk -G /dev/sd${disk}
partprobe /dev/sd${disk}
done
mdadm --assemble /dev/md2 /dev/{sda,sdb,sdc,sdd,sde,sdf}2
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {3,4,5}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=6 /dev/{sda,sdb,sdc,sdd,sde,sdf}${part}
done
# No need for LVM part to have metadata 0.90.
mdadm --create /dev/md/b6 --level=5 --raid-devices=3 /dev/sd{a,b,c}6
mdadm --create /dev/md/c6 --level=5 --raid-devices=3 /dev/sd{d,e,f}6
mdadm --create /dev/md/a6 --level=0 --raid-devices=2 /dev/md/b6 /dev/md/c6
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
mkfs.ext4 -LVAR /dev/md4 >/dev/null
mkfs.ext4 -LUSR /dev/md5 >/dev/null
# Add LVM with a VG for all of the free space.
pvcreate /dev/md125
vgcreate vg0 /dev/md125
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
lvcreate --size 512M --name swap1 vg0
lvcreate --size 512M --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --size 10G --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
lvcreate --extents 95%FREE --name backup vg0
mkfs.btrfs -LBACKUP /dev/vg0/backup
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
#LABEL=BACKUP /backup btrfs defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
# Chroot and install lvm2 + reconfigure grub-pc
echo "Evolix partitioning done... Follow instrutions in projet6140(8) then reboot!"

View File

@ -0,0 +1,253 @@
#!/bin/bash
# Script vérifié le 2020-03-19 par jlecour
# Le script suppose que :
# * il y a 3 disques en RAID soft
# * le serveur boot en EFI
# * on va reconstruire toute la table de partitionnement (GPT) du serveur
# * le volume "rootfs" actuel est /dev/md2
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé,
# grub et le kernel sont réinstallés.
# Avant de commencer, consulter les disques pour vérifier les noms
lsblk
################################################################################
#
# À partir de là, le script *peut* être copié/collé en un bloc
# Mais bien vérifier l'état au fur et à mesure
set -e
export LC_ALL=C
swapoff -a
sleep 1
cd /mnt
mkdir root_in_ram rootfs home var usr srv
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md2 /mnt/rootfs/
sleep 1
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
sleep 1
umount /mnt/rootfs
sleep 1
# Stop arrays and destroys partitions
mdadm --stop /dev/md2
sleep 1
# Create a GPT label. (Removes all parts).
parted -s /dev/nvme0n1 mklabel gpt
sleep 1
# BOOT EFI *mandatory* 100 Mo
parted -a minimal -s /dev/nvme0n1 mkpart ESP fat32 0M 100M
sleep 1
parted -s /dev/nvme0n1 set 1 esp on
sleep 1
parted -s /dev/nvme0n1 set 1 boot on
sleep 1
mkfs.vfat -F32 /dev/nvme0n1p1 >/dev/null
sleep 1
fatlabel /dev/nvme0n1p1 EFI_SYSPART
sleep 1
# /boot
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 100M 600M
sleep 1
parted -s /dev/nvme0n1 set 2 boot on
sleep 1
parted -s /dev/nvme0n1 set 2 raid on
sleep 1
# /
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 600M 1100M
sleep 1
parted -s /dev/nvme0n1 set 3 raid on
sleep 1
# /usr
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 1100M 7100M
sleep 1
parted -s /dev/nvme0n1 set 4 raid on
sleep 1
# swap
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7100M 7600M
sleep 1
# LVM
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7600M 100%
sleep 1
parted -s /dev/nvme0n1 set 6 raid on
sleep 1
# Copy partitions to secund disk
sgdisk -R=/dev/nvme1n1 /dev/nvme0n1
sleep 1
sgdisk -G /dev/nvme1n1
sleep 1
partprobe /dev/nvme0n1
sleep 1
partprobe /dev/nvme1n1
sleep 1
# Copy partitions to third disk
sgdisk -R=/dev/nvme2n1 /dev/nvme0n1
sleep 1
sgdisk -G /dev/nvme2n1
sleep 1
partprobe /dev/nvme0n1
sleep 1
partprobe /dev/nvme2n1
sleep 1
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {2,3,4,6}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid5 --raid-devices=3 /dev/{nvme0n1p,nvme1n1p,nvme2n1p}${part}
done
sleep 1
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
sleep 1
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
sleep 1
mkfs.ext4 -LUSR /dev/md4 >/dev/null
sleep 1
mkswap -f -LSWAP1 /dev/nvme0n1p5
sleep 1
mkswap -f -LSWAP2 /dev/nvme1n1p5
sleep 1
mkswap -f -LSWAP3 /dev/nvme2n1p5
sleep 1
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
sleep 1
vgcreate vg0 /dev/md6
sleep 1
lvcreate --size 1G --name tmp vg0
sleep 1
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
sleep 1
lvcreate --size 5G --name var vg0
sleep 1
mkfs.ext4 -LVAR /dev/mapper/vg0-var >/dev/null
sleep 1
lvcreate -l 98%FREE --name home vg0
sleep 1
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
sleep 1
# Copy data from RAM.
mount -LROOTFS rootfs
mkdir -p rootfs/home && mount -LHOME rootfs/home
mkdir -p rootfs/var && mount -LVAR rootfs/var
mkdir -p rootfs/usr && mount -LUSR rootfs/usr
sleep 1
rsync -a root_in_ram/home/ rootfs/home/
rsync -a root_in_ram/var/ rootfs/var/
rsync -a root_in_ram/usr/ rootfs/usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
sleep 1
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 2
LABEL=SWAP2 none swap sw 0 2
LABEL=SWAP3 none swap sw 0 2
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
sleep 1
chroot /mnt/rootfs/ bash
sleep 1
export LC_ALL=C
mkdir -p /boot && mount /boot
mkdir -p /boot/efi && mount /dev/nvme0n1p1 /boot/efi
mount /tmp
chmod 1777 /tmp
sleep 1
# apt install -y debconf-utils apt-utils
# sleep 1
# cat <<EOT>/tmp/grub-selections
# grub-efi-amd64 grub2/force_efi_extra_removable boolean true
# grub-efi-amd64 grub2/linux_cmdline_default string quiet
# grub-efi-amd64 grub2/update_nvram boolean true
# grub-efi-amd64 grub2/linux_cmdline string
# grub-pc grub-pc/postrm_purge_boot_grub boolean true
# EOT
# sleep 1
# debconf-set-selections /tmp/grub-selections
# sleep 1
# dpkg-reconfigure --frontend=noninteractive grub-pc
# sleep 1
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
rm -rf /etc/default/grub.d
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
sleep 1
# purge des kernels
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
sleep 1
# réinstallation des paquets
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
sleep 1
apt purge -y os-prober
# En cas d'erreur à l'install/config de Grub, il faut vérifier si le RAID est OK
# cat/proc/mdstat
grub-install /dev/nvme0n1
sleep 1
grub-install /dev/nvme1n1
sleep 1
grub-install /dev/nvme2n1
sleep 1
# Questions "update-grub":
# * Linux command line:
# * Linux default command line: quiet
# * Force extra installation to the EFI removable media path? Yes
# * Update NVRAM variables to automatically boot into Debian? Yes
update-grub
# dpkg-reconfigure --frontend=noninteractive grub-efi-amd64
dpkg-reconfigure grub-efi-amd64
sleep 1
# paquets utiles pour evolixisation par Ansible
apt install -y sudo python python-apt
sleep 1
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,165 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/md3 /, /dev/md4 /home.
# / doit être sur /dev/md3. Sinon adapter le script !
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md3 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
mdadm --stop /dev/md4
mdadm --stop /dev/md3
tune2fs -LBOOT /dev/md2 && tune2fs -LBOOT /dev/md2
parted -s /dev/sda rm 5
parted -s /dev/sda rm 4
parted -s /dev/sda rm 3
# /
parted -a optimal -s /dev/sda mkpart primary ext4 1073M 2073M
sleep 2
parted -s /dev/sda set 3 raid on
# /var
parted -a minimal -s /dev/sda mkpart primary ext4 2073M 12073M
sleep 2
parted -s /dev/sda set 4 raid on
# /usr
parted -a minimal -s /dev/sda mkpart primary ext4 12073M 17073M
sleep 2
parted -s /dev/sda set 5 raid on
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 17073M 100%
parted -s /dev/sda set 6 raid on
sleep 2
parted -s /dev/sdb rm 5
parted -s /dev/sdb rm 4
parted -s /dev/sdb rm 3
# /
parted -a optimal -s /dev/sdb mkpart primary ext4 1073M 2073M
sleep 2
parted -s /dev/sdb set 3 raid on
# /var
parted -a minimal -s /dev/sdb mkpart primary ext4 2073M 12073M
sleep 2
parted -s /dev/sdb set 4 raid on
# /usr
parted -a minimal -s /dev/sdb mkpart primary ext4 12073M 17073M
sleep 2
parted -s /dev/sdb set 5 raid on
# LVM
parted -a minimal -s /dev/sdb mkpart primary ext4 17073M 100%
parted -s /dev/sdb set 6 raid on
sleep 2
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {3,4,5}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
done
# No need for LVM part to has metadata 0.90.
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{sda,sdb}6
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
mkfs.ext4 -LVAR /dev/md4 >/dev/null
mkfs.ext4 -LUSR /dev/md5 >/dev/null
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
vgcreate vg0 /dev/md6
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
lvcreate --size 512M --name swap1 vg0
lvcreate --size 512M --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --size 20G --name log vg0
mkfs.ext4 -LLOG /dev/mapper/vg0-log >/dev/null
lvcreate --extents 95%FREE --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mkdir var/log
mount -LLOG var/log
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var/log var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=LOG /var/log ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /dev/sda1 /boot/efi
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64 dosfstools
update-grub2
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,128 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/md3 /, /dev/md4 /home.
# / doit être sur /dev/md3. Sinon adapter le script !
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr srv
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md3 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Stop arrays and destroys partitions
mdadm --stop /dev/md4 && wipefs -a /dev/nvme0n1p4 && wipefs -a /dev/nvme1n1p4
mdadm --stop /dev/md3 && wipefs -a /dev/nvme0n1p3 && wipefs -a /dev/nvme1n1p3
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
tune2fs -LBOOT /dev/md2 && sleep 5 && tune2fs -LBOOT /dev/md2
parted -s /dev/nvme0n1 rm 5
parted -s /dev/nvme0n1 rm 4
parted -s /dev/nvme0n1 rm 3
# /
parted -a optimal -s /dev/nvme0n1 mkpart primary ext4 1073M 2073M
sleep 2
parted -s /dev/nvme0n1 set 3 raid on
# /var
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 2073M 12073M
sleep 2
parted -s /dev/nvme0n1 set 4 raid on
# /usr
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 12073M 17073M
sleep 2
parted -s /dev/nvme0n1 set 5 raid on
# LVM
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 17073M 100%
parted -s /dev/nvme0n1 set 6 raid on
sleep 2
#Copy parts to sdb
sgdisk -R=/dev/nvme1n1 /dev/nvme0n1
sgdisk -G /dev/nvme1n1
partprobe /dev/nvme0n1
partprobe /dev/nvme1n1
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {3,4,5}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{nvme0n1p,nvme1n1p}${part}
done
# No need for LVM part to has metadata 0.90.
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{nvme0n1p,nvme1n1p}6
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
mkfs.ext4 -LVAR /dev/md4 >/dev/null
mkfs.ext4 -LUSR /dev/md5 >/dev/null
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
vgcreate vg0 /dev/md6
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
lvcreate --size 512M --name swap1 vg0
lvcreate --size 512M --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --size 20G --name srv vg0
mkfs.ext4 -LSRV /dev/mapper/vg0-srv >/dev/null
lvcreate --size 100G --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SRV /srv ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /dev/nvme0n1p1 /boot/efi
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# LVM2 déjà OK sur machines OVH
#apt install -y lvm2
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
apt install -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64 dosfstools
update-grub2
test -f /boot/grub/grub.cfg || echo "Uh? update-grub2 did not create grub.cfg... You need to check the issue!"
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

102
Online_Hard_RAID_KVMServer.sh Executable file
View File

@ -0,0 +1,102 @@
#!/bin/bash
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
# /boot sda1 2OOM, / sda2, swap 1G sda3.
# / doit être sur sda2. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
# Dirty hack for rescue Ubuntu 16.04
touch /boot/vmlinuz-pouet
touch /boot/initrd.img-pouet
apt install lvm2
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/sda2 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
parted -s /dev/sda set 1 bios_grub on
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
parted -s /dev/sda set 2 boot on
mkfs.ext4 -LBOOT /dev/sda2 1>/dev/null
# /
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
mkfs.ext4 -LROOTFS /dev/sda3 1>/dev/null
# /var
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
mkfs.ext4 -LVAR /dev/sda4 1>/dev/null
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
mkfs.ext4 -LUSR /dev/sda5 1>/dev/null
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
parted -s /dev/sda set 6 lvm on
# Add LVM with a VG for all of the free space.
pvcreate /dev/sda6
vgcreate vg0 /dev/sda6
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp 1>/dev/null
lvcreate --size 10G --name swap1 vg0
lvcreate --size 10G --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --size 20G --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home 1>/dev/null
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
apt install -y lvm2
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,158 @@
#!/bin/bash
# Ce script est une adaptation par jlecour du script de bserie
# Voici les adaptations :
# - /boot fait 500M
# - pas de LVM
# - on n'installe que le paquet virtuel linux-image-amd64 (pas le paquet réel)
echo "ce script ne doit pas être joué automatiquement"
echo "les commandes sont à jouer manuellement, par copier/coller"
exit 1
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
# /boot sda1 2OOM, / sda2 2G, swap 1G sda3.
# / doit être sur sda2. Sinon adapter le script !
# Enfin un fstab est généré, grub et le kernel sont réinstallés.
ROOT_PART=/dev/sda2
export LC_ALL=C
# Dirty hack for rescue Ubuntu 16.04
touch /boot/vmlinuz-pouet
touch /boot/initrd.img-pouet
# disable swap
swapoff -a
cd /mnt
# mount /
mkdir root_in_ram rootfs home var usr log
mount $ROOT_PART /mnt/rootfs/
# copy all the filesystem in ram
mount -t tmpfs none /mnt/root_in_ram -o size=90%
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
# unount rootfs to recreate partitions
umount /mnt/rootfs
# NOTE: sleep 1 second between each command
# to be able to copy/paste the whole bloc
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
sleep 1
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
sleep 1
parted -s /dev/sda set 1 bios_grub on
sleep 1
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 500M
sleep 1
parted -s /dev/sda set 2 boot on
sleep 1
mkfs.ext4 -LBOOT /dev/sda2 1>/dev/null
sleep 1
# /
parted -a minimal -s /dev/sda mkpart primary ext4 500M 1500M
sleep 1
mkfs.ext4 -LROOTFS /dev/sda3 1>/dev/null
sleep 1
# /var
parted -a minimal -s /dev/sda mkpart primary ext4 1500M 11500M
sleep 1
mkfs.ext4 -LVAR /dev/sda4 1>/dev/null
sleep 1
# /usr
parted -a minimal -s /dev/sda mkpart primary ext4 11500M 16500M
sleep 1
mkfs.ext4 -LUSR /dev/sda5 1>/dev/null
sleep 1
# /tmp
parted -a minimal -s /dev/sda mkpart primary ext4 16500M 17500M
sleep 1
mkfs.ext4 -LTMP /dev/sda6 1>/dev/null
sleep 1
# swap1
parted -a minimal -s /dev/sda mkpart primary linux-swap 17500M 18000M
sleep 1
mkswap -f -LSWAP1 /dev/sda7 1>/dev/null
sleep 1
# swap2
parted -a minimal -s /dev/sda mkpart primary linux-swap 18000M 18500M
sleep 1
mkswap -f -LSWAP2 /dev/sda8 1>/dev/null
sleep 1
# /home
parted -a minimal -s /dev/sda mkpart primary ext4 18500M 100%
sleep 1
mkfs.ext4 -LHOME /dev/sda9 1>/dev/null
sleep 1
# mount partitions
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
# Copy data from RAM.
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT > rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
apt install -y sudo python python-apt
# ajouter l'utilisateur dans le groupe sudo
# ça facilite le passage d'Ansible (sans root)
usermod -a -G sudo jlecour
# change root password
passwd
# permit root login via SSH with password
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,126 @@
#!/bin/bash
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
# /dev/md126 / 20G, /dev/md125 /data
# / doit être sur /dev/md126. Sinon adapter le script !
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
export LC_ALL=C
swapoff -a
cd /mnt
mkdir root_in_ram rootfs home var usr log
mount -t tmpfs none /mnt/root_in_ram -o size=90%
mount /dev/md126 /mnt/rootfs/
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
umount /mnt/rootfs
mdadm --stop /dev/md{125..127}
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
parted -s /dev/sda set 1 bios_grub on
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
parted -s /dev/sda set 2 boot on
parted -s /dev/sda set 2 raid on
# /
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
parted -s /dev/sda set 3 raid on
# /var
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
parted -s /dev/sda set 4 raid on
# /usr
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
parted -s /dev/sda set 5 raid on
# LVM
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
parted -s /dev/sda set 6 raid on
#Copy parts to sdb
sgdisk -R=/dev/sdb /dev/sda
sgdisk -G /dev/sdb
partprobe /dev/sda
partprobe /dev/sdb
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {2,3,4,5}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
done
# No need for LVM part to has metadata 0.90.
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{sda,sdb}6
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
mkfs.ext4 -LVAR /dev/md4 >/dev/null
mkfs.ext4 -LUSR /dev/md5 >/dev/null
# Add LVM with a VG for all of the free space.
pvcreate /dev/md6
vgcreate vg0 /dev/md6
lvcreate --size 1G --name tmp vg0
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
lvcreate --size 512M --name swap1 vg0
lvcreate --size 512M --name swap2 vg0
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
lvcreate --size 10G --name home vg0
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
lvcreate --extents 95%FREE --name backup_crypted vg0
cryptsetup luksFormat /dev/vg0/backup_crypted
cryptsetup open --type luks /dev/vg0/backup_crypted backup
mkfs.btrfs -LBACKUP /dev/mapper/backup
# Copy data from RAM.
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT>rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
# Need to open the LUKS container!
# Evolix password
# cryptsetup open --type luks /dev/vg0/backup_crypted backup
#/dev/mapper/backup /backup btrfs defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot and install lvm2 + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-4.9.0-3-amd64 linux-image-amd64 cryptsetup lvm2
passwd
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,199 @@
#!/bin/bash
echo "ce script ne doit pas être joué automatiquement"
echo "les commandes sont à jouer manuellement, par copier/coller"
exit 1
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
# UEFI p1 fait 6OOM, /boot p2 fait 600M, SWAP p3, / p4.
# / doit être sur md127. Sinon adapter le script !
# Enfin un fstab est généré, grub et le kernel sont réinstallés.
ROOT_PART=/dev/md127
export LC_ALL=C
# disable swap
swapoff -a
cd /mnt
# mount /
mkdir root_in_ram rootfs home var usr log
mount $ROOT_PART /mnt/rootfs/
# copy all the filesystem in ram
mount -t tmpfs none /mnt/root_in_ram -o size=90%
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
# unount rootfs to recreate partitions
umount /mnt/rootfs
# stop soft raid
mdadm --stop /dev/md{125..127}
# Wipe all signatures
for i in /dev/nvme?n?p?; do wipefs -a $i; done
# NOTE: sleep 1 second between each command
# to be able to copy/paste the whole bloc
# Create a GPT label. (Removes all parts).
parted -s /dev/nvme0n1 mklabel gpt
sleep 1
# boot,esp GPT/UEFI *mandatory*
parted -a minimal -s /dev/nvme0n1 mkpart primary 0M 600M
sleep 1
parted -s /dev/nvme0n1 set 1 boot on
parted -s /dev/nvme0n1 set 1 esp on
sleep 1
# /boot
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 600M 1200M
sleep 1
parted -s /dev/nvme0n1 set 2 raid on
sleep 1
# /
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 1200M 2200M
sleep 1
parted -s /dev/nvme0n1 set 3 raid on
sleep 1
# /var
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 2200M 12200M
sleep 1
parted -s /dev/nvme0n1 set 4 raid on
sleep 1
# /usr
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 12200M 17200M
sleep 1
parted -s /dev/nvme0n1 set 5 raid on
sleep 1
# /tmp
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 17200M 18200M
sleep 1
parted -s /dev/nvme0n1 set 6 raid on
sleep 1
# swap1
parted -a minimal -s /dev/nvme0n1 mkpart primary linux-swap 18200M 19200M
sleep 1
# /home
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 19200M 100%
sleep 1
parted -s /dev/nvme0n1 set 8 raid on
sleep 1
#Copy parts to nvme1n1
for i in /dev/nvme[123]n1; do
sgdisk -R=${i} /dev/nvme0n1
sgdisk -G $i
partprobe $i
done
# RAID1 for systems.
for part in {2,3,4,5,6}; do
mdadm --create /dev/md${part} --metadata=1.2 --level=raid1 --raid-devices=4 \
/dev/{nvme0n1p${part},nvme1n1p${part},nvme2n1p${part},nvme3n1p${part}}
done
# RAID5 for data.
mdadm --create /dev/md8 --metadata=1.2 --level=raid5 --raid-devices=4 \
/dev/{nvme0n1p8,nvme1n1p8,nvme2n1p8,nvme3n1p8}
# Make filesystems
l=1
for i in /dev/nvme?n1p[7]; do
mkswap -f -LSWAP${l} $i 1>/dev/null
l=$((l+1))
done
apt install dosfstools
for i in /dev/nvme?n1p[1]; do
mkfs.vfat $i 1>/dev/null
done
mkfs.ext4 -LBOOT /dev/md2 1>/dev/null
mkfs.ext4 -LROOTFS /dev/md3 1>/dev/null
mkfs.ext4 -LVAR /dev/md4 1>/dev/null
mkfs.ext4 -LUSR /dev/md5 1>/dev/null
mkfs.ext4 -LTMP /dev/md6 1>/dev/null
mkfs.ext4 -LHOME /dev/md9 1>/dev/null
# mount partitions
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
# Copy data from RAM.
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT > rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
/dev/nvme0n1p1 /boot/efi vfat defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
LABEL=SWAP3 none swap sw 0 0
LABEL=SWAP4 none swap sw 0 0
LABEL=SWAP5 none swap sw 0 0
LABEL=SWAP6 none swap sw 0 0
LABEL=SWAP7 none swap sw 0 0
LABEL=SWAP8 none swap sw 0 0
EOT
# Chroot + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /boot/efi
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
# generate RAID configuration
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
apt purge -y grub-common grub-efi-amd64 grub-efi-amd64-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# réinstallation des paquets
# Note: bien installer Grub sur les 4 disques nvme[0123]n1
apt install -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
grub-install /dev/nvme0n1
update-grub
dpkg-reconfigure grub-efi-amd64
# paquets utiles pour evolixisation par Ansible
apt install -y sudo python python-apt
# ajouter l'utilisateur dans le groupe sudo
# ça facilite le passage d'Ansible (sans root)
usermod -a -G sudo jlecour
passwd jlecour
# change root password
passwd
# permit root login via SSH with password
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,194 @@
#!/bin/bash
# Ce script est une adaptation par jlecour du script de bserie
# Voici les adaptations :
# - /boot fait 500M
# - pas de LVM
# - on n'installe que le paquet virtuel linux-image-amd64 (pas le paquet réel)
echo "ce script ne doit pas être joué automatiquement"
echo "les commandes sont à jouer manuellement, par copier/coller"
exit 1
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
# /boot sda1 2OOM, / sda2 2G, swap 1G sda3.
# / doit être sur sda2. Sinon adapter le script !
# Enfin un fstab est généré, grub et le kernel sont réinstallés.
ROOT_PART=/dev/md127
export LC_ALL=C
# Dirty hack for rescue Ubuntu 16.04
touch /boot/vmlinuz-pouet
touch /boot/initrd.img-pouet
# disable swap
swapoff -a
cd /mnt
# mount /
mkdir root_in_ram rootfs home var usr log
mount $ROOT_PART /mnt/rootfs/
# copy all the filesystem in ram
mount -t tmpfs none /mnt/root_in_ram -o size=90%
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
# unount rootfs to recreate partitions
umount /mnt/rootfs
# stop soft raid
mdadm --stop /dev/md{125..127}
# NOTE : you need wipe all partition to be linked
# with /dev/md12*
# example : wipefs -a /dev/sda1
# NOTE: sleep 1 second between each command
# to be able to copy/paste the whole bloc
# Create a GPT label. (Removes all parts).
parted -s /dev/sda mklabel gpt
sleep 1
# bios_grub GPT *mandatory*
parted -a minimal -s /dev/sda mkpart primary 0M 1M
sleep 1
parted -s /dev/sda set 1 bios_grub on
sleep 1
# /boot
parted -a minimal -s /dev/sda mkpart primary ext4 1M 500M
sleep 1
parted -s /dev/sda set 2 boot on
parted -s /dev/sda set 2 raid on
sleep 1
# /
parted -a minimal -s /dev/sda mkpart primary ext4 500M 1500M
sleep 1
parted -s /dev/sda set 3 raid on
sleep 1
# /var
parted -a minimal -s /dev/sda mkpart primary ext4 1500M 11500M
sleep 1
parted -s /dev/sda set 4 raid on
sleep 1
# /usr
parted -a minimal -s /dev/sda mkpart primary ext4 11500M 16500M
sleep 1
parted -s /dev/sda set 5 raid on
sleep 1
# /tmp
parted -a minimal -s /dev/sda mkpart primary ext4 16500M 17500M
sleep 1
parted -s /dev/sda set 6 raid on
sleep 1
# swap1
parted -a minimal -s /dev/sda mkpart primary linux-swap 17500M 18000M
sleep 1
parted -s /dev/sda set 7 raid on
sleep 1
# swap2
parted -a minimal -s /dev/sda mkpart primary linux-swap 18000M 18500M
sleep 1
parted -s /dev/sda set 8 raid on
sleep 1
# /home
parted -a minimal -s /dev/sda mkpart primary ext4 18500M 100%
sleep 1
parted -s /dev/sda set 9 raid on
sleep 1
#Copy parts to sdb
sgdisk -R=/dev/sdb /dev/sda
sgdisk -G /dev/sdb
partprobe /dev/sda
partprobe /dev/sdb
# RAID1 for systems.
# Metadata 0.90 as some OVH kernel need it to boot.
for part in {2,3,4,5,6,7,8,9}; do
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
done
# Make filesystems
mkfs.ext4 -LBOOT /dev/md2 1>/dev/null
mkfs.ext4 -LROOTFS /dev/md3 1>/dev/null
mkfs.ext4 -LVAR /dev/md4 1>/dev/null
mkfs.ext4 -LUSR /dev/md5 1>/dev/null
mkfs.ext4 -LTMP /dev/md6 1>/dev/null
mkswap -f -LSWAP1 /dev/md7 1>/dev/null
mkswap -f -LSWAP2 /dev/md8 1>/dev/null
mkfs.ext4 -LHOME /dev/md9 1>/dev/null
# mount partitions
mount -LROOTFS rootfs
mount -LHOME home
mount -LVAR var
mount -LUSR usr
# Copy data from RAM.
rsync -a root_in_ram/home/ home/
rsync -a root_in_ram/var/ var/
rsync -a root_in_ram/usr/ usr/
rsync -a \
--exclude="home/**" \
--exclude="var/**" \
--exclude="usr/**" \
root_in_ram/ rootfs/
umount home var usr
# Generate fstab.
cat <<EOT > rootfs/etc/fstab
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
LABEL=BOOT /boot ext4 defaults 0 2
LABEL=HOME /home ext4 defaults 0 2
LABEL=TMP /tmp ext4 defaults 0 2
LABEL=USR /usr ext4 defaults 0 2
LABEL=VAR /var ext4 defaults 0 2
LABEL=SWAP1 none swap sw 0 0
LABEL=SWAP2 none swap sw 0 0
EOT
# Chroot + reconfigure grub-pc
mount -t proc none /mnt/rootfs/proc
mount -o bind /dev /mnt/rootfs/dev
mount -o bind /dev/pts /mnt/rootfs/dev/pts
mount -t sysfs sys /mnt/rootfs/sys
rm -rf /mnt/rootfs/boot/*
chroot /mnt/rootfs/ bash
export LC_ALL=C
mount /boot
mount /usr
mount /var
mount /tmp
chmod 1777 /tmp
# generate RAID configuration
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
# réinstallation des paquets
# Note: bien installer Grub sur les 2 disques sda et sdb
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
# paquets utiles pour evolixisation par Ansible
apt install -y sudo python python-apt
# ajouter l'utilisateur dans le groupe sudo
# ça facilite le passage d'Ansible (sans root)
usermod -a -G sudo jlecour
passwd jlecour
# change root password
passwd
# permit root login via SSH with password
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
exit
echo "Evolix partitioning done... You can now reboot!"

View File

@ -0,0 +1,41 @@
# Rescue Install
A collection of scripts to remodel partitions on a freshly installed server (Online/Scaleway or OVH/SoYouStart).
It includes many variants of boot types (BIOS or EFI) and RAID types (hard or soft).
Those scripts and their main structure come from an original implementation by [Benoit Serie](https://gitea.evolix.org/bserie).
## Usage
You should first determine if the server is installed by Online/Scaleway or OVH/SoYouStart.
Then if it has soft RAID or hardware RAID capabilities.
And finaly if th eboot is BIOS or EFI.
Boot your server in rescue mode.
The scripts are not exactly meant to be executed from top to bottom in one go.
They are not smart and the slighest change can break you server.
You should copy/past sections of the script and carefully look for errors in commands output.
Some scripts tend to reuse some partitions (/boot and /boot/efi) but the more recent ones tend to rebuild everything.
The scripts for soft RAID are easily adapted to various RAID configurations.
The scripts for hard RAID are independent of the RAID configuration. The OS doesn't see the physical disks.
## FAQ
### Why sleep after nearly every command?
Some commands are really fast but the kernel needs a moment to commit the changes.
By adding a second of sleep time between commands, we make sure that noone steps on anyone's toe.
### Why remove os-prober?
It messes with the Grub configuration.
### Why does parted give errors about alignment?
No idea! Please investigate and come back with improvments ;)