Compare commits
No commits in common. "main" and "k" have entirely different histories.
17
config
17
config
|
@ -1,17 +0,0 @@
|
||||||
lastminute() {
|
|
||||||
echo lastminute
|
|
||||||
#addpkg vlc
|
|
||||||
#servicesenable sshd
|
|
||||||
#servicesdisable sshd
|
|
||||||
#ignorepkg openssh
|
|
||||||
#removepkg mpv
|
|
||||||
}
|
|
||||||
|
|
||||||
os_config() {
|
|
||||||
echo os config
|
|
||||||
addpkg tmux starship vivid browserpass nfs-utils chezmoi pipewire alsa-pipewire libjack-pipewire libspa-v4l2 pass xclip
|
|
||||||
addpkg zsh zsh-autosuggestions zsh-completions zsh-history-substring-search zsh-syntax-highlighting google-fonts-ttf
|
|
||||||
addpkg tigervnc keychain youtube-dl buku i3status-rust aria2 zenity
|
|
||||||
servicesenable sshd
|
|
||||||
removepkg i3status
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
if command -v nano > /dev/null; then
|
|
||||||
e=nano
|
|
||||||
elif command -v nvim > /dev/null; then
|
|
||||||
e=nvim
|
|
||||||
elif command -v vim > /dev/null; then
|
|
||||||
e=vim
|
|
||||||
fi
|
|
||||||
|
|
||||||
export EDITOR="${e}"
|
|
||||||
export VISUAL="${e}"
|
|
||||||
export SUDO_EDITOR="${e}"
|
|
||||||
unset e
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
[ "$(id -u)" -eq 0 ] && return
|
|
||||||
alias xu="sudo void-update"
|
|
||||||
alias xr="sudo xbps-remove -R"
|
|
||||||
alias xs="xbps-query -Rs"
|
|
||||||
alias backup="sudo void-backup"
|
|
||||||
alias snapshot="sudo void-snapshot"
|
|
||||||
|
|
||||||
echo "xu = sudo void-update updaten"
|
|
||||||
echo "xi = sudo xbps-install -S installieren"
|
|
||||||
echo "xr = sudo xbps-remove -R deinstallieren"
|
|
||||||
echo "xs = xbps-query -Rs suchen"
|
|
||||||
echo ""
|
|
||||||
echo "backup backup machen"
|
|
||||||
echo "snapshot snapshots einstellen"
|
|
||||||
echo ""
|
|
|
@ -1,41 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
basewgfolder="/etc/wireguard"
|
|
||||||
|
|
||||||
if [ $UID -ne 0 ]; then
|
|
||||||
echo "Keine Rootrechte"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
umask 0077
|
|
||||||
mkdir -p "${basewgfolder}/wg0"
|
|
||||||
cd "${basewgfolder}/wg0"
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -f "${basewgfolder}/wg0/privkey" ]]; then
|
|
||||||
read -p "Address: " ADDRESS
|
|
||||||
read -p "PublicKey: " PUBKEY_SERVER
|
|
||||||
read -p "Endpoint: " ENDPOINT
|
|
||||||
read -p "Port: " PORT
|
|
||||||
{ echo "[Interface]";
|
|
||||||
echo "Address = ${ADDRESS}";
|
|
||||||
echo "PostUp = wg set %i private-key /etc/wireguard/wg0/wg0.key <(cat /etc/wireguard/wg0/privkey)";
|
|
||||||
echo "[Peer]";
|
|
||||||
echo "PublicKey = ${PUBKEY_SERVER}";
|
|
||||||
echo "Endpoint = ${ENDPOINT}:${PORT}";
|
|
||||||
echo "AllowedIPs = fd23::23:0:0/96";
|
|
||||||
echo "PresharedKey = $(cat psk)";
|
|
||||||
echo "PersistentKeepalive = 25"; } > "${basewgfolder}/wg0.conf"
|
|
||||||
else
|
|
||||||
test -f privkey || wg genkey > privkey
|
|
||||||
test -f pubkey || wg pubkey < privkey > pubkey
|
|
||||||
test -f psk || wg genpsk > psk
|
|
||||||
echo "Frage O nach den den folgenden Daten und wenn du sie hast, starte das hier nochmal"
|
|
||||||
echo "Address"
|
|
||||||
echo "PublicKey"
|
|
||||||
echo "Endpoint"
|
|
||||||
echo "Port"
|
|
||||||
echo ""
|
|
||||||
echo "Schicke ihm verschlüsselt (Matrix oder Email) folgende Daten:"
|
|
||||||
echo "PublicKey = $(cat pubkey)"
|
|
||||||
echo "PresharedKey = $(cat psk)"
|
|
||||||
echo "Hostname = ${HOSTNAME}"
|
|
||||||
fi
|
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
case $PINENTRY_USER_DATA in
|
|
||||||
tty)
|
|
||||||
exec pinentry-curses "$@"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if ! test -x ~/.config/pinentry; then
|
|
||||||
for i in pinentry-kwallet pinentry-qt pinentry-gnome3 pinentry-gtk-2 pinentry-emacs pinentry-dmenu pinentry-curses pinentry-tty; do
|
|
||||||
if command -v "${i}" > /dev/null; then
|
|
||||||
echo "#!/bin/sh" > ~/.config/pinentry
|
|
||||||
echo "${i} \${@}" >> ~/.config/pinentry
|
|
||||||
chmod +x ~/.config/pinentry
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec ~/.config/pinentry "$@"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
export LANG="en_US.UTF-8"
|
|
||||||
backupcfg="/etc/backup.cfg"
|
|
||||||
ziel="/var/lib/backup/ziel"
|
|
||||||
cfg="/etc/btrbk/btrbk.conf.void"
|
|
||||||
|
|
||||||
fhelp() {
|
|
||||||
echo "Nutze es so:"
|
|
||||||
echo "sudo backup"
|
|
||||||
echo "sudo backup poweroff (um den Rechner nach dem Backup herunterzufahren.)"
|
|
||||||
#echo "sudo backup update (um den Rechner nach dem Backup up zu daten.)"
|
|
||||||
#echo "update und poweroff sind mixbar"
|
|
||||||
echo "sudo backup passwd (um das Passwort für die Backupfestplatte zu ändern.)"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "${UID}" -ne "0" ]; then
|
|
||||||
echo "Keine Rootrechte."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for argval in "$@"
|
|
||||||
do
|
|
||||||
case "${argval}" in
|
|
||||||
power|poweroff|p)
|
|
||||||
poweroff=y
|
|
||||||
;;
|
|
||||||
help|-h|--help|h)
|
|
||||||
fhelp
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
update) update=y ;;
|
|
||||||
passwd) passwd=y ;;
|
|
||||||
clean) do=clean ;;
|
|
||||||
run) do=run ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
test -z "${do}" && do=run
|
|
||||||
|
|
||||||
if [[ ! -f /etc/btrbk/btrbk.conf ]]; then
|
|
||||||
if [[ -f "${backupcfg}" ]]; then
|
|
||||||
source "${backupcfg}"
|
|
||||||
else
|
|
||||||
echo "${backupcfg} fehlt."
|
|
||||||
echo "Diese Datei wird normalerweise durch \`void-createbackupcontainer\`"
|
|
||||||
echo "angelegt. Bitte Sprich mit deinem Systemadministrator."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${UUID}" ]; then
|
|
||||||
echo "Keine Backupplatte angegeben."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -e "/dev/disk/by-uuid/${UUID}" ]; then
|
|
||||||
echo "Bitte Backupfestplatte anschliessen."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e /tmp/backup ]; then
|
|
||||||
echo "Es läuft schon ein Backupvorgang oder wurde nicht richtig beendet."
|
|
||||||
echo "Bei letzterem: 'sudo rm -rf /tmp/backup'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
touch /tmp/backup
|
|
||||||
|
|
||||||
if [[ "${passwd}" == "y" ]]; then
|
|
||||||
cryptsetup luksChangeKey "/dev/disk/by-uuid/${UUID}"
|
|
||||||
rm -rf /tmp/backup
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
function finish {
|
|
||||||
sync
|
|
||||||
if [ "${poweroff}" = "y" ]; then
|
|
||||||
shutdown -h now
|
|
||||||
fi
|
|
||||||
sleep 4
|
|
||||||
umount "${ziel}"
|
|
||||||
echo " "
|
|
||||||
echo " "
|
|
||||||
if [[ "${MOUNTEDBY}" == "script" ]]; then
|
|
||||||
cryptsetup close "luks-${UUID}"
|
|
||||||
echo "Festplatte kann nun sicher entfernt werden."
|
|
||||||
elif [[ "${MOUNTEDBY}" == "de" ]]; then
|
|
||||||
echo "Festplatte bitte mit der grafischen Oberflaeche auswerfen (wie ein USB-Stick)"
|
|
||||||
echo ""
|
|
||||||
echo "oder:"
|
|
||||||
echo "sudo umount /dev/mapper/luks-${UUID}"
|
|
||||||
echo "sudo cryptsetup close luks-${UUID}"
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
rm -rf /tmp/backup
|
|
||||||
echo "FERTIG"
|
|
||||||
|
|
||||||
}
|
|
||||||
trap finish EXIT
|
|
||||||
|
|
||||||
if mountpoint -q -x "/dev/mapper/luks-${UUID}" > /dev/null; then
|
|
||||||
MOUNTEDBY="de"
|
|
||||||
else
|
|
||||||
if ! cryptsetup open UUID="${UUID}" "luks-${UUID}"; then
|
|
||||||
echo "Konnte /dev/disk/by-uuid/${UUID} nicht öffnen."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
MOUNTEDBY="script"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! mount "/dev/mapper/luks-${UUID}" "${ziel}"; then
|
|
||||||
echo "Konnte /dev/mapper/luks-${UUID} in ${ziel} nicht mounten."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
cfg="/etc/btrbk/btrbk.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if mountpoint -q /var/lib/backup/quelle/bootfs; then
|
|
||||||
mkdir -p /var/lib/backup/quelle/bootfs/system/backup "/var/lib/backup/ziel/void/bootfs"
|
|
||||||
boot="backupboot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p /var/lib/backup/quelle/rootfs/system/backup "/var/lib/backup/ziel/void/rootfs" "/var/lib/backup/ziel/void/homefs"
|
|
||||||
for t in backup "${boot}"; do
|
|
||||||
if [[ "${t}" ]]; then
|
|
||||||
btrbk --config="${cfg}" --progress --quiet clean "${t}"
|
|
||||||
if ! btrbk --config="${cfg}" --progress --quiet "${do}" "${t}"; then
|
|
||||||
btrbk --config="${cfg}" --progress --quiet clean
|
|
||||||
echo "Wegen Fehler nicht herunterfahren."
|
|
||||||
poweroff=n
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
|
@ -1,95 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
backupcfg="/etc/backup.cfg"
|
|
||||||
|
|
||||||
if [ $UID -ne 0 ]; then
|
|
||||||
echo "Keine Rootrechte."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#test -f "${backupcfg}" && echo "${backupcfg} existiert" && exit 1
|
|
||||||
|
|
||||||
# find all disks
|
|
||||||
declare -A disk_tmp=()
|
|
||||||
declare -A disk=()
|
|
||||||
index=0
|
|
||||||
for i in $(find /dev/disk/by-id/ -type l -printf "%P\n" | grep usb | grep -v part | tac ); do
|
|
||||||
name="$(readlink -f /dev/disk/by-id/"${i}")"
|
|
||||||
if [[ "${name}" =~ *"^[0-9]+$"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [[ "${name}" == *"dm"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [[ "${name}" == *"/dev/sr"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if blkid "${name}"|grep -q UUID; then
|
|
||||||
size="$(fdisk -l "${name}" | head -n1 | awk '{print $3}')"
|
|
||||||
else
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
size=$(awk "BEGIN { printf(\"%.0f\n\", ${size}); }")
|
|
||||||
uuid=$(blkid -o value -s UUID ${name})
|
|
||||||
index=$(( index + 1 ))
|
|
||||||
disk_tmp+=( [${index}.id]="${i}" [${index}.name]="${name}" [${index}.uuid]="${uuid}" [${index}.size]="${size}" )
|
|
||||||
done
|
|
||||||
disk_tmp+=( [count]="${index}" )
|
|
||||||
|
|
||||||
if [[ "${disk_tmp[count]}" -eq 0 ]]; then
|
|
||||||
echo "No Disk attached."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# show devices
|
|
||||||
echo "Devices:"
|
|
||||||
for i in $(seq 1 "${disk_tmp[count]}"); do
|
|
||||||
echo "${disk_tmp[${i}.id]}"
|
|
||||||
echo " - uuid: ${disk_tmp[${i}.uuid]}"
|
|
||||||
echo " - name: ${disk_tmp[${i}.name]}"
|
|
||||||
echo " - size: ${disk_tmp[${i}.size]}"
|
|
||||||
done
|
|
||||||
|
|
||||||
# choose device
|
|
||||||
found=
|
|
||||||
while read -p "Which Device? [${disk_tmp[1.uuid]}]: " output; do
|
|
||||||
test -z "${output}" && output="${disk_tmp[1.uuid]}"
|
|
||||||
for i in $(seq 1 "${disk_tmp[count]}"); do
|
|
||||||
if [[ "${disk_tmp[${i}.id]}" == "${output}" ]] || [[ "${disk_tmp[${i}.name]}" == "${output}" ]] || [[ "${disk_tmp[${i}.uuid]}" == "${output}" ]]; then
|
|
||||||
found=1
|
|
||||||
id="${disk_tmp[${i}.id]}"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[[ "${found}" ]] && break
|
|
||||||
echo "${output} not found"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "g
|
|
||||||
n
|
|
||||||
1
|
|
||||||
|
|
||||||
|
|
||||||
w
|
|
||||||
q" | fdisk "/dev/disk/by-id/${id}"
|
|
||||||
|
|
||||||
UUID=$(blkid -o value -s UUID "/dev/disk/by-id/${id}-part1")
|
|
||||||
|
|
||||||
if ! cryptsetup luksFormat UUID="${UUID}"; then
|
|
||||||
echo "Konnte /dev/disk/by-uuid/${UUID} nicht verschluesseln."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
if ! cryptsetup open UUID="${UUID}" "luks-${UUID}"; then
|
|
||||||
echo "Konnte /dev/disk/by-uuid/${UUID} nicht verschluesseln."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! mkfs.btrfs -f "/dev/mapper/luks-${UUID}"; then
|
|
||||||
echo "Konnte /dev/mapper/luks-${UUID} nicht formatieren"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cryptsetup close "luks-${UUID}"
|
|
||||||
|
|
||||||
echo "UUID=\"${UUID}\"" > "${backupcfg}"
|
|
||||||
|
|
||||||
echo "Erstellen des Containers fertig."
|
|
|
@ -1,85 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
if [ "${UID}" -ne "0" ]; then
|
|
||||||
echo "Keine Rootrechte."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
infos() {
|
|
||||||
echo "Snapshots sind Kopien der Dateien die keinen zusätzlichen Platz"
|
|
||||||
echo "benötigen."
|
|
||||||
echo ""
|
|
||||||
echo "Es wird bei jedem Update vom Betriebsystem ein Snapshot angelegt."
|
|
||||||
echo "Es wird jede volle Stunde vom Betriebsystem ein Snapshot angelegt."
|
|
||||||
echo "So ist das Betriebssystem auch bei Problemen bootbar."
|
|
||||||
echo ""
|
|
||||||
echo "Optional kann auch jede Stunde ein Snapshot der persönlichen Daten"
|
|
||||||
echo "angelegt werden. Dann verliert man bei versehentlichem löschen"
|
|
||||||
echo "maximal die Arbeit einer Stunde."
|
|
||||||
echo "Dafür folgendes im Terminal ausführen:"
|
|
||||||
echo 'echo REGULAR_SNAPSHOT_HOME=1 | sudo tee -a /etc/void-snapshot.cfg'
|
|
||||||
echo ""
|
|
||||||
echo "Nur für Experten:"
|
|
||||||
echo 'echo NO_UPDATE_GRUB=1 | sudo tee -a /etc/void-snapshot.cfg'
|
|
||||||
}
|
|
||||||
|
|
||||||
cron=""
|
|
||||||
update=""
|
|
||||||
case $1 in
|
|
||||||
update)
|
|
||||||
update=1
|
|
||||||
word="update"
|
|
||||||
;;
|
|
||||||
cron)
|
|
||||||
cron=1
|
|
||||||
word="regular"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
infos
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$#" -eq "0" ]; then
|
|
||||||
infos
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
cfg="/etc/btrbk/btrbk.conf.void"
|
|
||||||
test -f "/etc/btrbk/btrbk.conf" && cfg="/etc/btrbk/btrbk.conf"
|
|
||||||
|
|
||||||
if mountpoint -q /var/lib/backup/quelle/bootfs; then
|
|
||||||
mkdir -p "/var/lib/backup/quelle/bootfs/system/snapshots/${word}"
|
|
||||||
if ! btrbk --config="${cfg}" --quiet run "${word}boot"; then
|
|
||||||
btrbk --config="${cfg}" --quiet clean "${word}boot"
|
|
||||||
echo "fail: btrbk --config=${cfg} --quiet run ${word}boot"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "/var/lib/backup/quelle/rootfs/system/snapshots/${word}"
|
|
||||||
if ! btrbk --config="${cfg}" --quiet run "${word}root"; then
|
|
||||||
btrbk --config="${cfg}" --quiet clean "${word}root"
|
|
||||||
echo "fail: btrbk --config=${cfg} --quiet run ${word}root"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
test -f /etc/void-snapshot.cfg && . /etc/void-snapshot.cfg
|
|
||||||
|
|
||||||
if [[ -z "${NO_UPDATE_GRUB}" ]]; then
|
|
||||||
if ! update-grub 2> /dev/null; then
|
|
||||||
echo update-grub failed
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${cron}" ]; then
|
|
||||||
if [ "${REGULAR_SNAPSHOT_HOME}" ]; then
|
|
||||||
mkdir -p "/var/lib/backup/quelle/rootfs/system/snapshots/${word}"
|
|
||||||
if ! btrbk --config="${cfg}" --quiet run "${word}home"; then
|
|
||||||
btrbk --config="${cfg}" --quiet clean "${word}home"
|
|
||||||
echo "fail: btrbk --config=${cfg} --quiet clean ${word}home"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ $UID -ne 0 ]; then
|
|
||||||
echo "Keine Rootrechte."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
RESTART=""
|
|
||||||
|
|
||||||
set -Eeuo pipefail
|
|
||||||
|
|
||||||
RESTART=
|
|
||||||
echo "Synchronisiere Repositorys."
|
|
||||||
xbps-install -S > /dev/null
|
|
||||||
|
|
||||||
#mapfile -t updatedpkgs < <(xbps-install -un|awk '{print $1}')
|
|
||||||
updatedpkgs="$(xbps-install -un|awk '{print $1}')"
|
|
||||||
|
|
||||||
if [[ -z "${updatedpkgs}" ]]; then
|
|
||||||
echo "Keine Updates"
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
echo "${updatedpkgs}"
|
|
||||||
echo "Es sind Updates da!"
|
|
||||||
while read -p "Installieren? [Y/n] " answer; do
|
|
||||||
test -z "${answer}" && answer="y"
|
|
||||||
case "${answer}" in
|
|
||||||
n*|N*|*o|*O)
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
y*|Y*|j*|J*)
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
if grep -q -Pe '^(?!.*linux-).*^linux' <<< "${updatedpkgs}"; then
|
|
||||||
RESTART=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Lege Snapshot an."
|
|
||||||
void-snapshot update
|
|
||||||
|
|
||||||
echo "Entferne nicht benutzte Pakete."
|
|
||||||
xbps-remove -oy > /dev/null
|
|
||||||
|
|
||||||
echo "Räume den Cache auf."
|
|
||||||
xbps-remove -Oy > /dev/null
|
|
||||||
|
|
||||||
echo "Installiere Updates."
|
|
||||||
if ! xbps-install -uy; then
|
|
||||||
echo "Update failed."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$RESTART" ]]; then
|
|
||||||
echo "Lösche alte Kernel."
|
|
||||||
vkpurge list | head -n -1 | xargs -r vkpurge rm
|
|
||||||
else
|
|
||||||
echo "Überprüfe ob neustart notwenidig ist."
|
|
||||||
if [[ "$(xcheckrestart)" ]]; then
|
|
||||||
RESTART=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${RESTART}" ]]; then
|
|
||||||
echo ""; echo "Bitte den Computer neu starten!"
|
|
||||||
else
|
|
||||||
echo ""; echo "Kein neustart notwendig!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Update fertig."
|
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
transaction_syslog daemon
|
|
||||||
lockfile /tmp/btrbk.lock
|
|
||||||
incremental yes
|
|
||||||
btrfs_commit_delete after
|
|
||||||
timestamp_format long
|
|
||||||
noauto yes
|
|
||||||
backend btrfs-progs-sudo
|
|
||||||
|
|
||||||
# Update snapshots
|
|
||||||
volume /var/lib/backup/quelle/bootfs
|
|
||||||
group updateboot updatestats allstats snapshotstats
|
|
||||||
snapshot_dir system/snapshots/update
|
|
||||||
snapshot_preserve_min latest
|
|
||||||
snapshot_preserve no
|
|
||||||
subvolume bootfs
|
|
||||||
|
|
||||||
volume /var/lib/backup/quelle/rootfs
|
|
||||||
group updateroot updatestats allstats snapshotstats
|
|
||||||
snapshot_dir system/snapshots/update
|
|
||||||
snapshot_preserve_min latest
|
|
||||||
snapshot_preserve no
|
|
||||||
subvolume rootfs
|
|
||||||
|
|
||||||
|
|
||||||
# Regular snapshots
|
|
||||||
volume /var/lib/backup/quelle/bootfs
|
|
||||||
group regularboot regularstats allstats snapshotstats
|
|
||||||
snapshot_dir system/snapshots/regular
|
|
||||||
snapshot_preserve_min 4h
|
|
||||||
snapshot_preserve no
|
|
||||||
subvolume bootfs
|
|
||||||
|
|
||||||
volume /var/lib/backup/quelle/rootfs
|
|
||||||
group regularroot regularstats allstats snapshotstats
|
|
||||||
snapshot_dir system/snapshots/regular
|
|
||||||
snapshot_preserve_min 4h
|
|
||||||
snapshot_preserve no
|
|
||||||
subvolume rootfs
|
|
||||||
|
|
||||||
volume /var/lib/backup/quelle/rootfs
|
|
||||||
group regularhome regularstats allstats snapshotstats
|
|
||||||
snapshot_dir system/snapshots/regular
|
|
||||||
snapshot_preserve_min 4h
|
|
||||||
snapshot_preserve no
|
|
||||||
subvolume homefs
|
|
||||||
|
|
||||||
|
|
||||||
# Backup
|
|
||||||
volume /var/lib/backup/quelle/bootfs
|
|
||||||
group backupboot backupstats allstats
|
|
||||||
snapshot_dir system/backup
|
|
||||||
snapshot_preserve_min latest
|
|
||||||
snapshot_preserve no
|
|
||||||
target_preserve_min latest
|
|
||||||
target_preserve no
|
|
||||||
subvolume bootfs
|
|
||||||
target send-receive /var/lib/backup/ziel/void/bootfs
|
|
||||||
|
|
||||||
volume /var/lib/backup/quelle/rootfs
|
|
||||||
group backup backupstats allstats
|
|
||||||
snapshot_dir system/backup
|
|
||||||
snapshot_preserve_min latest
|
|
||||||
snapshot_preserve no
|
|
||||||
target_preserve_min latest
|
|
||||||
target_preserve no
|
|
||||||
subvolume rootfs
|
|
||||||
target send-receive /var/lib/backup/ziel/void/rootfs
|
|
||||||
|
|
||||||
volume /var/lib/backup/quelle/rootfs
|
|
||||||
group backup backupstats allstats
|
|
||||||
snapshot_dir system/backup
|
|
||||||
snapshot_preserve_min latest
|
|
||||||
snapshot_preserve no
|
|
||||||
target_preserve_min latest
|
|
||||||
target_preserve no
|
|
||||||
subvolume homefs
|
|
||||||
target send-receive /var/lib/backup/ziel/void/homefs
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
pinentry-program /usr/bin/pinentry-chooser
|
|
||||||
enable-ssh-support
|
|
||||||
|
|
||||||
default-cache-ttl 28800
|
|
||||||
max-cache-ttl 86400
|
|
||||||
ignore-cache-for-signing
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Ignore specific path during run "grub-mkconfig".
|
|
||||||
# Only exact paths are ignored.
|
|
||||||
# e.g : if `specific path` = @, only `@` snapshot will be ignored.
|
|
||||||
# Default: ("@")
|
|
||||||
GRUB_BTRFS_IGNORE_SPECIFIC_PATH=("@" "rootfs" "bootfs" "homefs")
|
|
||||||
|
|
||||||
# Ignore prefix path during run "grub-mkconfig".
|
|
||||||
# Any path starting with the specified string will be ignored.
|
|
||||||
# e.g : if `prefix path` = @, all snapshots beginning with "@/..." will be ignored.
|
|
||||||
# Default: ("var/lib/docker" "@var/lib/docker" "@/var/lib/docker")
|
|
||||||
GRUB_BTRFS_IGNORE_PREFIX_PATH=("var/lib/docker" "@var/lib/docker" "@/var/lib/docker" "system/backup")
|
|
||||||
|
|
||||||
GRUB_BTRFS_SUBMENUNAME="Void Linux Snapshots"
|
|
||||||
GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION="true"
|
|
||||||
GRUB_BTRFS_DISPLAY_PATH_SNAPSHOT="false"
|
|
||||||
GRUB_BTRFS_TITLE_FORMAT="d"
|
|
||||||
GRUB_BTRFS_LIMIT="20"
|
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
INTERFACE=$1
|
|
||||||
ACTION=$2
|
|
||||||
|
|
||||||
if [ -f /etc/wireguard/wg0.conf ]; then
|
|
||||||
case "$INTERFACE" in
|
|
||||||
tun*|wg*)
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
case "$ACTION" in
|
|
||||||
up)
|
|
||||||
wg-quick up wg0
|
|
||||||
;;
|
|
||||||
down)
|
|
||||||
wg-quick down wg0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
|
@ -1,2 +0,0 @@
|
||||||
[global-dns-domain-*]
|
|
||||||
servers=::1,159.69.114.157
|
|
|
@ -1,3 +0,0 @@
|
||||||
[keyfile]
|
|
||||||
unmanaged-devices=interface-name:wg*
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
[keyfile]
|
|
||||||
unmanaged-devices=interface-name:wg*
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
appendpath () {
|
|
||||||
case ":$PATH:" in
|
|
||||||
*:"$1":*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
PATH="${PATH:+$PATH:}$1"
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $(id -u) -eq 0 ]; then
|
|
||||||
appendpath "/root/.local/bin"
|
|
||||||
else
|
|
||||||
appendpath "/home/$(id -un)/.local/bin"
|
|
||||||
fi
|
|
||||||
export PATH
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
Defaults timestamp_timeout=15
|
|
||||||
Defaults !tty_tickets
|
|
||||||
Defaults umask = 022
|
|
||||||
Defaults passprompt="[sudo] Password: "
|
|
||||||
Defaults env_keep += "EDITOR"
|
|
||||||
Defaults env_keep += "SSH_CONNECTION"
|
|
||||||
Defaults env_keep += "TMUX"
|
|
||||||
|
|
||||||
%wheel ALL=(ALL) ALL
|
|
|
@ -1 +0,0 @@
|
||||||
ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
|
|
|
@ -1 +0,0 @@
|
||||||
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
|
|
|
@ -1,13 +0,0 @@
|
||||||
[Interface]
|
|
||||||
Address = fd23::23:5:200/64, 10.23.5.200/16
|
|
||||||
PrivateKey = gPxQ+J61DCyOfJj0wXVfAL1zeFnlhenDiIXTyeZ9NUc=
|
|
||||||
DNS = fd23::23:5:2, 10.23.5.2
|
|
||||||
|
|
||||||
[Peer]
|
|
||||||
PublicKey = ZJwTV2l+N+vFwL0KFQb5xpAPqwVcf0YvEMFzTaIoAU8=
|
|
||||||
Endpoint = 10.1.1.2:51820
|
|
||||||
PresharedKey = 4KUpGmysJLNsX5sdFPpVsyW5ONloXj7WTNpNtqTSZ9U=
|
|
||||||
|
|
||||||
####AllowedIPs = ::0/0, 0.0.0.0/0 leitet den ganzen traffic ueber den server
|
|
||||||
AllowedIPs = fd23::/64, 10.23.0.0/16
|
|
||||||
PersistentKeepalive = 25
|
|
|
@ -1,2 +0,0 @@
|
||||||
repository=https://rotce.de/pakete
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
noextract=/usr/bin/xq
|
|
|
@ -1,8 +0,0 @@
|
||||||
Section "InputClass"
|
|
||||||
Identifier "keyboard"
|
|
||||||
MatchIsKeyboard "yes"
|
|
||||||
Option "XkbLayout" "de"
|
|
||||||
Option "XkbVariant" "nodeadkeys"
|
|
||||||
#Option "XkbOptions" "grp:alt_shift_toggle"
|
|
||||||
EndSection
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
if [ "$DESKTOP_SESSION" = "i3" ]; then
|
|
||||||
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
|
|
||||||
eval "$(dbus-launch --sh-syntax --exit-with-x11)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
|
@ -20,10 +20,8 @@ multiplechoice() {
|
||||||
for i in $(seq 1 "$(( ${#input[@]} - 1 ))"); do
|
for i in $(seq 1 "$(( ${#input[@]} - 1 ))"); do
|
||||||
if [[ "${i}" == "1" ]]; then
|
if [[ "${i}" == "1" ]]; then
|
||||||
choices="${input[$i]}"
|
choices="${input[$i]}"
|
||||||
use="${input[$i]}"
|
|
||||||
else
|
else
|
||||||
choices="${choices}|${input[$i]}"
|
choices="${choices}|${input[$i]}"
|
||||||
use+=" ${input[$i]}"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
while input "[${choices}]: " "${input[1]}"; do
|
while input "[${choices}]: " "${input[1]}"; do
|
||||||
|
@ -35,7 +33,7 @@ multiplechoice() {
|
||||||
done
|
done
|
||||||
if [[ -z "${done}" ]]; then
|
if [[ -z "${done}" ]]; then
|
||||||
echo wronginput "${output}"
|
echo wronginput "${output}"
|
||||||
echo use these: "${use}"
|
echo use these: "${input[@]}"
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@ -173,7 +171,7 @@ module() {
|
||||||
start)
|
start)
|
||||||
modulename="${2}"
|
modulename="${2}"
|
||||||
desc="${3}"
|
desc="${3}"
|
||||||
#echo "${3}.."
|
echo "${3}.."
|
||||||
;;
|
;;
|
||||||
end)
|
end)
|
||||||
modulename=""
|
modulename=""
|
||||||
|
|
23
main.sh
23
main.sh
|
@ -2,11 +2,13 @@
|
||||||
|
|
||||||
dir="$(pwd)"
|
dir="$(pwd)"
|
||||||
wrksrc="${dir}/tmp"
|
wrksrc="${dir}/tmp"
|
||||||
step="${dir}/step"
|
|
||||||
functions="${dir}/functions"
|
functions="${dir}/functions"
|
||||||
|
modules="${dir}/modules"
|
||||||
|
config_mods="${modules}/config"
|
||||||
|
install_mods="${modules}/install"
|
||||||
|
chroot_mods="${modules}/chroot"
|
||||||
vars="${wrksrc}/vars"
|
vars="${wrksrc}/vars"
|
||||||
dest="/mnt"
|
dest="${wrksrc}/dest"
|
||||||
files="${dir}/files"
|
|
||||||
rm -rf "${vars}"
|
rm -rf "${vars}"
|
||||||
mkdir -p "${wrksrc}" "${vars}" "${dest}"
|
mkdir -p "${wrksrc}" "${vars}" "${dest}"
|
||||||
declare -A cfg=()
|
declare -A cfg=()
|
||||||
|
@ -16,26 +18,23 @@ remote="https://alpha.de.repo.voidlinux.org/current"
|
||||||
#remote="https://void.cijber.net/current/"
|
#remote="https://void.cijber.net/current/"
|
||||||
|
|
||||||
source "${functions}"/functions
|
source "${functions}"/functions
|
||||||
source "${dir}"/config
|
|
||||||
|
|
||||||
umounter "${dest}"
|
umounter "${dest}"
|
||||||
|
|
||||||
export run="config"
|
export run="config"
|
||||||
for i in $(find "${step}1" -mindepth 1 -maxdepth 1 -type f | sort -n ); do
|
for i in $(find "${modules}" -mindepth 1 -maxdepth 1 -type d | sort -n ); do
|
||||||
test -f "${i}" && source "${i}"
|
test -f "${i}"/config && source "${i}"/config
|
||||||
done
|
done
|
||||||
|
|
||||||
export run="postconfig"
|
export run="postconfig"
|
||||||
for i in $(find "${step}2" -mindepth 1 -maxdepth 1 -type f | sort -n ); do
|
for i in $(find "${modules}" -mindepth 1 -maxdepth 1 -type d | sort -n ); do
|
||||||
test -f "${i}" && source "${i}"
|
test -f "${i}"/postconfig && source "${i}"/postconfig
|
||||||
done
|
done
|
||||||
|
|
||||||
mkdir -p "${dest}"/tmp/installer/tmp "${dest}"/etc
|
mkdir -p "${dest}"/tmp/installer/tmp "${dest}"/etc
|
||||||
cp -rf /etc/resolv.conf "${dest}"/etc
|
cp -rf /etc/resolv.conf "${dest}"/etc
|
||||||
cp -rf "${vars}" "${dest}"/tmp/installer/tmp
|
cp -rf "${vars}" "${dest}"/tmp/installer/tmp
|
||||||
cp -rf "${step}3" "${dest}"/tmp/installer
|
#rm -rf "${vars}"
|
||||||
cp -rf "${step}4" "${dest}"/tmp/installer
|
cp -rf "${modules}" "${dest}"/tmp/installer
|
||||||
cp -rf "${files}" "${dest}"/tmp/installer
|
|
||||||
cp -rf "${functions}" "${dest}"/tmp/installer
|
cp -rf "${functions}" "${dest}"/tmp/installer
|
||||||
cp -rf ./run_in_chroot.sh "${dest}"/tmp/installer
|
cp -rf ./run_in_chroot.sh "${dest}"/tmp/installer
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
if test -d /sys/firmware/efi; then
|
||||||
|
source "${modules}"/disk/uefi/config
|
||||||
|
else
|
||||||
|
source "${modules}"/disk/bios/config
|
||||||
|
fi
|
|
@ -0,0 +1,5 @@
|
||||||
|
if test -d /sys/firmware/efi; then
|
||||||
|
source "${modules}"/disk/uefi/postconfig
|
||||||
|
else
|
||||||
|
source "${modules}"/disk/bios/postconfig
|
||||||
|
fi
|
|
@ -0,0 +1,18 @@
|
||||||
|
module start "installation" "Installation" "dontcheck"
|
||||||
|
|
||||||
|
for i in ${pkg[@]}; do
|
||||||
|
for j in ${removepkg[@]}; do
|
||||||
|
if [[ "${i}" == "${j}" ]]; then
|
||||||
|
continue 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
toinstall+=( "$i" )
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "${#toinstall[@]}" -gt 0 ]]; then
|
||||||
|
xbps-install -Sy "${toinstall[@]}"
|
||||||
|
else
|
||||||
|
echo nothing to do
|
||||||
|
fi
|
||||||
|
|
||||||
|
module end
|
|
@ -10,18 +10,10 @@ if [[ "${#ignorepkg[@]}" -gt 0 ]]; then
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in ${pkg[@]}; do
|
|
||||||
for j in ${removepkg[@]}; do
|
|
||||||
if [[ "${i}" == "${j}" ]]; then
|
|
||||||
continue 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
toinstall+=( "$i" )
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p "${dest}"/var/db/xbps
|
mkdir -p "${dest}"/var/db/xbps
|
||||||
cp -rf /var/db/xbps/keys/ "${dest}"/var/db/xbps
|
cp -rf /var/db/xbps/keys/ "${dest}"/var/db/xbps
|
||||||
|
|
||||||
inst base-system "${toinstall[@]}"
|
inst base-system
|
||||||
|
|
||||||
module end
|
module end
|
|
@ -0,0 +1,20 @@
|
||||||
|
module start "basesystem" "Configure Basesystem"
|
||||||
|
|
||||||
|
while input "hostname?" "void"; do
|
||||||
|
if check alnum "${output}"; then
|
||||||
|
setconf add hostname "${output}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
setconf add "lang" "de_DE"
|
||||||
|
setconf add "lang_console" "de-latin1-nodeadkeys"
|
||||||
|
setconf add "timezone" "Europe/Berlin"
|
||||||
|
|
||||||
|
|
||||||
|
addpkg void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree lvm2 cronie socklog-void ntp xtools wireguard-tools gnupg2 progress pwgen net-tools ncdu nmap mtr iotop hdparm smartmontools htop git neovim btrbk croc
|
||||||
|
ignorepkg nvi gnupg
|
||||||
|
servicesenable acpid cronie socklog-unix nanoklogd uuidd agetty-tty1 agetty-tty2 agetty-tty3 agetty-tty4
|
||||||
|
servicesdisable agetty-tty6 agetty-tty5
|
||||||
|
|
||||||
|
module end
|
|
@ -0,0 +1,143 @@
|
||||||
|
module start "basesystem" "Install Basesystem"
|
||||||
|
|
||||||
|
diskid="${cfg[diskid]//-/_}"
|
||||||
|
|
||||||
|
chown root:root /
|
||||||
|
chmod 755 /
|
||||||
|
|
||||||
|
mkdir -p /etc/xbps.d/
|
||||||
|
{ echo "#ignorepkg=linux-firmware-amd";
|
||||||
|
echo "#ignorepkg=linux-firmware-intel";
|
||||||
|
echo "#ignorepkg=linux-firmware-nvidia";
|
||||||
|
echo "#ignorepkg=linux-firmware-broadcom";
|
||||||
|
echo "#ignorepkg=wifi-firmware"; } > /etc/xbps.d/10-ignore-firmware.conf
|
||||||
|
|
||||||
|
{ echo "en_DK.UTF-8 UTF-8";
|
||||||
|
echo "${cfg[lang]}.UTF-8 UTF-8";
|
||||||
|
echo "en_US.UTF-8 UTF-8"; } > /etc/default/libc-locales
|
||||||
|
|
||||||
|
echo "LANG=en_US.UTF-8" > /etc/locale.conf
|
||||||
|
echo "KEYMAP=${cfg[lang_console]}" > /etc/vconsole.conf
|
||||||
|
echo "LANG=${cfg[lang]}.UTF-8" > /etc/locale-user.conf
|
||||||
|
|
||||||
|
cp -a /etc/profile.d/locale.sh "${dest}"/etc/profile.d/zz-locale-user.sh
|
||||||
|
sed -i 's/locale.conf/locale-user.conf/' /etc/profile.d/zz-locale-user.sh
|
||||||
|
sed -i '/^if/i [ "$(id -u)" -eq 0 ] && return' /etc/profile.d/zz-locale-user.sh
|
||||||
|
|
||||||
|
{ echo "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0";
|
||||||
|
echo "/dev/mapper/voidvg.${diskid}-root / btrfs defaults,subvol=void-rootfs 0 0";
|
||||||
|
echo "/dev/mapper/voidvg.${diskid}-root /home btrfs defaults,subvol=home 0 0";
|
||||||
|
echo "/dev/mapper/voidvg.${diskid}-swap swap swap defaults 0 0";
|
||||||
|
echo "/dev/mapper/voidvg.${diskid}-root /var/lib/backup/quelle btrfs defaults 0 0"; } > /etc/fstab
|
||||||
|
[[ "${cfg[fde_key_store]}" == "once" ]] && echo "UUID=${cfg[bootuuid]} /boot btrfs defaults 0 0" >> /etc/fstab
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p /etc/sudoers.d
|
||||||
|
{ echo 'Defaults timestamp_timeout=15';
|
||||||
|
echo 'Defaults !tty_tickets';
|
||||||
|
echo 'Defaults umask = 022';
|
||||||
|
echo 'Defaults passprompt="[sudo] Password: "';
|
||||||
|
echo '%wheel ALL=(ALL) ALL';
|
||||||
|
echo 'Defaults editor = /usr/bin/nvim';
|
||||||
|
echo 'Defaults env_keep += "EDITOR"';
|
||||||
|
echo 'Defaults env_keep += "SSH_CONNECTION"'; } > /etc/sudoers.d/10-common
|
||||||
|
mkdir -p /etc/udev/rules.d/
|
||||||
|
echo 'ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"' > /etc/udev/rules.d/mount-media.rules
|
||||||
|
echo 'ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"' > /etc/udev/rules.d/60-ioschedulers.rules
|
||||||
|
|
||||||
|
mkdir -p /etc/bash/bashrc.d/
|
||||||
|
{ echo "[ \"\$(id -u)\" -eq 0 ] && return";
|
||||||
|
echo 'alias xu="sudo voidupdate"';
|
||||||
|
echo 'alias xr="sudo xbps-install -R"';
|
||||||
|
echo 'alias xs="xbps-query -Rs"';
|
||||||
|
echo 'alias xk="sudo vkpurge rm all"';
|
||||||
|
echo 'echo "xu = sudo voidupdate zum updaten"';
|
||||||
|
echo 'echo "xi = sudo xbps-install -S zum installieren"';
|
||||||
|
echo 'echo "xr = sudo xbps-install -R zum deinstallieren"';
|
||||||
|
echo 'echo "xs = xbps-query -Rs zum suchen"';
|
||||||
|
echo 'echo "xk = sudo vkpurge rm all zum kernel entfernen"'; } > /etc/bash/bashrc.d/xbps-aliase.sh
|
||||||
|
|
||||||
|
echo "${cfg[hostname]}" > "${dest}/etc/hostname"
|
||||||
|
ln -sf "/usr/share/zoneinfo/${cfg[timezone]}" "${dest}/etc/localtime"
|
||||||
|
sed -i "s/#HOSTNAME=\"void-live\"/HOSTNAME=${cfg[hostname]}/g" "${dest}/etc/rc.conf"
|
||||||
|
sed -i "s/Europe\/Madrid/${cfg[timezone]//\//\\/}/" "${dest}/etc/rc.conf"
|
||||||
|
sed -i "/HARDWARECLOCK/s/^#//g" "${dest}/etc/rc.conf"
|
||||||
|
sed -i "/FONT=/s/^#//g" "${dest}/etc/rc.conf"
|
||||||
|
|
||||||
|
if [[ ! ${cfg[fde_key_store]} == "none" ]]; then
|
||||||
|
echo "read -p \"Change PW for disk? y/n \" answer" > /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
echo "if [ \"\${answer}\" = \"y\" ]; then" >> /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
echo " while ! cryptsetup luksChangeKey /dev/disk/by-uuid/${cfg[partuuid]}; do" >> /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
echo " echo \"Again, please\"" >> /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
echo " done" >> /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
echo " rm -rf /etc/runit/core-services/99-changepwdisk.sh" >> /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
echo "fi" >> /etc/runit/core-services/99-changepwdisk.sh
|
||||||
|
|
||||||
|
echo "read -p \"Change PW for ${users[name1]}? y/n \" answer" > /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
echo "if [ \"\${answer}\" = \"y\" ]; then" >> /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
echo " while ! passwd ${users[name1]}; do" >> /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
echo " echo \"Again, please\"" >> /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
echo " done" >> /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
echo " rm -rf /etc/runit/core-services/99-changepwuser.sh" >> /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
echo "fi" >> /etc/runit/core-services/99-changepwuser.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "transaction_log /var/log/btrbk.log" > /etc/btrbk/btrbk.conf
|
||||||
|
echo "lockfile /tmp/btrbk.lock" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo "incremental yes" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo "btrfs_commit_delete after" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo "timestamp_format long" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo "noauto yes" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo "volume /var/lib/backup/quelle/" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo " group snapshot all" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo " snapshot_dir snapshot" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo " snapshot_preserve_min 4h" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo " snapshot_preserve no " >> /etc/btrbk/btrbk.conf
|
||||||
|
echo " subvolume void-rootfs" >> /etc/btrbk/btrbk.conf
|
||||||
|
echo " subvolume home" >> /etc/btrbk/btrbk.conf
|
||||||
|
|
||||||
|
mkdir -p /var/spool/cron/
|
||||||
|
echo "0 */2 * * * /usr/bin/btrbk -q run snapshot" >> /var/spool/cron/root
|
||||||
|
|
||||||
|
cat << 'EOF' > /usr/local/bin/voidupdate
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
RESTART=
|
||||||
|
echo "Synchronisiere Repositorys"
|
||||||
|
xbps-install -S > /dev/null
|
||||||
|
|
||||||
|
mapfile -t updatedpkgs < <(xbps-install -un|awk '{print $1}')
|
||||||
|
if [[ "${#updatedpkgs[@]}" -eq 0 ]]; then
|
||||||
|
echo "Keine Updates"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Entferne nicht benutzte Pakete"
|
||||||
|
xbps-remove -oy > /dev/null
|
||||||
|
echo "Räume den Cache auf"
|
||||||
|
xbps-remove -Oy > /dev/null
|
||||||
|
echo "Installiere Updates"
|
||||||
|
xbps-install -u
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$(xcheckrestart)" ]]; then
|
||||||
|
RESTART=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in "${updatedpkgs[@]}"; do
|
||||||
|
if grep "^linux-" <<< "${i}"; then
|
||||||
|
vkpurge list | head -n -1 | xargs -r vkpurge rm
|
||||||
|
RESTART=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "${RESTART}" ]]; then
|
||||||
|
echo ""; echo "Bitte den Computer neu starten."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Update fertig."
|
||||||
|
EOF
|
||||||
|
|
||||||
|
module end
|
|
@ -0,0 +1,2 @@
|
||||||
|
addpkg "grub"
|
||||||
|
|
|
@ -11,13 +11,11 @@ if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${cfg[fde_key_store]}" == "initramfs" ]]; then
|
if [[ ! -f /boot/volume.key ]] && [[ ! "${cfg[fde_key_store]}" == "twice" ]] && [[ ! "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
dd bs=1 count=64 if=/dev/urandom of=/boot/volume.key
|
dd bs=1 count=64 if=/dev/urandom of=/boot/volume.key
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksAddKey "${target_partition_tmp}" /boot/volume.key -d -
|
echo -n "${cfg[diskpw]}" | cryptsetup luksAddKey "${cfg[diskname]}${cfg[target_part]}" /boot/volume.key -d -
|
||||||
chmod 000 /boot/volume.key
|
chmod 000 /boot/volume.key
|
||||||
chmod -R g-rwx,o-rwx /boot
|
chmod -R g-rwx,o-rwx /boot
|
||||||
echo 'install_items+=" /boot/volume.key /etc/crypttab "' > /etc/dracut.conf.d/crypt-ssh.conf
|
|
||||||
echo "voidluks-${diskid} UUID=${cfg[partuuid]} /boot/volume.key luks" > /etc/crypttab
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -34,13 +32,11 @@ if [[ "${cfg[hibernate]}" == "1" ]]; then
|
||||||
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT/s/=\"/=\"resume=UUID=${cfg[swapuuid]} /" /etc/default/grub
|
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT/s/=\"/=\"resume=UUID=${cfg[swapuuid]} /" /etc/default/grub
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#if [[ "${cfg[fde_key_store]}" == "twice" ]] || [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
if [[ "${cfg[fde_key_store]}" == "initramfs" ]]; then
|
||||||
# echo "voidluks-${diskid} UUID=${cfg[partuuid]} none luks" > /etc/crypttab
|
mkdir -p /etc/dracut.conf.d/
|
||||||
#fi
|
echo 'install_items+=" /boot/volume.key /etc/crypttab "' > /etc/dracut.conf.d/crypt-ssh.conf
|
||||||
|
echo "voidluks-${diskid} UUID=${cfg[partuuid]} /boot/volume.key luks" > /etc/crypttab
|
||||||
if ! grep -q "dark-gray/black" /etc/default/grub; then
|
|
||||||
echo "GRUB_COLOR_NORMAL=\"dark-gray/black\"" >> /etc/default/grub
|
|
||||||
echo "GRUB_COLOR_HIGHLIGHT=\"light-red/black\"" >> /etc/default/grub
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
module end
|
module end
|
|
@ -0,0 +1,7 @@
|
||||||
|
module start "bootloader" "Post Bootloader"
|
||||||
|
|
||||||
|
|
||||||
|
grub-install "${cfg[diskname]}"
|
||||||
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
|
||||||
|
module end
|
|
@ -0,0 +1,53 @@
|
||||||
|
module "start" "de" "Desktopenvironment Configure"
|
||||||
|
|
||||||
|
setconf "add" "gfx_system" "xorg"
|
||||||
|
multiplechoice "de" "none" "kde5" "i3wm" "gnome" "none"
|
||||||
|
|
||||||
|
if [[ ! "${cfg[de]}" == "none" ]]; then
|
||||||
|
multiplechoice "gfx_hardware" "amd" "nvidia" "intel" "none"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${cfg[de]}" == "gnome" ]]; then
|
||||||
|
setconf add "dm" "gdm"
|
||||||
|
addpkg "${cfg[dm]}" "gnome" "seahorse" "seahorse-nautilus" "evince"
|
||||||
|
elif [[ "${cfg[de]}" == "kde5" ]]; then
|
||||||
|
setconf add "dm" "sddm"
|
||||||
|
addpkg "${cfg[dm]}" kde5 kde5-baseapps kdegraphics-thumbnailers ffmpegthumbs ark gwenview kmail okular spectacle kalarm kcalc print-manager
|
||||||
|
elif [[ "${cfg[de]}" == "i3wm" ]]; then
|
||||||
|
setconf add "dm" "lightdm"
|
||||||
|
addpkg lightdm lightdm-gtk3-greeter i3-gaps i3lock-color i3status xfce4-terminal dmenu rofi pcmanfm dunst elogind gvfs gvfs-afc gvfs-afp gvfs-cdda paprefs pavucontrol gvfs-gphoto2 gvfs-mtp gvfs-smb xss-lock claws-mail galculator-gtk3
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ ! "${cfg[de]}" == "none" ]]; then
|
||||||
|
servicesenable "${cfg[dm]}" "dbus"
|
||||||
|
addpkg cups cups-filters gutenprint hplip foomatic-db
|
||||||
|
|
||||||
|
addpkg "firefox-i18n-de" "thunderbird-i18n-de"
|
||||||
|
|
||||||
|
addpkg "aspell-de" "gspell"
|
||||||
|
|
||||||
|
addpkg "alsa-utils" alsa-plugins-pulseaudio pulseaudio
|
||||||
|
|
||||||
|
addpkg "NetworkManager"
|
||||||
|
|
||||||
|
servicesenable "dbus" "NetworkManager" "alsa" "cupsd"
|
||||||
|
|
||||||
|
servicesdisable "acpid"
|
||||||
|
|
||||||
|
addpkg xorg-minimal xorg-fonts mesa-dri vulkan-loader xorg-apps
|
||||||
|
|
||||||
|
ignorepkg "font-adobe-75dpi" "font-adobe-100dpi"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${cfg[gfx_hardware]}" == "amd" ]]; then
|
||||||
|
addpkg mesa-vulkan-radeon xf86-video-amdgpu mesa-vaapi mesa-vdpau
|
||||||
|
elif [[ "${cfg[gfx_hardware]}" == "intel" ]]; then
|
||||||
|
addpkg mesa-vulkan-intel xf86-video-intel intel-video-accel
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module "end"
|
|
@ -11,6 +11,9 @@ fi
|
||||||
|
|
||||||
|
|
||||||
if [[ ! "${cfg[de]}" == "none" ]]; then
|
if [[ ! "${cfg[de]}" == "none" ]]; then
|
||||||
|
test -f "${modules}"/"${modulename}".d/install/system/"${cfg[gfx_system]}".mod && source "${modules}"/"${modulename}".d/install/system/"${cfg[gfx_system]}".mod
|
||||||
|
test -f /etc/locale-user.conf && cp "${dest}"/etc/locale-user.conf "${dest}"/etc/sv/${cfg[dm]}/conf
|
||||||
|
|
||||||
[[ ! -h /etc/fonts/conf.d/70-no-bitmaps.conf ]] && ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf "${dest}"/etc/fonts/conf.d/
|
[[ ! -h /etc/fonts/conf.d/70-no-bitmaps.conf ]] && ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf "${dest}"/etc/fonts/conf.d/
|
||||||
|
|
||||||
mkdir -p /etc/X11/xorg.conf.d
|
mkdir -p /etc/X11/xorg.conf.d
|
|
@ -0,0 +1 @@
|
||||||
|
addpkg croc thunderbird-i18n-de eclipse geany geany-plugins geany-plugins-extra syncthing ssr vlc libreoffice libreoffice-i18n-de chromium gimp mumble torbrowser-launcher texstudio
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
if yesno "Enable sshd?" y; then
|
||||||
|
servicesenable sshd
|
||||||
|
fi
|
|
@ -16,9 +16,6 @@ for i in $(find /dev/disk/by-id/ -type l -printf "%P\n"|grep -v "part" |tac); do
|
||||||
if [[ "${name}" == *"/dev/sr"* ]]; then
|
if [[ "${name}" == *"/dev/sr"* ]]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if [[ ! "${i}" == "usb"* ]] && [[ ! "${i}" == "ata"* ]] && [[ ! "${i}" == "nvm"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
index=$(( index + 1 ))
|
index=$(( index + 1 ))
|
||||||
size="$(fdisk -l "${name}" | head -n1 | awk '{print $3}')"
|
size="$(fdisk -l "${name}" | head -n1 | awk '{print $3}')"
|
||||||
size=$(awk "BEGIN { printf(\"%.0f\n\", ${size}); }")
|
size=$(awk "BEGIN { printf(\"%.0f\n\", ${size}); }")
|
||||||
|
@ -113,29 +110,41 @@ if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
cfg+=( [diskpw]="${output}" )
|
cfg+=( [diskpw]="${output}" )
|
||||||
fi
|
fi
|
||||||
|
|
||||||
hibernate=0
|
|
||||||
if check yesno "Do you want to hibernate?" "y"; then
|
if check yesno "Do you want to hibernate?" "y"; then
|
||||||
hibernate=1
|
hibernate=1
|
||||||
|
setconf "add" "hibernate" "1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ramsize="$(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))"
|
ramsize="$(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))"
|
||||||
ramsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}/1024); }")"
|
ramsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}/1024); }")"
|
||||||
|
|
||||||
if [[ "${ramsize}" -gt "0" ]] && [[ "${ramsize}" -le "2" ]]; then
|
if [[ "${ramsize}" -le "2" ]]; then
|
||||||
test -z "${hibernate}" && swapsize="$(( ramsize * 2 ))"
|
test -z "${hibernate}" && swapsize="$(( ramsize * 2 ))"
|
||||||
test -z "${hibernate}" || swapsize="$(( ramsize * 3 ))"
|
test -z "${hibernate}" || swapsize="$(( ramsize * 3 ))"
|
||||||
elif [[ "${ramsize}" -gt "2" ]] && [[ "${ramsize}" -le "8" ]]; then
|
elif [[ "${ramsize}" -gt "2" ]] && [[ "${ramsize}" -le "7" ]]; then
|
||||||
test -z "${hibernate}" && swapsize="${ramsize}"
|
test -z "${hibernate}" && swapsize="${ramsize}"
|
||||||
test -z "${hibernate}" || swapsize="$(( ramsize * 2 ))"
|
test -z "${hibernate}" || swapsize="$(( ramsize * 2 ))"
|
||||||
elif [[ "${ramsize}" -gt "8" ]] && [[ "${ramsize}" -lt "15" ]]; then
|
elif [[ "${ramsize}" -gt "8" ]] && [[ "${ramsize}" -le "15" ]]; then
|
||||||
test -z "${hibernate}" && swapsize="${ramsize}"
|
test -z "${hibernate}" && swapsize="${ramsize}"
|
||||||
test -z "${hibernate}" || swapsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}*1.5); }")"
|
test -z "${hibernate}" || swapsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}*1.5); }")"
|
||||||
elif [[ "${ramsize}" -ge "15" ]]; then
|
elif [[ "${ramsize}" -gt "15" ]]; then
|
||||||
test -z "${hibernate}" && swapsize="4"
|
test -z "${hibernate}" && swapsize="4"
|
||||||
test -z "${hibernate}" || echo "hibernate not recommended, turning off" && hibernate="0" && swapsize="4"
|
test -z "${hibernate}" || read -p "hibernate not recommended, turning off" empty && hibernate=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
setconf "add" "hibernate" "${hibernate}"
|
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
|
echo Configure /boot
|
||||||
|
while input "Size in G?" "4"; do
|
||||||
|
if check num "${output}"; then
|
||||||
|
bootsize="${output}"
|
||||||
|
setconf "add" "bootsize" "${output}"
|
||||||
|
setconf "add" "target_part" "2"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
setconf "add" "target_part" "1"
|
||||||
|
fi
|
||||||
|
|
||||||
echo Configure rootfssize
|
echo Configure rootfssize
|
||||||
while input "Size in G? [$(( disk[size] - swapsize - bootsize ))|rest]" "rest"; do
|
while input "Size in G? [$(( disk[size] - swapsize - bootsize ))|rest]" "rest"; do
|
||||||
|
@ -150,11 +159,12 @@ while input "Size in G? [$(( disk[size] - swapsize - bootsize ))|rest]" "rest";
|
||||||
done
|
done
|
||||||
|
|
||||||
setconf "add" "fde_key_store" "${cfg[fde_key_store]}"
|
setconf "add" "fde_key_store" "${cfg[fde_key_store]}"
|
||||||
|
setconf "add" "fde_keystore" "${cfg[fde_key_store]}"
|
||||||
|
setconf "add" "FDE_KEY_STORE" "${cfg[fde_key_store]}"
|
||||||
setconf "add" "diskid" "${disk[id]}"
|
setconf "add" "diskid" "${disk[id]}"
|
||||||
setconf "add" "swapsize" "${swapsize}"
|
setconf "add" "swapsize" "${swapsize}"
|
||||||
setconf "add" "rootfssize" "${rootfssize}"
|
setconf "add" "rootfssize" "${rootfssize}"
|
||||||
setconf "add" "wipe" "${cfg[wipe]}"
|
setconf "add" "wipe" "${cfg[wipe]}"
|
||||||
setconf "add" "diskname" "${disk[name]}"
|
setconf "add" "diskname" "${disk[name]}"
|
||||||
setconf "add" "bootsize" "4"
|
|
||||||
#setconf "add" "target_part" "2"
|
|
||||||
|
|
||||||
|
module end
|
|
@ -2,51 +2,37 @@ if ! yesno "nun gehts los, sicher?" y; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
module start "disk" "Partition disk"
|
||||||
|
|
||||||
|
|
||||||
|
#umounter "${dest}" || exit
|
||||||
|
|
||||||
|
#if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
|
# addpkg cryptsetup
|
||||||
|
#fi
|
||||||
|
|
||||||
diskid="${cfg[diskid]//-/_}"
|
diskid="${cfg[diskid]//-/_}"
|
||||||
index=1
|
if [[ -n "${cfg[wipe]}" ]]; then
|
||||||
|
echo "Formatting disk"
|
||||||
echo "Formatting disk"
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
module start "disk" "Partition disk . UEFI"
|
|
||||||
echo "g
|
|
||||||
n
|
|
||||||
1
|
|
||||||
|
|
||||||
+1G
|
|
||||||
t
|
|
||||||
1
|
|
||||||
w
|
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
|
||||||
efipart="${cfg[diskname]}${index}"
|
|
||||||
index=$(( index + 1 ))
|
|
||||||
else
|
|
||||||
module start "disk" "Partition disk . BIOS"
|
|
||||||
echo "o
|
echo "o
|
||||||
w
|
w
|
||||||
q" | fdisk -w always "${cfg[diskname]}" > /dev/null
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
fi
|
fi
|
||||||
sleep 2
|
|
||||||
|
|
||||||
|
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
echo "create bootpartition"
|
echo "create bootpartition"
|
||||||
target_boot="${cfg[diskname]}${index}"
|
target_boot="${cfg[diskname]}1"
|
||||||
index=$(( index + 1 ))
|
echo "n
|
||||||
echo "n
|
p
|
||||||
p
|
1
|
||||||
1
|
|
||||||
|
+${cfg[bootsize]}G
|
||||||
+${cfg[bootsize]}G
|
a
|
||||||
a
|
w
|
||||||
w
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
sleep 2
|
target_partition_tmp="${cfg[diskname]}2"
|
||||||
|
echo "create rootfs"
|
||||||
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
|
||||||
target_partition_tmp="${cfg[diskname]}${index}"
|
|
||||||
index=$(( index + 1 ))
|
|
||||||
echo "create rootfs"
|
|
||||||
echo "n
|
echo "n
|
||||||
p
|
p
|
||||||
2
|
2
|
||||||
|
@ -54,9 +40,9 @@ if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
|
|
||||||
w
|
w
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
target_partition_tmp="${cfg[diskname]}${index}"
|
target_partition_tmp="${cfg[diskname]}2"
|
||||||
echo "create rootfs with a specific size"
|
echo "create rootfs with a specific size"
|
||||||
echo "n
|
echo "n
|
||||||
p
|
p
|
||||||
2
|
2
|
||||||
|
@ -64,60 +50,63 @@ elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
+${rootfssize}G
|
+${rootfssize}G
|
||||||
w
|
w
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
|
target_partition_tmp="${cfg[diskname]}1"
|
||||||
|
echo "create rootfs without boot"
|
||||||
|
echo "n
|
||||||
|
p
|
||||||
|
1
|
||||||
|
|
||||||
|
|
||||||
|
a
|
||||||
|
w
|
||||||
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
|
target_partition_tmp="${cfg[diskname]}1"
|
||||||
|
echo "create rootfs with a specific size without boot"
|
||||||
|
echo "n
|
||||||
|
p
|
||||||
|
1
|
||||||
|
|
||||||
|
+${rootfssize}G
|
||||||
|
a
|
||||||
|
w
|
||||||
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
sleep 2
|
|
||||||
|
|
||||||
target_partition="${target_partition_tmp}"
|
target_partition="${target_partition_tmp}"
|
||||||
if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
echo -n "${cfg[diskpw]}" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
||||||
sleep 2
|
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
echo -n "${cfg[diskpw]}" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
||||||
sleep 2
|
|
||||||
#echo -n "oem" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
#echo -n "oem" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
||||||
#echo -n "oem" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
#echo -n "oem" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
||||||
target_partition="/dev/mapper/voidluks-${diskid}"
|
target_partition="/dev/mapper/voidluks-${diskid}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkswap "${target_partition}"
|
mkswap "${target_partition}"
|
||||||
sleep 2
|
|
||||||
vgcreate -q -f "voidvg.${diskid}" "${target_partition}" || exit 1
|
vgcreate -q -f "voidvg.${diskid}" "${target_partition}" || exit 1
|
||||||
sleep 2
|
|
||||||
lvcreate -q -y --name swap -L "${cfg[swapsize]}"G "voidvg.${diskid}"
|
lvcreate -q -y --name swap -L "${cfg[swapsize]}"G "voidvg.${diskid}"
|
||||||
sleep 2
|
|
||||||
lvcreate -q -y --name root -l 100%FREE "voidvg.${diskid}"
|
lvcreate -q -y --name root -l 100%FREE "voidvg.${diskid}"
|
||||||
sleep 2
|
|
||||||
mkfs.btrfs -q -f "/dev/mapper/voidvg.${diskid}-root"
|
mkfs.btrfs -q -f "/dev/mapper/voidvg.${diskid}-root"
|
||||||
|
|
||||||
mkswap "/dev/mapper/voidvg.${diskid}-swap"
|
mkswap "/dev/mapper/voidvg.${diskid}-swap"
|
||||||
|
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"
|
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"
|
||||||
btrfs subvol create "${dest}/rootfs"
|
btrfs subvol create "${dest}/void-rootfs"
|
||||||
btrfs subvol create "${dest}/homefs"
|
btrfs subvol create "${dest}/home"
|
||||||
mkdir -p "${dest}/system/snapshots/update" "${dest}/system/snapshots/regular" "${dest}/system/backup"
|
mkdir -p "${dest}/snapshot" "${dest}/backup"
|
||||||
|
|
||||||
umount "${dest}"
|
umount "${dest}"
|
||||||
|
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}" -o subvol=void-rootfs
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}" -o subvol=rootfs
|
for i in boot home dev proc sys tmp etc var/lib/backup/quelle var/db; do mkdir -p "${dest}/${i}"; done
|
||||||
for i in boot home dev proc sys tmp etc var/lib/backup/quelle/rootfs var/lib/backup/ziel var/db; do mkdir -p "${dest}/${i}"; done
|
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"/home -o subvol=home
|
||||||
|
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"/home -o subvol=homefs
|
|
||||||
mkdir -p "${dest}/var/lib/backup/quelle/bootfs"
|
|
||||||
|
|
||||||
mkfs.btrfs -q -f "${target_boot}"
|
|
||||||
mount "${target_boot}" "${dest}/boot"
|
|
||||||
btrfs subvol create "${dest}/boot/bootfs"
|
|
||||||
mkdir -p "${dest}/boot/system/snapshots/update" "${dest}/boot/system/snapshots/regular" "${dest}/boot/system/backup"
|
|
||||||
umount "${dest}/boot"
|
|
||||||
|
|
||||||
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
mount "${target_boot}" "${dest}/boot" -o subvol=bootfs
|
mkfs.btrfs -q -f "${target_boot}"
|
||||||
|
mount "${target_boot}" "${dest}/boot"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
mkdir -p "${dest}/boot/efi"
|
|
||||||
mkfs.vfat -F32 "${efipart}"
|
|
||||||
mount "${efipart}" "${dest}/boot/efi"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for dir in dev proc sys run; do mkdir -p "${dest}"/$dir ; mount --rbind /$dir "${dest}"/$dir ; mount --make-rslave "${dest}"/$dir ; done
|
for dir in dev proc sys run; do mkdir -p "${dest}"/$dir ; mount --rbind /$dir "${dest}"/$dir ; mount --make-rslave "${dest}"/$dir ; done
|
||||||
|
|
||||||
setconf add rootuuid "$(blkid -o value -s UUID ${target_partition})"
|
setconf add rootuuid "$(blkid -o value -s UUID ${target_partition})"
|
|
@ -0,0 +1,170 @@
|
||||||
|
module start "disk" "Partition disk"
|
||||||
|
|
||||||
|
|
||||||
|
# find all disks
|
||||||
|
declare -A disk_tmp=()
|
||||||
|
declare -A disk=()
|
||||||
|
index=0
|
||||||
|
for i in $(find /dev/disk/by-id/ -type l -printf "%P\n"|grep -v "part" |tac); do
|
||||||
|
name="$(readlink -f /dev/disk/by-id/"${i}")"
|
||||||
|
if [[ "${name}" =~ *"^[0-9]+$"* ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [[ "${name}" == *"dm"* ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [[ "${name}" == *"/dev/sr"* ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
index=$(( index + 1 ))
|
||||||
|
size="$(fdisk -l "${name}" | head -n1 | awk '{print $3}')"
|
||||||
|
size=$(awk "BEGIN { printf(\"%.0f\n\", ${size}); }")
|
||||||
|
size="$(( size - 1 ))"
|
||||||
|
disk_tmp+=( [${index}.id]="${i}" [${index}.name]="${name}" [${index}.size]="${size}" )
|
||||||
|
done
|
||||||
|
disk_tmp+=( [count]="${index}" )
|
||||||
|
|
||||||
|
# show devices
|
||||||
|
echo "Devices:"
|
||||||
|
for i in $(seq 1 "${disk_tmp[count]}"); do
|
||||||
|
echo "${disk_tmp[${i}.id]}" "${disk_tmp[${i}.name]}" "${disk_tmp[${i}.size]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# if set device on commandline, use this as default
|
||||||
|
if [[ -z "${extern_device}" ]]; then
|
||||||
|
device="${disk_tmp[1.id]}"
|
||||||
|
else
|
||||||
|
device="${extern_device}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# choose device
|
||||||
|
found=""
|
||||||
|
while input "Which Device?" "${device}"; do
|
||||||
|
test -z "${output}" && output="${default}"
|
||||||
|
for i in $(seq 1 "${disk_tmp[count]}"); do
|
||||||
|
if [[ "${disk_tmp[${i}.id]}" == "${output}" ]] || [[ "${disk_tmp[${i}.name]}" == "${output}" ]]; then
|
||||||
|
found=1
|
||||||
|
disk+=( [id]="${disk_tmp[${i}.id]}" )
|
||||||
|
disk+=( [name]="${disk_tmp[${i}.name]}" )
|
||||||
|
disk+=( [size]="${disk_tmp[${i}.size]}" )
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[[ "${found}" == "1" ]] && break
|
||||||
|
echo "${output} not found"
|
||||||
|
done
|
||||||
|
|
||||||
|
# if there are partitions, show them and warn
|
||||||
|
# user choose between exit und wipe
|
||||||
|
partitions=""
|
||||||
|
index=""
|
||||||
|
for i in "$(lsblk -n -l "${disk[name]}" | tail -n +2 | grep part)"; do
|
||||||
|
echo "${i}"
|
||||||
|
index=$(( index + 1 ))
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "${#partitions[@]}" -gt 0 ]]; then
|
||||||
|
echo "there are partitions"
|
||||||
|
while input "wipe or quit?" "wipe"; do
|
||||||
|
case "${output}" in
|
||||||
|
w*|*p*|*W*|*P*)
|
||||||
|
setconf add wipe "1"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
q*|*u*|*t*|*Q*|*U*|*T*)
|
||||||
|
echo mount / under /mnt
|
||||||
|
echo mount /boot under /mnt/boot
|
||||||
|
echo mount /home under /mnt/home
|
||||||
|
echo create swap
|
||||||
|
echo start again with -m
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*) echo "please enter wipe or quit"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "######"
|
||||||
|
echo "With Full Disk Encryption the whole disk will be encrypted,"
|
||||||
|
echo "including /boot. Unlike Ubuntu."
|
||||||
|
echo "If you choose FDE, you have to enter the password for the"
|
||||||
|
echo "disc twice, unless you save the key on an usbstick or"
|
||||||
|
echo "include it into initramfs."
|
||||||
|
echo "If its included, remember: grub only knows us keylayout: no umlauts"
|
||||||
|
echo "If you choose to enter once, kernel (/boot) is unencrypted on disk."
|
||||||
|
echo "You can turn off encryption."
|
||||||
|
echo "######"
|
||||||
|
|
||||||
|
multiplechoice "fde_key_store" "initramfs" "usb" "once" "twice" "notencrypted"
|
||||||
|
|
||||||
|
if [[ "${cfg[fde_key_store]}" == "notencrypted" ]]; then
|
||||||
|
setconf add "fde_key_store" "none"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
|
addpkg "cryptsetup"
|
||||||
|
#input_pw "Disk Password"
|
||||||
|
output="oem"
|
||||||
|
#setconf "add" "diskpw" "${output}"
|
||||||
|
cfg+=( [diskpw]="${output}" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check yesno "Do you want to hibernate?" "y"; then
|
||||||
|
hibernate=1
|
||||||
|
setconf "add" "hibernate" "1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ramsize="$(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))"
|
||||||
|
ramsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}/1024); }")"
|
||||||
|
|
||||||
|
if [[ "${ramsize}" -le "2" ]]; then
|
||||||
|
test -z "${hibernate}" && swapsize="$(( ramsize * 2 ))"
|
||||||
|
test -z "${hibernate}" || swapsize="$(( ramsize * 3 ))"
|
||||||
|
elif [[ "${ramsize}" -gt "2" ]] && [[ "${ramsize}" -le "7" ]]; then
|
||||||
|
test -z "${hibernate}" && swapsize="${ramsize}"
|
||||||
|
test -z "${hibernate}" || swapsize="$(( ramsize * 2 ))"
|
||||||
|
elif [[ "${ramsize}" -gt "8" ]] && [[ "${ramsize}" -le "15" ]]; then
|
||||||
|
test -z "${hibernate}" && swapsize="${ramsize}"
|
||||||
|
test -z "${hibernate}" || swapsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}*1.5); }")"
|
||||||
|
elif [[ "${ramsize}" -gt "15" ]]; then
|
||||||
|
test -z "${hibernate}" && swapsize="4"
|
||||||
|
test -z "${hibernate}" || read -p "hibernate not recommended, turning off" empty && hibernate=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
|
echo Configure /boot
|
||||||
|
while input "Size in G?" "4"; do
|
||||||
|
if check num "${output}"; then
|
||||||
|
bootsize="${output}"
|
||||||
|
setconf "add" "bootsize" "${output}"
|
||||||
|
setconf "add" "target_part" "2"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
setconf "add" "target_part" "1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Configure rootfssize
|
||||||
|
while input "Size in G? [$(( disk[size] - swapsize - bootsize ))|rest]" "rest"; do
|
||||||
|
test -z "${output}" && output="${default}"
|
||||||
|
case "${output}" in
|
||||||
|
rest) rootfssize="${output}" && break ;;
|
||||||
|
esac
|
||||||
|
if [[ "${output}" =~ ^[0-9]+$ ]] && [[ "${output}" -le "$(( disk[size] - cfg[swapsize] - cfg[bootsize] ))" ]]; then
|
||||||
|
rootfssize="${output}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
setconf "add" "fde_key_store" "${cfg[fde_key_store]}"
|
||||||
|
setconf "add" "fde_keystore" "${cfg[fde_key_store]}"
|
||||||
|
setconf "add" "FDE_KEY_STORE" "${cfg[fde_key_store]}"
|
||||||
|
setconf "add" "diskid" "${disk[id]}"
|
||||||
|
setconf "add" "swapsize" "${swapsize}"
|
||||||
|
setconf "add" "rootfssize" "${rootfssize}"
|
||||||
|
setconf "add" "wipe" "${cfg[wipe]}"
|
||||||
|
setconf "add" "diskname" "${disk[name]}"
|
||||||
|
|
||||||
|
module end
|
|
@ -2,48 +2,50 @@ if ! yesno "nun gehts los, sicher?" y; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
module start "disk" "Partition disk . UEFI"
|
module start "disk" "Partition disk"
|
||||||
|
|
||||||
|
|
||||||
|
#umounter "${dest}" || exit
|
||||||
|
|
||||||
|
#if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
|
# addpkg cryptsetup
|
||||||
|
#fi
|
||||||
|
|
||||||
diskid="${cfg[diskid]//-/_}"
|
diskid="${cfg[diskid]//-/_}"
|
||||||
index=1
|
if [[ -n "${cfg[wipe]}" ]]; then
|
||||||
|
echo "Formatting disk"
|
||||||
|
echo "g
|
||||||
|
n
|
||||||
|
1
|
||||||
|
|
||||||
echo "Formatting disk"
|
+1G
|
||||||
echo "g
|
t
|
||||||
n
|
1
|
||||||
1
|
w
|
||||||
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
+1G
|
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
t
|
echo "create bootpartition"
|
||||||
1
|
target_boot="${cfg[diskname]}2"
|
||||||
w
|
echo "n
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
2
|
||||||
efipart="${cfg[diskname]}${index}"
|
|
||||||
index=$(( index + 1 ))
|
+${cfg[bootsize]}G
|
||||||
sleep 2
|
w
|
||||||
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
echo "create bootpartition"
|
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
target_boot="${cfg[diskname]}${index}"
|
target_partition_tmp="${cfg[diskname]}3"
|
||||||
index=$(( index + 1 ))
|
echo "create rootfs"
|
||||||
echo "n
|
|
||||||
2
|
|
||||||
|
|
||||||
+${cfg[bootsize]}G
|
|
||||||
w
|
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
|
||||||
target_partition_tmp="${cfg[diskname]}${index}"
|
|
||||||
echo "create rootfs"
|
|
||||||
echo "n
|
echo "n
|
||||||
3
|
3
|
||||||
|
|
||||||
|
|
||||||
w
|
w
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
target_partition_tmp="${cfg[diskname]}${index}"
|
target_partition_tmp="${cfg[diskname]}3"
|
||||||
echo "create rootfs with a specific size"
|
echo "create rootfs with a specific size"
|
||||||
echo "n
|
echo "n
|
||||||
p
|
p
|
||||||
3
|
3
|
||||||
|
@ -51,53 +53,60 @@ elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
+${rootfssize}G
|
+${rootfssize}G
|
||||||
w
|
w
|
||||||
q" | fdisk "${cfg[diskname]}" > /dev/null
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
|
target_partition_tmp="${cfg[diskname]}2"
|
||||||
|
echo "create rootfs without boot"
|
||||||
|
echo "n
|
||||||
|
2
|
||||||
|
|
||||||
|
|
||||||
|
w
|
||||||
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
||||||
|
target_partition_tmp="${cfg[diskname]}2"
|
||||||
|
echo "create rootfs with a specific size without boot"
|
||||||
|
echo "n
|
||||||
|
p
|
||||||
|
2
|
||||||
|
|
||||||
|
+${rootfssize}G
|
||||||
|
w
|
||||||
|
q" | fdisk "${cfg[diskname]}" > /dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
sleep 2
|
|
||||||
|
|
||||||
target_partition="${target_partition_tmp}"
|
target_partition="${target_partition_tmp}"
|
||||||
if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
echo -n "${cfg[diskpw]}" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
||||||
sleep 2
|
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
echo -n "${cfg[diskpw]}" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
||||||
sleep 2
|
|
||||||
#echo -n "oem" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
#echo -n "oem" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
||||||
#echo -n "oem" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
#echo -n "oem" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
||||||
target_partition="/dev/mapper/voidluks-${diskid}"
|
target_partition="/dev/mapper/voidluks-${diskid}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkswap "${target_partition}"
|
mkswap "${target_partition}"
|
||||||
sleep 2
|
|
||||||
vgcreate -q -f "voidvg.${diskid}" "${target_partition}" || exit 1
|
vgcreate -q -f "voidvg.${diskid}" "${target_partition}" || exit 1
|
||||||
sleep 2
|
|
||||||
lvcreate -q -y --name swap -L "${cfg[swapsize]}"G "voidvg.${diskid}"
|
lvcreate -q -y --name swap -L "${cfg[swapsize]}"G "voidvg.${diskid}"
|
||||||
sleep 2
|
|
||||||
lvcreate -q -y --name root -l 100%FREE "voidvg.${diskid}"
|
lvcreate -q -y --name root -l 100%FREE "voidvg.${diskid}"
|
||||||
sleep 2
|
|
||||||
mkfs.btrfs -q -f "/dev/mapper/voidvg.${diskid}-root"
|
mkfs.btrfs -q -f "/dev/mapper/voidvg.${diskid}-root"
|
||||||
mkswap "/dev/mapper/voidvg.${diskid}-swap"
|
mkswap "/dev/mapper/voidvg.${diskid}-swap"
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"
|
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"
|
||||||
btrfs subvol create "${dest}/rootfs"
|
btrfs subvol create "${dest}/void-rootfs"
|
||||||
btrfs subvol create "${dest}/homefs"
|
btrfs subvol create "${dest}/home"
|
||||||
mkdir -p "${dest}/system/snapshots/update" "${dest}/system/snapshots/regular" "${dest}/system/backup"
|
mkdir -p "${dest}/snapshot"
|
||||||
|
|
||||||
umount "${dest}"
|
umount "${dest}"
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}" -o subvol=rootfs
|
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}" -o subvol=void-rootfs
|
||||||
for i in boot home dev proc sys tmp etc var/lib/backup/quelle/rootfs var/lib/backup/ziel var/db; do mkdir -p "${dest}/${i}"; done
|
for i in boot home dev proc sys tmp etc var/lib/backup/quelle var/db; do mkdir -p "${dest}/${i}"; done
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"/home -o subvol=homefs
|
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"/home -o subvol=home
|
||||||
mkdir -p "${dest}/var/lib/backup/quelle/bootfs"
|
|
||||||
mkfs.btrfs -q -f "${target_boot}"
|
|
||||||
mount "${target_boot}" "${dest}/boot"
|
|
||||||
btrfs subvol create "${dest}/boot/bootfs"
|
|
||||||
mkdir -p "${dest}/boot/system/snapshots/update" "${dest}/boot/system/snapshots/regular" "${dest}/boot/system/backup"
|
|
||||||
umount "${dest}/boot"
|
|
||||||
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
||||||
mount "${target_boot}" "${dest}/boot" -o subvol=bootfs
|
mkfs.btrfs -q -f "${target_boot}"
|
||||||
|
mount "${target_boot}" "${dest}/boot"
|
||||||
fi
|
fi
|
||||||
mkdir -p "${dest}/boot/efi"
|
|
||||||
mkfs.vfat -F32 "${efipart}"
|
|
||||||
mount "${efipart}" "${dest}/boot/efi"
|
|
||||||
|
|
||||||
for dir in dev proc sys run; do mkdir -p "${dest}"/$dir ; mount --rbind /$dir "${dest}"/$dir ; mount --make-rslave "${dest}"/$dir ; done
|
for dir in dev proc sys run; do mkdir -p "${dest}"/$dir ; mount --rbind /$dir "${dest}"/$dir ; mount --make-rslave "${dest}"/$dir ; done
|
||||||
|
|
||||||
setconf add rootuuid "$(blkid -o value -s UUID ${target_partition})"
|
setconf add rootuuid "$(blkid -o value -s UUID ${target_partition})"
|
|
@ -0,0 +1,8 @@
|
||||||
|
module "start" "laptop" "Laptopmode Configure"
|
||||||
|
|
||||||
|
if yesno "Is this a laptop?" "n"; then
|
||||||
|
setconf add "laptop" "1"
|
||||||
|
addpkg laptop-mode
|
||||||
|
fi
|
||||||
|
|
||||||
|
module end
|
|
@ -0,0 +1,9 @@
|
||||||
|
module start "laptop" "Laptopmode Install"
|
||||||
|
|
||||||
|
if [[ ! -z "${cfg[laptop]}" ]] && [[ "${cfg[de]}" == "none" ]]; then
|
||||||
|
echo "${modulename}"
|
||||||
|
#sed -i "/HandleLidSwitch/s/^#//g" "${dest}/etc/elogind/logind.conf"
|
||||||
|
#echo sed -i "/HandleLidSwitch/s/^#//g" "${dest}/etc/elogind/logind.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
module end
|
|
@ -0,0 +1,15 @@
|
||||||
|
module start "m" "pakete modul"
|
||||||
|
ignorepkg totem gnome-music htop avahi
|
||||||
|
addpkg bleachbit thunderbird-i18n-de pidgin pidgin-otr pidgin-gpg pidgin-libnotify gajim gajim-omemo python-Pillow gimp kdenlive VeraCrypt keepassx2 audacity libreoffice libreoffice-i18n-de mumble calibre chromium youtube-dl torbrowser-launcher tor
|
||||||
|
servicesdisable avahi-daemon
|
||||||
|
|
||||||
|
echo "sollte es netflix oder aehnliches gefragt sein, muss 'chromium-widevine' installiert werden"
|
||||||
|
echo "was meinst du mit festplattenanalyse? restplatzanzeige?"
|
||||||
|
echo "MAT und torbirdy fehlen noch"
|
||||||
|
echo "allerdings ist mat hoffnungslos veraltet und mat2 emfpehlen die entwickler nicht, da es beta ist und nicht sicher"
|
||||||
|
echo "'exiftool' ist da ein terminalprogramm das du dir anguggen solltest"
|
||||||
|
echo""
|
||||||
|
echo "verstanden?"
|
||||||
|
read
|
||||||
|
|
||||||
|
module end
|
|
@ -1,9 +0,0 @@
|
||||||
networkmanager="dhcpcd"
|
|
||||||
|
|
||||||
pkgs="void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree lvm2 cronie socklog-void ntp xtools wireguard-tools gnupg progress pwgen net-tools ncdu nmap mtr bind-utils iotop hdparm smartmontools htop git neovim btrbk croc grub-btrfs nano mbuffer cryptsetup psmisc pinentry-tty"
|
|
||||||
|
|
||||||
serviceenable="acpid cronie socklog-unix nanoklogd uuidd agetty-tty1 agetty-tty2 agetty-tty3 agetty-tty4"
|
|
||||||
|
|
||||||
servicedisable="agetty-tty6 agetty-tty5"
|
|
||||||
|
|
||||||
ignorepkgs="nvi gnupg"
|
|
|
@ -1,14 +0,0 @@
|
||||||
browser="firefox-i18n-de"
|
|
||||||
networkmanager="NetworkManager"
|
|
||||||
messenger="gajim-omemo python3-Pillow python3-Pygments"
|
|
||||||
office="libreoffice-i18n-de"
|
|
||||||
media="mpv"
|
|
||||||
|
|
||||||
spelling="aspell-de gspell"
|
|
||||||
alsa="alsa-utils alsa-plugins-pulseaudio pulseaudio"
|
|
||||||
xorg="xorg-minimal xorg-fonts mesa-dri vulkan-loader xorg-apps noto-fonts-emoji"
|
|
||||||
|
|
||||||
ignorepkgs="font-adobe-75dpi font-adobe-100dpi"
|
|
||||||
servicedisable="acpid"
|
|
||||||
serviceenable="dbus alsa"
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
email=thunderbird-i18n-de
|
|
||||||
terminal=gnome-terminal
|
|
||||||
imageviewer=eog
|
|
||||||
pdf=evince
|
|
||||||
filemanager=nautilus
|
|
||||||
archiver=file-roller
|
|
||||||
screenshot=gnome-screenshot
|
|
||||||
calc=gnome-calculator
|
|
||||||
pinentry=pinentry-gnome
|
|
||||||
keyring=gnome-keyring
|
|
||||||
gpg=seahorse
|
|
||||||
policykit=polkit-gnome
|
|
||||||
sshaskpass=gnome-ssh-askpass
|
|
||||||
dm=gdm
|
|
||||||
de=gnome
|
|
||||||
|
|
||||||
misc=""
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
email=claws-mail
|
|
||||||
terminal=xfce4-terminal
|
|
||||||
imageviewer=viewnior
|
|
||||||
pdf=mupdf
|
|
||||||
filemanager=pcmanfm
|
|
||||||
archiver=xarchiver
|
|
||||||
screenshot=maim
|
|
||||||
calc=galculator-gtk3
|
|
||||||
pinentry=pinentry-dmenu
|
|
||||||
keyring=gnome-keyring
|
|
||||||
gpg=gnome-keyring
|
|
||||||
sshaskpass=gnome-ssh-askpass
|
|
||||||
policykit=polkit-gnome
|
|
||||||
dm=lightdm
|
|
||||||
de=i3-gaps
|
|
||||||
|
|
||||||
misc="lightdm-gtk3-greeter i3lock-color i3status dmenu elogind dunst gvfs gvfs-afc gvfs-afp gvfs-cdda gvfs-gphoto2 gvfs-mtp gvfs-smb xss-lock paprefs pavucontrol network-manager-applet pamixer"
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
email=kmail
|
|
||||||
terminal=konsole
|
|
||||||
imageviewer=gwenview
|
|
||||||
pdf=okular
|
|
||||||
filemanager=dolphin
|
|
||||||
archiver=ark
|
|
||||||
screenshot=spectacle
|
|
||||||
calc=kcalc
|
|
||||||
pinentry=pinentry-qt
|
|
||||||
keyring=kwalletmanager
|
|
||||||
gpg=kleopatra
|
|
||||||
policykit=polkit-kde-agent
|
|
||||||
sshaskpass=ksshaskpass
|
|
||||||
dm=sddm
|
|
||||||
de=kde5
|
|
||||||
|
|
||||||
misc="kdegraphics-thumbnailers ffmpegthumbs print-manager plasma-browser-integration"
|
|
|
@ -1,3 +0,0 @@
|
||||||
printing="cups cups-filters gutenprint foomatic-db"
|
|
||||||
serviceenable="cupsd"
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
dir="/tmp/installer"
|
dir="/tmp/installer"
|
||||||
step="${dir}/step"
|
|
||||||
wrksrc="${dir}"/tmp
|
wrksrc="${dir}"/tmp
|
||||||
functions="${dir}/functions"
|
functions="${dir}/functions"
|
||||||
FILESDIR="${dir}/files"
|
modules="${dir}/modules"
|
||||||
|
config_mods="${modules}/config"
|
||||||
|
install_mods="${modules}/install"
|
||||||
|
chroot_mods="${modules}/chroot"
|
||||||
vars="${wrksrc}/vars"
|
vars="${wrksrc}/vars"
|
||||||
declare -A cfg=()
|
declare -A cfg=()
|
||||||
declare -A users=()
|
declare -A users=()
|
||||||
|
@ -27,11 +28,11 @@ for i in $(seq 0 "$(( max - 1 ))"); do
|
||||||
done
|
done
|
||||||
|
|
||||||
export run="install"
|
export run="install"
|
||||||
for i in $(find "${step}3" -mindepth 1 -maxdepth 1 -type f | sort -n ); do
|
for i in $(find "${modules}" -mindepth 1 -maxdepth 1 -type d | sort -n ); do
|
||||||
test -f "${i}" && source "${i}"
|
test -f "${i}"/install && source "${i}"/install
|
||||||
done
|
done
|
||||||
|
|
||||||
export run="post"
|
export run="post"
|
||||||
for i in $(find "${step}4" -mindepth 1 -maxdepth 1 -type f | sort -n); do
|
for i in $(find "${modules}" -mindepth 1 -maxdepth 1 -type d | sort -n); do
|
||||||
test -f "${i}" && source "${i}"
|
test -f "${i}"/post && source "${i}"/post
|
||||||
done
|
done
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
addpkg "grub-x86_64-efi"
|
|
||||||
else
|
|
||||||
addpkg "grub"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
while input "hostname?" "void"; do
|
|
||||||
if check alnum "${output}"; then
|
|
||||||
setconf add hostname "${output}"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
setconf add "lang" "de_DE"
|
|
||||||
setconf add "lang_console" "de-latin1-nodeadkeys"
|
|
||||||
setconf add "timezone" "Europe/Berlin"
|
|
||||||
|
|
||||||
setconf "add" "gfx_system" "xorg"
|
|
||||||
for i in $(find "${dir}/profiles/desktops" -type f); do
|
|
||||||
des+=( "$(basename $i)" )
|
|
||||||
done
|
|
||||||
|
|
||||||
multiplechoice "de" "none" "${des[@]}"
|
|
||||||
|
|
||||||
if [[ ! "${cfg[de]}" == "none" ]]; then
|
|
||||||
multiplechoice "gfx_hardware" "amd" "nvidia" "intel" "none"
|
|
||||||
if [[ "${cfg[gfx_hardware]}" == "amd" ]]; then
|
|
||||||
addpkg mesa-vulkan-radeon xf86-video-amdgpu mesa-vaapi mesa-vdpau
|
|
||||||
elif [[ "${cfg[gfx_hardware]}" == "intel" ]]; then
|
|
||||||
addpkg mesa-vulkan-intel xf86-video-intel intel-video-accel
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if yesno "Printing enabled?" "y"; then
|
|
||||||
source "${dir}/profiles/printing"
|
|
||||||
addpkg "${printing}"
|
|
||||||
servicesenable "${enable_service}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
source "${dir}/profiles/basesystem"
|
|
||||||
servicesenable "${serviceenable}"
|
|
||||||
servicesdisable "${servicedisable}"
|
|
||||||
addpkg "${pkgs}"
|
|
||||||
ignorepkg "${ignorepkgs}"
|
|
||||||
|
|
||||||
if [[ ! "${cfg[de]}" == "none" ]]; then
|
|
||||||
source "${dir}/profiles/desktop"
|
|
||||||
servicesenable "${serviceenable}"
|
|
||||||
servicesdisable "${servicedisable}"
|
|
||||||
ignorepkg "${ignorepkgs}"
|
|
||||||
|
|
||||||
source "${dir}/profiles/desktops/${cfg[de]}"
|
|
||||||
servicesenable "${dm}"
|
|
||||||
addpkg "${spelling}" "${alsa}" "${xorg}" "${browser}" "${mail}" "${messenger}" "${terminal}" "${imageviewer}" "${pdf}" "${filemanager}" "${archiver}" "${screenshot}" "${calc}" "${pinentry}" "${keyring}" "${gpg}" "${policykit}" "${sshaskpass}" "${office}" "${dm}" "${de}" "${networkmanager}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
servicesenable "{$networkmanager}"
|
|
|
@ -1,10 +0,0 @@
|
||||||
source "${dir}"/config
|
|
||||||
declare -f lastminute
|
|
||||||
if yesno "Lastminute Changes" y; then
|
|
||||||
lastminute
|
|
||||||
fi
|
|
||||||
declare -f os_config
|
|
||||||
if yesno "O's config?" y; then
|
|
||||||
os_config
|
|
||||||
fi
|
|
||||||
|
|
169
step2/10-disk
169
step2/10-disk
|
@ -1,169 +0,0 @@
|
||||||
if ! yesno "nun gehts los, sicher?" y; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
module start "disk" "Partition disk"
|
|
||||||
sleep=4
|
|
||||||
|
|
||||||
diskid="${cfg[diskid]//-/_}"
|
|
||||||
dodiskid="/dev/disk/by-id/${cfg[diskid]}"
|
|
||||||
|
|
||||||
index=1
|
|
||||||
|
|
||||||
echo "Formatting disk"
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
echo "UEFI Partition"
|
|
||||||
(echo "g";
|
|
||||||
echo "n";
|
|
||||||
echo "1";
|
|
||||||
echo "";
|
|
||||||
echo "+1G";
|
|
||||||
echo "t";
|
|
||||||
echo "1";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk "${dodiskid}" > /dev/null
|
|
||||||
sleep $sleep
|
|
||||||
efipart="${dodiskid}-part${index}"
|
|
||||||
index=$(( index + 1 ))
|
|
||||||
else
|
|
||||||
echo "BIOS Partition"
|
|
||||||
(echo "o";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
fi
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
|
|
||||||
|
|
||||||
echo "create bootpartition"
|
|
||||||
target_boot="${dodiskid}-part${index}"
|
|
||||||
index=$(( index + 1 ))
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
(echo "n";
|
|
||||||
echo "";
|
|
||||||
echo "";
|
|
||||||
echo "+4G";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
else
|
|
||||||
(echo "n";
|
|
||||||
echo "p";
|
|
||||||
echo "1";
|
|
||||||
echo "";
|
|
||||||
echo "+4G";
|
|
||||||
echo "a";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
fi
|
|
||||||
sleep $sleep
|
|
||||||
|
|
||||||
if [[ "${cfg[rootfssize]}" == "rest" ]]; then
|
|
||||||
target_partition_tmp="${dodiskid}-part${index}"
|
|
||||||
echo "create rootfs"
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
(echo "n";
|
|
||||||
echo "";
|
|
||||||
echo "";
|
|
||||||
echo "";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
else
|
|
||||||
(echo "n";
|
|
||||||
echo "p";
|
|
||||||
echo "2";
|
|
||||||
echo "";
|
|
||||||
echo "";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
fi
|
|
||||||
elif [[ ! "${cfg[rootfssize]}" == "rest" ]]; then
|
|
||||||
target_partition_tmp="${dodiskid}-part${index}"
|
|
||||||
echo "create rootfs with a specific size"
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
(echo "n";
|
|
||||||
echo "";
|
|
||||||
echo "";
|
|
||||||
echo "+${rootfssize}G";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
else
|
|
||||||
(echo "n";
|
|
||||||
echo "p";
|
|
||||||
echo "2";
|
|
||||||
echo "";
|
|
||||||
echo "+${rootfssize}G";
|
|
||||||
sleep $sleep;
|
|
||||||
echo "w") | fdisk -w always -W always "${dodiskid}" > /dev/null
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
sleep $sleep
|
|
||||||
|
|
||||||
target_partition="${target_partition_tmp}"
|
|
||||||
if [[ ! "${cfg[fde_key_store]}" == "none" ]]; then
|
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
echo -n "${cfg[diskpw]}" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
#echo -n "oem" | cryptsetup luksFormat --type luks1 "${target_partition}" -d -
|
|
||||||
#echo -n "oem" | cryptsetup luksOpen "${target_partition}" "voidluks-${diskid}" -d -
|
|
||||||
target_partition="/dev/mapper/voidluks-${diskid}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkswap "${target_partition}" || exit 1
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
vgcreate -q -f "voidvg.${diskid}" "${target_partition}" || exit 1
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
lvcreate -q -y --name swap -L "${cfg[swapsize]}"G "voidvg.${diskid}" || exit 1
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
lvcreate -q -y --name root -l 100%FREE "voidvg.${diskid}" || exit 1
|
|
||||||
sleep $sleep
|
|
||||||
sync
|
|
||||||
mkfs.btrfs -q -f "/dev/mapper/voidvg.${diskid}-root" || exit 1
|
|
||||||
|
|
||||||
mkswap "/dev/mapper/voidvg.${diskid}-swap" || exit 1
|
|
||||||
|
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}" || exit 1
|
|
||||||
btrfs subvol create "${dest}/rootfs"
|
|
||||||
btrfs subvol create "${dest}/homefs"
|
|
||||||
mkdir -p "${dest}/system/snapshots/update" "${dest}/system/snapshots/regular" "${dest}/system/backup"
|
|
||||||
umount "${dest}"
|
|
||||||
|
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}" -o subvol=rootfs
|
|
||||||
for i in boot home dev proc sys tmp etc var/lib/backup/quelle/rootfs var/lib/backup/ziel var/db; do mkdir -p "${dest}/${i}"; done
|
|
||||||
|
|
||||||
mount "/dev/mapper/voidvg.${diskid}-root" "${dest}"/home -o subvol=homefs
|
|
||||||
mkdir -p "${dest}/var/lib/backup/quelle/bootfs"
|
|
||||||
|
|
||||||
mkfs.btrfs -q -f "${target_boot}"
|
|
||||||
mount "${target_boot}" "${dest}/boot"
|
|
||||||
btrfs subvol create "${dest}/boot/bootfs"
|
|
||||||
mkdir -p "${dest}/boot/system/snapshots/update" "${dest}/boot/system/snapshots/regular" "${dest}/boot/system/backup"
|
|
||||||
umount "${dest}/boot"
|
|
||||||
|
|
||||||
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
|
||||||
mount "${target_boot}" "${dest}/boot" -o subvol=bootfs
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
mkdir -p "${dest}/boot/efi"
|
|
||||||
mkfs.vfat "${efipart}"
|
|
||||||
sleep $sleep
|
|
||||||
mount "${efipart}" "${dest}/boot/efi"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for dir in dev proc sys run; do mkdir -p "${dest}"/$dir ; mount --rbind /$dir "${dest}"/$dir ; mount --make-rslave "${dest}"/$dir ; done
|
|
||||||
|
|
||||||
setconf add partuuid "$(blkid -o value -s UUID ${target_partition_tmp})"
|
|
||||||
setconf add efiuuid "$(blkid -o value -s UUID ${efipart})"
|
|
||||||
[[ "${cfg[fde_key_store]}" == "once" ]] && setconf "add" "bootuuid" "$(blkid -o value -s UUID ${target_boot})"
|
|
||||||
setconf add swapuuid "$(blkid -o value -s UUID /dev/mapper/voidvg.${diskid}-swap)"
|
|
||||||
|
|
||||||
|
|
||||||
mount -t tmpfs -o size=512m tmpfs "${dest}"/tmp
|
|
||||||
|
|
||||||
module end
|
|
|
@ -1,138 +0,0 @@
|
||||||
module start "basesystem" "Install Basesystem"
|
|
||||||
|
|
||||||
diskid="${cfg[diskid]//-/_}"
|
|
||||||
|
|
||||||
chown root:root /
|
|
||||||
chmod 755 /
|
|
||||||
DESTDIR=
|
|
||||||
|
|
||||||
vmkdir() {
|
|
||||||
mkdir -p /"$1"
|
|
||||||
chmod 755 /"$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
vinstall() {
|
|
||||||
src="$1"; tgt="$3"; rights="$2"
|
|
||||||
if [ "$4" ]; then
|
|
||||||
cp "${src}" "/${tgt}/${4}"
|
|
||||||
chmod="/${tgt}/${4}"
|
|
||||||
else
|
|
||||||
cp "${src}" "/${tgt}"
|
|
||||||
chmod="/${tgt}"
|
|
||||||
|
|
||||||
fi
|
|
||||||
chmod -R "${rights}" "${chmod}"
|
|
||||||
}
|
|
||||||
|
|
||||||
vbin() {
|
|
||||||
cp -rf "$1" /usr/bin/
|
|
||||||
chmod 0755 /usr/bin/"$(basename $1)"
|
|
||||||
}
|
|
||||||
|
|
||||||
vbin "${FILESDIR}/bin/joinvpn"
|
|
||||||
vbin "${FILESDIR}/bin/void-update"
|
|
||||||
vbin "${FILESDIR}/bin/void-backup"
|
|
||||||
vbin "${FILESDIR}/bin/void-snapshot"
|
|
||||||
vbin "${FILESDIR}/bin/void-createbackupcontainer"
|
|
||||||
vbin "${FILESDIR}/bin/pinentry-chooser"
|
|
||||||
|
|
||||||
vmkdir etc/sudoers.d
|
|
||||||
vinstall "${FILESDIR}/sudoers/10-common" 700 etc/sudoers.d
|
|
||||||
|
|
||||||
vmkdir etc/bash/bashrc.d
|
|
||||||
vinstall "${FILESDIR}/bash/xbps-aliase.sh" 755 etc/bash/bashrc.d
|
|
||||||
vinstall "${FILESDIR}/bash/editor.sh" 755 etc/bash/bashrc.d
|
|
||||||
|
|
||||||
vmkdir usr/lib/udev/rules.d
|
|
||||||
vinstall "${FILESDIR}/udev/99-mount-media.rules" 744 usr/lib/udev/rules.d
|
|
||||||
vinstall "${FILESDIR}/udev/99-ioschedulers.rules" 744 usr/lib/udev/rules.d
|
|
||||||
|
|
||||||
vmkdir etc/btrbk
|
|
||||||
vinstall "${FILESDIR}/btrbk/btrbk.conf.void" 744 etc/btrbk
|
|
||||||
|
|
||||||
vmkdir etc/xbps.d
|
|
||||||
vinstall "${FILESDIR}/xbps/50-no-extract.conf" 755 etc/xbps.d
|
|
||||||
vinstall "${FILESDIR}/xbps/20-repo-rotce.de-pakete.conf" 755 etc/xbps.d
|
|
||||||
|
|
||||||
vmkdir etc/default/grub-btrfs
|
|
||||||
vinstall "${FILESDIR}/grub-btrfs/void.conf" 755 etc/default/grub-btrfs
|
|
||||||
|
|
||||||
vmkdir etc/NetworkManager/conf.d
|
|
||||||
vmkdir etc/NetworkManager/dispatcher.d
|
|
||||||
vinstall "${FILESDIR}/nm/unmanaged-wg.conf" 644 etc/NetworkManager/conf.d
|
|
||||||
vinstall "${FILESDIR}/nm/unmanaged-tun.conf" 644 etc/NetworkManager/conf.d
|
|
||||||
vinstall "${FILESDIR}/nm/30-wg0" 744 etc/NetworkManager/dispatcher.d
|
|
||||||
|
|
||||||
vmkdir etc/profile.d
|
|
||||||
vinstall "${FILESDIR}/profile/append-path.sh" 644 etc/profile.d zz-append-path.sh
|
|
||||||
|
|
||||||
vmkdir usr/share/X11/xorg.conf.d
|
|
||||||
vinstall "${FILESDIR}/xorg/10-keyboard.conf" 644 usr/share/X11/xorg.conf.d
|
|
||||||
|
|
||||||
vmkdir etc/skel
|
|
||||||
vinstall "${FILESDIR}/gnupg/gpg-agent.conf" 700 etc/skel
|
|
||||||
|
|
||||||
vmkdir etc/fonts/conf.d
|
|
||||||
ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf "${DESTDIR}/etc/fonts/conf.d/70-no-bitmaps.conf"
|
|
||||||
|
|
||||||
{ echo "#ignorepkg=linux-firmware-amd";
|
|
||||||
echo "#ignorepkg=linux-firmware-intel";
|
|
||||||
echo "#ignorepkg=linux-firmware-nvidia";
|
|
||||||
echo "#ignorepkg=linux-firmware-broadcom";
|
|
||||||
echo "#ignorepkg=wifi-firmware"; } > /etc/xbps.d/10-ignore-firmware.conf
|
|
||||||
chmod 755 /etc/xbps.d/10-ignore-firmware.conf
|
|
||||||
|
|
||||||
{ echo "en_DK.UTF-8 UTF-8";
|
|
||||||
echo "de_DE.UTF-8 UTF-8";
|
|
||||||
echo "en_US.UTF-8 UTF-8"; } > /etc/default/libc-locales
|
|
||||||
|
|
||||||
echo "LANG=${cfg[lang]}.UTF-8" > /etc/locale.conf
|
|
||||||
echo "KEYMAP=${cfg[lang_console]}" > /etc/vconsole.conf
|
|
||||||
|
|
||||||
cp -a /etc/profile.d/locale.sh /etc/profile.d/zz-locale-user.sh
|
|
||||||
sed -i 's/locale.conf/locale-user.conf/' /etc/profile.d/zz-locale-user.sh
|
|
||||||
sed -i '/^if/i [ "$(id -u)" -eq 0 ] && return' /etc/profile.d/zz-locale-user.sh
|
|
||||||
|
|
||||||
{ echo "/dev/mapper/voidvg.${diskid}-root / btrfs defaults,subvol=rootfs 0 0";
|
|
||||||
echo "/dev/mapper/voidvg.${diskid}-root /home btrfs defaults,subvol=homefs 0 0";
|
|
||||||
echo "/dev/mapper/voidvg.${diskid}-swap swap swap defaults 0 0";
|
|
||||||
echo "/dev/mapper/voidvg.${diskid}-root /var/lib/backup/quelle/rootfs btrfs defaults 0 0";
|
|
||||||
echo "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0"; } > /etc/fstab
|
|
||||||
if [[ "${cfg[fde_key_store]}" == "once" ]]; then
|
|
||||||
{ echo "UUID=${cfg[bootuuid]} /boot btrfs defaults,subvol=bootfs 0 0";
|
|
||||||
echo "UUID=${cfg[bootuuid]} /var/lib/backup/quelle/bootfs btrfs defaults 0 0"; } >> /etc/fstab
|
|
||||||
fi
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
echo "UUID=${cfg[efiuuid]} /boot/efi vfat defaults 0 0" >> /etc/fstab
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${cfg[hostname]}" > /etc/hostname
|
|
||||||
ln -sf "/usr/share/zoneinfo/${cfg[timezone]}" /etc/localtime
|
|
||||||
sed -i "s/#HOSTNAME=\"void-live\"/HOSTNAME=${cfg[hostname]}/g" /etc/rc.conf
|
|
||||||
sed -i "s/Europe\/Madrid/${cfg[timezone]//\//\\/}/" /etc/rc.conf
|
|
||||||
sed -i "/HARDWARECLOCK/s/^#//g" /etc/rc.conf
|
|
||||||
sed -i "/FONT=/s/^#//g" /etc/rc.conf
|
|
||||||
|
|
||||||
echo '0 * * * * /usr/bin/void-snapshot cron #void.system' > /var/spool/cron/root
|
|
||||||
|
|
||||||
if [[ ! ${cfg[fde_key_store]} == "none" ]]; then
|
|
||||||
echo "echo \"Install pw is 'oem'\"" > /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo "read -p \"Change PW for disk? y/n \" answer" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo "if [ \"\${answer}\" = \"y\" ]; then" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo " while ! cryptsetup luksChangeKey /dev/disk/by-uuid/${cfg[partuuid]}; do" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo " echo \"Again, please\"" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo " done" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo " rm -rf /etc/runit/core-services/99-changepwdisk.sh" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
echo "fi" >> /etc/runit/core-services/99-changepwdisk.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "echo \"Install pw is 'oem'\"" > /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo "read -p \"Change PW for ${users[name1]}? y/n \" answer" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo "if [ \"\${answer}\" = \"y\" ]; then" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo " while ! passwd ${users[name1]}; do" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo " echo \"Again, please\"" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo " done" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo " rm -rf /etc/runit/core-services/99-changepwuser.sh" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
echo "fi" >> /etc/runit/core-services/99-changepwuser.sh
|
|
||||||
|
|
||||||
module end
|
|
|
@ -1 +0,0 @@
|
||||||
declare -f lastminute
|
|
|
@ -1,11 +0,0 @@
|
||||||
module start "bootloader" "Post Bootloader"
|
|
||||||
|
|
||||||
if test -d /sys/firmware/efi; then
|
|
||||||
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Void"
|
|
||||||
else
|
|
||||||
grub-install "${cfg[diskname]}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
grub-mkconfig -o /boot/grub/grub.cfg
|
|
||||||
|
|
||||||
module end
|
|
Loading…
Reference in New Issue