Exit on failed parted commands
This commit is contained in:
parent
3ec797f4c8
commit
89dbeeb59d
|
@ -54,12 +54,12 @@ if [ "${manage_part}" -eq 0 ]; then
|
|||
|
||||
## Recreate partition (/boot and LV) {{{
|
||||
### Partition type
|
||||
parted "${hdd}" mklabel msdos
|
||||
parted "${hdd}" mklabel msdos || exit 1
|
||||
### /boot
|
||||
parted "${hdd}" mkpart primary 0% 512MB
|
||||
parted "${hdd}" mkpart primary 0% 512MB || exit 1
|
||||
parted "${hdd}" set 1 boot on
|
||||
### LV
|
||||
parted "${hdd}" mkpart primary 512MB 100%
|
||||
parted "${hdd}" mkpart primary 512MB 100% || exit 1
|
||||
parted "${hdd}" set 2 lvm on
|
||||
sudo pvcreate "${hdd}"2
|
||||
sudo vgcreate "${vgname}" "${hdd}"2
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Vars
|
||||
## Define the hard drive to use
|
||||
if [ -b '/dev/sda' ]; then
|
||||
hdd="/dev/sda"
|
||||
else
|
||||
printf '%b\n' "Please check the hard drive to use"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
## If empty, the script will try to get one with nslookup
|
||||
new_hostname=""
|
||||
## Volume Group name to use for LVM
|
||||
vgname="${new_hostname}vg"
|
||||
## If the script should create extra volume (eg. backup, virt, Proxmox,…)
|
||||
manage_extra_lv=0
|
||||
## Colors definition {{{
|
||||
BLACK='\033[49;30m'
|
||||
BLACKB='\033[49;90m'
|
||||
RED='\033[0;31m'
|
||||
REDB='\033[1;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[0;33m'
|
||||
BLUE='\033[94;49m'
|
||||
MAGENTA='\033[0;35m'
|
||||
CYAN='\033[36;49m'
|
||||
WHITE='\033[0;37m'
|
||||
BOLD='\033[1m'
|
||||
RESET='\033[0m'
|
||||
## }}}
|
||||
|
||||
## Mount the system {{{
|
||||
### Root
|
||||
mkdir -p -- /target
|
||||
mountpoint -q /target || mount -- /dev/mapper/"${vgname}"-root /target
|
||||
|
||||
### boot - grub
|
||||
mountpoint -q /target/boot || mount -- ${hdd}1 /target/boot
|
||||
|
||||
#### home LV
|
||||
mountpoint -q /target/home || mount -- /dev/mapper/"${vgname}"-home /target/home
|
||||
#### opt LV
|
||||
mountpoint -q /target/opt || mount -- /dev/mapper/"${vgname}"-opt /target/opt
|
||||
#### srv LV
|
||||
mountpoint -q /target/srv || mount -- /dev/mapper/"${vgname}"-srv /target/srv
|
||||
#### tmp LV
|
||||
mountpoint -q /target/tmp || mount -- /dev/mapper/"${vgname}"-tmp /target/tmp
|
||||
#### usr LV
|
||||
mountpoint -q /target/usr || mount -- /dev/mapper/"${vgname}"-usr /target/usr
|
||||
#### var LV
|
||||
mountpoint -q /target/var || mount -- /dev/mapper/"${vgname}"-var /target/var
|
||||
|
||||
if [ "${manage_extra_lv}" -eq 0 ]; then
|
||||
### Extra bkp LV
|
||||
mountpoint -q /target/srv/backup || mount -- /dev/mapper/"${vgname}"-bkp /target/srv/backup
|
||||
### Extra vz LV
|
||||
mountpoint -q /target/var/lib/vz || mount -- /dev/mapper/"${vgname}"-vz /target/var/lib/vz
|
||||
fi
|
||||
|
||||
### Swap
|
||||
swapon -- /dev/mapper/"${vgname}"-swap
|
||||
## }}}
|
||||
## Ensure to (re)mount devices for chroot {{{
|
||||
mkdir -p -- /target/dev
|
||||
mountpoint -q /target/dev || mount -t devtmpfs -- none /target/dev
|
||||
mkdir -p -- /target/dev/pts
|
||||
mountpoint -q /target/dev/pts || mount -t devpts -- /dev/pts /target/dev/pts
|
||||
mkdir -p -- /target/proc
|
||||
mountpoint -q /target/proc || mount -t proc -- none /target/proc
|
||||
mkdir -p -- /target/sys
|
||||
mountpoint -q /target/sys || mount -t sysfs -- none /target/sys
|
||||
### FIXME : /run/lvm needs to be manually set in debootstrap|chroot for Buster {{{
|
||||
### See :
|
||||
### https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918590
|
||||
### https://bbs.archlinux.org/viewtopic.php?pid=1820949#p1820949
|
||||
mkdir -p -- /target/run/lvm
|
||||
mountpoint -q /target/run/lvm || mount --bind -- /run/lvm /target/run/lvm
|
||||
mkdir -p -- /target/run/udev
|
||||
mountpoint -q /target/run/udev || mount --bind -- /run/udev /target/run/udev
|
||||
### }}}
|
||||
## }}}
|
||||
|
||||
## Network {{{
|
||||
### Get all informations from current network configuration in rescue mode
|
||||
net_device=$(ip r | grep "^default" | head -1 | cut -d" " -f5)
|
||||
#### TODO: Switch to ip a to get ip address
|
||||
net_address=$(ip r | grep -vE "(^default|metric)" | grep "${net_device}.*src" | head -1 | awk -F" " '{print $NF}')
|
||||
read -r net_mac_address </sys/class/net/"${net_device}"/address
|
||||
net_netmask=$(ipcalc "${net_address}" | awk '/Netmask:/{print $2;}')
|
||||
net_netmask_cidr=$(ipcalc "${net_address}" | awk '/Netmask:/{print $4;}')
|
||||
net_broadcast=$(ip a s dev "${net_device}" | awk '/inet.*brd/{print $4}')
|
||||
net_network=$(ip r | grep -vE "(^default|metric)" | grep "src ${net_address}" | head -1 | cut -d"/" -f1)
|
||||
net_gateway=$(ip r | grep "^default" | head -1 | cut -d" " -f3)
|
||||
|
||||
### Create a network unit for systemd-networkd
|
||||
printf '%b' "[Match]
|
||||
MACAddress=${net_mac_address}
|
||||
|
||||
[Network]
|
||||
Description=network interface with default route without dhcp
|
||||
DHCP=no
|
||||
Address=${net_address}/${net_netmask_cidr}
|
||||
Gateway=${net_gateway}
|
||||
IPv6AcceptRA=no
|
||||
DNS=80.67.169.12
|
||||
" > /tmp/50-default.network
|
||||
|
||||
## }}}
|
||||
|
||||
printf '%b\n' "${GREEN}The system is available on /target you can now try to chroot.${RESET}"
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue