Compare commits
8 Commits
0b033e852c
...
2139685f77
| Author | SHA1 | Date | |
|---|---|---|---|
|
2139685f77
|
|||
|
58231de76b
|
|||
|
16bec76758
|
|||
|
6f99804427
|
|||
|
31b2c3579c
|
|||
|
e35e7d6f59
|
|||
|
eb74132f81
|
|||
|
d80992da00
|
110
configure.sh
110
configure.sh
@@ -2,13 +2,13 @@
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
|
||||
baseDir="$(realpath "$(dirname "${0}")")"
|
||||
|
||||
|
||||
cat << EOF
|
||||
#######################################
|
||||
## ##
|
||||
## $(cat "${BASEDIR}/title") Script ##
|
||||
## $(cat "${baseDir}/title") Script ##
|
||||
## ##
|
||||
## Jean <jean@easthighnerd.net> ##
|
||||
## ##
|
||||
@@ -25,17 +25,17 @@ EOF
|
||||
|
||||
|
||||
printf \
|
||||
'ZOL_FEDORA_VER="2-6"\n' | \
|
||||
'zolFedoraVer="2-6"\n' | \
|
||||
tee \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'(NVMe) SSD or HDD?\n'
|
||||
select OPTION in 'SSD' 'HDD'
|
||||
select option in 'SSD' 'HDD'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
case "${option}" in
|
||||
'SSD'|'HDD')
|
||||
break
|
||||
;;
|
||||
@@ -47,10 +47,10 @@ do
|
||||
done
|
||||
|
||||
printf \
|
||||
"DISK_TYPE=\"${OPTION}\"\n" | \
|
||||
"diskType=\"${option}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
@@ -59,9 +59,9 @@ printf \
|
||||
|
||||
printf \
|
||||
'\nGet disk from:\n'
|
||||
select OPTION in '/dev/disk/by-id/' '/dev/'
|
||||
select option in '/dev/disk/by-id/' '/dev/'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
case "${option}" in
|
||||
'/dev/disk/by-id/'|'/dev/')
|
||||
break
|
||||
;;
|
||||
@@ -75,26 +75,26 @@ done
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
if [[ "${OPTION}" == '/dev/disk/by-id/' ]]; then
|
||||
DRIVES="$(ls -Ago /dev/disk/by-id/ | grep -v 'sr' | grep -v 'dm-' | grep -v 'nvme-eui.' | grep -v '\-part' | grep -v 'wwn-' | grep -v '_[1-9] -> ' | grep -v 'total' | sed 's|^.*\:[0-5][0-9] ||g; s| -> .*$||g' | tr -d '[:blank:]')"
|
||||
if [[ "${option}" == '/dev/disk/by-id/' ]]; then
|
||||
drives="$(ls -Ago /dev/disk/by-id/ | grep -v 'sr' | grep -v 'dm-' | grep -v 'nvme-eui.' | grep -v '\-part' | grep -v 'wwn-' | grep -v '_[1-9] -> ' | grep -v 'total' | sed 's|^.*\:[0-5][0-9] ||g; s| -> .*$||g' | tr -d '[:blank:]')"
|
||||
|
||||
printf \
|
||||
'\nSelect the disk you want to use:\n'
|
||||
|
||||
DRIVES=( ${DRIVES} )
|
||||
drives=( ${drives} )
|
||||
shopt -s extglob
|
||||
MENU="@(${DRIVES[0]}"
|
||||
menu="@(${drives[0]}"
|
||||
|
||||
for ((i=1;i<${#DRIVES[@]};i++)); do
|
||||
MENU+="|${DRIVES[$i]}"
|
||||
for ((i=1;i<${#drives[@]};i++)); do
|
||||
menu+="|${drives[$i]}"
|
||||
done
|
||||
|
||||
MENU+=")"
|
||||
menu+=")"
|
||||
|
||||
select DRIVE in "${DRIVES[@]}"
|
||||
select drive in "${drives[@]}"
|
||||
do
|
||||
case ${DRIVE} in
|
||||
${MENU})
|
||||
case ${drive} in
|
||||
${menu})
|
||||
break
|
||||
;;
|
||||
*)
|
||||
@@ -105,32 +105,32 @@ if [[ "${OPTION}" == '/dev/disk/by-id/' ]]; then
|
||||
done
|
||||
|
||||
printf \
|
||||
"DISK=\"/dev/disk/by-id/${DRIVE}\"\n" | \
|
||||
"disk=\"/dev/disk/by-id/${drive}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
elif [[ "${OPTION}" == '/dev/' ]]; then
|
||||
DRIVES="$(lsblk -do name | grep -v 'loop' | grep -v 'sr' | grep -v 'zram' | grep -v 'NAME' | tr -d '[:blank:]')"
|
||||
elif [[ "${option}" == '/dev/' ]]; then
|
||||
drives="$(lsblk -do name | grep -v 'loop' | grep -v 'sr' | grep -v 'zram' | grep -v 'NAME' | tr -d '[:blank:]')"
|
||||
|
||||
printf \
|
||||
'\nSelect the disk you want to use:\n'
|
||||
|
||||
DRIVES=( ${DRIVES} )
|
||||
drives=( ${drives} )
|
||||
shopt -s extglob
|
||||
MENU="@(${DRIVES[0]}"
|
||||
menu="@(${drives[0]}"
|
||||
|
||||
for ((i=1;i<${#DRIVES[@]};i++)); do
|
||||
MENU+="|${DRIVES[$i]}"
|
||||
for ((i=1;i<${#drives[@]};i++)); do
|
||||
menu+="|${drives[$i]}"
|
||||
done
|
||||
|
||||
MENU+=")"
|
||||
menu+=")"
|
||||
|
||||
select DRIVE in "${DRIVES[@]}"
|
||||
select drive in "${drives[@]}"
|
||||
do
|
||||
case ${DRIVE} in
|
||||
${MENU})
|
||||
case ${drive} in
|
||||
${menu})
|
||||
break
|
||||
;;
|
||||
*)
|
||||
@@ -141,10 +141,10 @@ elif [[ "${OPTION}" == '/dev/' ]]; then
|
||||
done
|
||||
|
||||
printf \
|
||||
"DISK=\"/dev/${DRIVE}\"\n" | \
|
||||
"disk=\"/dev/${drive}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
fi
|
||||
@@ -152,52 +152,52 @@ fi
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
HOSTNAME='-'
|
||||
hostname='-'
|
||||
|
||||
while [[ "${HOSTNAME}" == '-' ]] || [[ -z "${HOSTNAME}" ]] || [[ "${HOSTNAME}" = *' '* ]] || [[ "${HOSTNAME}" = *_* ]]; do
|
||||
while [[ "${hostname}" == '-' ]] || [[ -z "${hostname}" ]] || [[ "${hostname}" = *' '* ]] || [[ "${hostname}" = *_* ]]; do
|
||||
printf \
|
||||
'\nEnter a hostname for this machine (no spaces or underscores):\n'
|
||||
read \
|
||||
-r \
|
||||
HOSTNAME
|
||||
hostname
|
||||
|
||||
if [[ "${HOSTNAME}" = *' '* ]] || [[ "${HOSTNAME}" = *_* ]]; then
|
||||
if [[ "${hostname}" = *' '* ]] || [[ "${hostname}" = *_* ]]; then
|
||||
printf \
|
||||
'ERROR:\tNo spaces or underscores in the hostname!\n'
|
||||
fi
|
||||
done
|
||||
|
||||
printf \
|
||||
"HOSTNAME=\"${HOSTNAME}\"\n" | \
|
||||
"hostname=\"${hostname}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
USERNAME='-'
|
||||
username='-'
|
||||
|
||||
while [[ "${USERNAME}" == '-' ]] || [[ -z "${USERNAME}" ]] || [[ "${USERNAME}" = *' '* ]] || [[ "${USERNAME}" = *[A-Z]* ]]; do
|
||||
while [[ "${username}" == '-' ]] || [[ -z "${username}" ]] || [[ "${username}" = *' '* ]] || [[ "${username}" = *[A-Z]* ]]; do
|
||||
printf \
|
||||
'\nEnter a name for the new user account (lowercase, no spaces):\n'
|
||||
read \
|
||||
-r \
|
||||
USERNAME
|
||||
username
|
||||
|
||||
if [[ "${USERNAME}" = *' '* ]] || [[ "${USERNAME}" = *[A-Z]* ]]; then
|
||||
if [[ "${username}" = *' '* ]] || [[ "${username}" = *[A-Z]* ]]; then
|
||||
printf \
|
||||
'ERROR:\tNo spaces or uppercase letters in the username!\n'
|
||||
fi
|
||||
done
|
||||
|
||||
printf \
|
||||
"USERNAME=\"${USERNAME}\"\n" | \
|
||||
"username=\"${username}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
@@ -206,9 +206,9 @@ printf \
|
||||
|
||||
printf \
|
||||
'\nEnable SWAP?\n'
|
||||
select OPTION in 'yes' 'no'
|
||||
select option in 'yes' 'no'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
case "${option}" in
|
||||
'yes'|'no')
|
||||
break
|
||||
;;
|
||||
@@ -220,10 +220,10 @@ do
|
||||
done
|
||||
|
||||
printf \
|
||||
"ENABLE_SWAP=\"${OPTION}\"\n" | \
|
||||
"enableSwap=\"${option}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
@@ -232,9 +232,9 @@ printf \
|
||||
|
||||
printf \
|
||||
'\nEnable encryption?\n'
|
||||
select OPTION in 'yes' 'no'
|
||||
select option in 'yes' 'no'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
case "${option}" in
|
||||
'yes'|'no')
|
||||
break
|
||||
;;
|
||||
@@ -246,10 +246,10 @@ do
|
||||
done
|
||||
|
||||
printf \
|
||||
"ENCRYPTION=\"${OPTION}\"\n" | \
|
||||
"encryption=\"${option}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
"${baseDir}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
@@ -258,7 +258,7 @@ printf \
|
||||
|
||||
cat << EOF
|
||||
|
||||
Configuration stored in '${BASEDIR}/system.conf'
|
||||
Configuration stored in '${baseDir}/system.conf'
|
||||
|
||||
Press any key to return to the main menu
|
||||
EOF
|
||||
|
||||
20
debian.sh
20
debian.sh
@@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
|
||||
baseDir="$(realpath "$(dirname "${0}")")"
|
||||
|
||||
source \
|
||||
/etc/os-release
|
||||
source \
|
||||
"${BASEDIR}/system.conf"
|
||||
"${baseDir}/system.conf"
|
||||
|
||||
|
||||
if [[ "${1}" == '-1' ]]; then
|
||||
if [[ "${1}" == '--mmdebstrap' ]]; then
|
||||
packages=(\
|
||||
console-setup \
|
||||
cryptsetup \
|
||||
@@ -48,17 +48,17 @@ zstd\
|
||||
${include} \
|
||||
"${VERSION_CODENAME}" \
|
||||
/mnt
|
||||
elif [[ "${1}" == '-2' ]]; then
|
||||
NETWORK_INTERFACE=($(ip -br addr show | sed 's| .*$||g' | grep -v '^lo' | grep -v 'tailscale' | grep -v '^wg'))
|
||||
elif [[ "${1}" == '--network-interfaces' ]]; then
|
||||
networkInterface=($(ip -br addr show | sed 's| .*$||g' | grep -v '^lo' | grep -v 'tailscale' | grep -v '^wg'))
|
||||
shopt -s extglob
|
||||
|
||||
for ((i = 0; i < ${#NETWORK_INTERFACE[@]}; i++)); do
|
||||
cat << EOF | tee /mnt/etc/network/interfaces.d/${NETWORK_INTERFACE[$i]} &> /dev/null
|
||||
allow-hotplug ${NETWORK_INTERFACE[$i]}
|
||||
iface ${NETWORK_INTERFACE[$i]} inet dhcp
|
||||
for ((i = 0; i < ${#networkInterface[@]}; i++)); do
|
||||
cat << EOF | tee /mnt/etc/network/interfaces.d/${networkInterface[$i]} &> /dev/null
|
||||
allow-hotplug ${networkInterface[$i]}
|
||||
iface ${networkInterface[$i]} inet dhcp
|
||||
EOF
|
||||
done
|
||||
elif [[ "${1}" == '-3' ]]; then
|
||||
elif [[ "${1}" == '--sources' ]]; then
|
||||
cat << EOF | tee /mnt/etc/apt/sources.list.d/${VERSION_CODENAME}.sources &> /dev/null
|
||||
# ${VERSION_CODENAME^}
|
||||
Enabled: yes
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
|
||||
baseDir="$(realpath "$(dirname "${0}")")"
|
||||
|
||||
source \
|
||||
/etc/os-release
|
||||
source \
|
||||
"${BASEDIR}/system.conf"
|
||||
"${baseDir}/system.conf"
|
||||
|
||||
|
||||
if [[ "${1}" == '-1' ]]; then
|
||||
if [[ "${1}" == '--mmdebstrap' ]]; then
|
||||
packages=(\
|
||||
console-setup \
|
||||
cryptsetup \
|
||||
@@ -44,7 +44,7 @@ zstd\
|
||||
${include} \
|
||||
"${UBUNTU_VERSION_CODENAME}" \
|
||||
/mnt
|
||||
elif [[ "${1}" == '-2' ]]; then
|
||||
elif [[ "${1}" == '--sources' ]]; then
|
||||
cat <<EOF >/mnt/etc/apt/sources.list.d/${UBUNTU_VERSION_CODENAME}.sources
|
||||
# ${UBUNTU_VERSION_CODENAME^}
|
||||
Enabled: yes
|
||||
@@ -90,11 +90,11 @@ Signed-By: /etc/apt/trusted.gpg.d/patches.key.asc
|
||||
EOF
|
||||
|
||||
rm /mnt/etc/apt/sources.list
|
||||
elif [[ "${1}" == '-3' ]]; then
|
||||
elif [[ "${1}" == '--skel' ]]; then
|
||||
rsync -pogAXtlHrDx \
|
||||
/etc/skel \
|
||||
/mnt/etc
|
||||
elif [[ "${1}" == '-4' ]]; then
|
||||
elif [[ "${1}" == '--elementary' ]]; then
|
||||
cp \
|
||||
/etc/os-release \
|
||||
/mnt/etc
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
|
||||
baseDir="$(realpath "$(dirname "${0}")")"
|
||||
|
||||
source \
|
||||
/etc/os-release
|
||||
source \
|
||||
"${BASEDIR}/system.conf"
|
||||
"${baseDir}/system.conf"
|
||||
|
||||
|
||||
if [[ "${1}" == '-1' ]]; then
|
||||
if [[ "${1}" == '--rsync' ]]; then
|
||||
mkdir -p /run/install
|
||||
|
||||
if [[ "${VERSION_ID}" -lt '41' ]]; then
|
||||
@@ -24,7 +24,7 @@ if [[ "${1}" == '-1' ]]; then
|
||||
--exclude=/etc/machine-id \
|
||||
--info=progress2 \
|
||||
/run/install/ /mnt
|
||||
elif [[ "${1}" == '-2' ]]; then
|
||||
elif [[ "${1}" == '--resolv-conf' ]]; then
|
||||
mv /mnt/etc/resolv.conf \
|
||||
/mnt/etc/resolv.conf.orig
|
||||
|
||||
|
||||
42
pre-inst.sh
42
pre-inst.sh
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
|
||||
baseDir="$(realpath "$(dirname "${0}")")"
|
||||
|
||||
printf \
|
||||
'\033[?47l\012'
|
||||
@@ -9,7 +9,7 @@ printf \
|
||||
cat << EOF
|
||||
#######################################
|
||||
## ##
|
||||
## $(cat "${BASEDIR}/title") Script ##
|
||||
## $(cat "${baseDir}/title") Script ##
|
||||
## ##
|
||||
## Jean <jean@easthighnerd.net> ##
|
||||
## ##
|
||||
@@ -28,7 +28,7 @@ EOF
|
||||
source \
|
||||
/etc/os-release
|
||||
source \
|
||||
"${BASEDIR}/system.conf"
|
||||
"${baseDir}/system.conf"
|
||||
|
||||
|
||||
if [[ "${ID}" == 'debian' ]]; then
|
||||
@@ -77,7 +77,7 @@ elif [[ "${ID}" == 'fedora' ]]; then
|
||||
|
||||
dnf install \
|
||||
-y \
|
||||
https://zfsonlinux.org/fedora/zfs-release-${ZOL_FEDORA_VER}$(rpm --eval "%{dist}").noarch.rpm
|
||||
https://zfsonlinux.org/fedora/zfs-release-${zolFedoraVer}$(rpm --eval "%{dist}").noarch.rpm
|
||||
|
||||
dnf install \
|
||||
-y \
|
||||
@@ -101,11 +101,11 @@ if [[ ! "$(hostname)" == "debian-live" ]]; then
|
||||
fi
|
||||
|
||||
|
||||
"${BASEDIR}/partition.sh"
|
||||
"${baseDir}/partition.sh"
|
||||
|
||||
sleep 5
|
||||
|
||||
"${BASEDIR}/mkfs.zfs.sh"
|
||||
"${baseDir}/zfs.sh"
|
||||
|
||||
mkdir \
|
||||
-p \
|
||||
@@ -122,25 +122,27 @@ mkdir \
|
||||
/mnt/run/lock
|
||||
|
||||
if [[ "${ID}" == 'elementary' ]]; then
|
||||
"${BASEDIR}/base-elementary.sh" -1
|
||||
"${baseDir}/elementary.sh" --mmdebstrap
|
||||
elif [[ "${ID}" == 'debian' ]]; then
|
||||
"${BASEDIR}/base-debian.sh" -1
|
||||
"${baseDir}/debian.sh" --mmdebstrap
|
||||
elif [[ "${ID}" == 'fedora' ]]; then
|
||||
"${baseDir}/fedora.sh" --rsync
|
||||
fi
|
||||
|
||||
printf \
|
||||
"${HOSTNAME}\n" | tee /mnt/etc/hostname &> /dev/null
|
||||
"${hostname}\n" | tee /mnt/etc/hostname &> /dev/null
|
||||
|
||||
printf \
|
||||
"127.0.1.1\t${HOSTNAME}\n" | tee --append /mnt/etc/hosts &> /dev/null
|
||||
"127.0.1.1\t${hostname}\n" | tee --append /mnt/etc/hosts &> /dev/null
|
||||
|
||||
if [[ "${ID}" == 'debian' ]]; then
|
||||
"${BASEDIR}/base-debian.sh" -2
|
||||
"${baseDir}/debian.sh" --network-interfaces
|
||||
fi
|
||||
|
||||
if [[ "${ID}" == 'elementary' ]]; then
|
||||
"${BASEDIR}/base-elementary.sh" -2
|
||||
"${baseDir}/elementary.sh" --sources
|
||||
elif [[ "${ID}" == 'debian' ]]; then
|
||||
"${BASEDIR}/base-debian.sh" -3
|
||||
"${baseDir}/debian.sh" --sources
|
||||
fi
|
||||
|
||||
mount \
|
||||
@@ -163,27 +165,27 @@ cp \
|
||||
/mnt/etc/
|
||||
|
||||
if [[ "${ID}" == 'fedora' ]]; then
|
||||
"${BASEDIR}/base-fedora.sh" -2
|
||||
"${baseDir}/fedora.sh" --resolv-conf
|
||||
fi
|
||||
|
||||
rsync -pogAXtlHrDx \
|
||||
"${BASEDIR}" \
|
||||
"${baseDir}" \
|
||||
/mnt
|
||||
|
||||
if [[ "${ID}" == 'elementary' ]]; then
|
||||
"${BASEDIR}/base-elementary.sh" -3
|
||||
"${baseDir}/elementary.sh" --skel
|
||||
fi
|
||||
|
||||
# if [[ ! "${*}" = *--no-part* ]]; then
|
||||
if [[ -f "/etc/zfs/keys/${HOSTNAME,,}.key" ]]; then
|
||||
if [[ -f "/etc/zfs/keys/${hostname,,}.key" ]]; then
|
||||
cp \
|
||||
/etc/zfs/keys/${HOSTNAME,,}.key \
|
||||
/etc/zfs/keys/${hostname,,}.key \
|
||||
/mnt/etc/zfs/keys/
|
||||
fi
|
||||
# fi
|
||||
|
||||
if [[ "${ID}" == 'elementary' ]]; then
|
||||
"${BASEDIR}/base-elementary.sh" -4
|
||||
"${baseDir}/elementary.sh" --elementary
|
||||
fi
|
||||
|
||||
printf \
|
||||
@@ -191,7 +193,7 @@ printf \
|
||||
|
||||
chroot \
|
||||
/mnt \
|
||||
"$(printf "${BASEDIR}\n" | sed 's|.*\/|\/|')/install.sh"
|
||||
"$(printf "${baseDir}\n" | sed 's|.*\/|\/|')/install.sh"
|
||||
|
||||
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -I {} umount -Rlf {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user