Compare commits

...

16 commits

Author SHA1 Message Date
Tobias Powalowski
fd2fd533e3 update homepage 2023-07-18 10:02:39 +02:00
Tobias Powalowski
530d028f62 fix network preserving 2023-07-18 09:21:40 +02:00
Tobias Powalowski
564ee8ab34 fix autoconfiguration checks 2023-07-18 09:17:19 +02:00
Tobias Powalowski
1c47ed6f56 fix locale autosetting 2023-07-18 09:13:14 +02:00
Tobias Powalowski
78b270a9d2 update homepage 2023-07-18 09:04:28 +02:00
Tobias Powalowski
40ef05df1b update MOTD 2023-07-18 08:58:07 +02:00
Tobias Powalowski
689cdd0b1d cleanup MOTD 2023-07-18 08:52:47 +02:00
Tobias Powalowski
4d06d59b93 fix launcher-running 2023-07-18 08:29:07 +02:00
Tobias Powalowski
1c2cbcee13 fix typo 2023-07-18 07:54:22 +02:00
Tobias Powalowski
e5b940b8c2 replace /dev/null and /dev/tty7 with _NO_LOG and _LOG 2023-07-18 07:42:58 +02:00
Tobias Powalowski
7e27ab091b functionalize _run_update_environment 2023-07-18 07:32:48 +02:00
Tobias Powalowski
bf1f77bc1e add message before starting update environment 2023-07-18 07:29:50 +02:00
Tobias Powalowski
9155044c59 update CHANGELOG 2023-07-18 07:22:07 +02:00
Tobias Powalowski
0772498bf8 fix message 2023-07-18 07:17:26 +02:00
Tobias Powalowski
5d2f7cae89 fix vconsole preserve 2023-07-18 07:06:18 +02:00
Tobias Powalowski
6a3906be8b fix preserving values 2023-07-18 06:54:19 +02:00
10 changed files with 131 additions and 135 deletions

View file

@ -19,6 +19,7 @@ Environment Changes:
- renamed km to vconsole script - renamed km to vconsole script
- renamed tz to clock script - renamed tz to clock script
- renamed archboot-locale script to localize script - renamed archboot-locale script to localize script
- preserving Basic Setup values when running kexec task
- load archboot.com and wiki.archlinux.org on firefox startup - load archboot.com and wiki.archlinux.org on firefox startup
localize: localize:
- fixed abort dialog - fixed abort dialog

View file

@ -5,7 +5,7 @@
_TITLE="Archboot ${_RUNNING_ARCH} | Basic Setup | Launcher" _TITLE="Archboot ${_RUNNING_ARCH} | Basic Setup | Launcher"
_show_login() { _show_login() {
[[ -e /tmp/.launcher-running ]] && rm /tmp/.launcher-running [[ -e /.launcher-running ]] && rm /.launcher-running
clear clear
echo "" echo ""
agetty --show-issue agetty --show-issue
@ -30,7 +30,7 @@ _check_manage() {
_desktop () { _desktop () {
_dialog --cancel-label "Back" --title " Desktop Menu " --menu "" 10 40 6 "${_DESKTOP[@]}" 2>${_ANSWER} || return 1 _dialog --cancel-label "Back" --title " Desktop Menu " --menu "" 10 40 6 "${_DESKTOP[@]}" 2>${_ANSWER} || return 1
[[ -e /tmp/.launcher-running ]] && rm /tmp/.launcher-running [[ -e /.launcher-running ]] && rm /.launcher-running
_EXIT="$(cat ${_ANSWER})" _EXIT="$(cat ${_ANSWER})"
if [[ "${_EXIT}" == "GNOME" ]]; then if [[ "${_EXIT}" == "GNOME" ]]; then
if _dialog --defaultno --yesno "Gnome Desktop:\nDo you want to use the Wayland Backend?" 6 45; then if _dialog --defaultno --yesno "Gnome Desktop:\nDo you want to use the Wayland Backend?" 6 45; then
@ -61,16 +61,12 @@ _desktop () {
_manage() { _manage() {
_dialog --cancel-label "Back" --title " Manage Archboot Menu " --menu "" 9 50 5 "${_MANAGE[@]}" 2>${_ANSWER} || return 1 _dialog --cancel-label "Back" --title " Manage Archboot Menu " --menu "" 9 50 5 "${_MANAGE[@]}" 2>${_ANSWER} || return 1
clear clear
[[ -e /tmp/.launcher-running ]] && rm /tmp/.launcher-running [[ -e /.launcher-running ]] && rm /.launcher-running
_EXIT="$(cat ${_ANSWER})" _EXIT="$(cat ${_ANSWER})"
if [[ "${_EXIT}" == "FULL" ]]; then if [[ "${_EXIT}" == "FULL" ]]; then
update -full-system update -full-system
elif [[ "${_EXIT}" == "UPDATE" ]]; then elif [[ "${_EXIT}" == "UPDATE" ]]; then
if update | grep -q latest-install; then _run_update_environment
update -latest-install
else
update -latest
fi
elif [[ "${_EXIT}" == "IMAGE" ]]; then elif [[ "${_EXIT}" == "IMAGE" ]]; then
update -latest-image update -latest-image
fi fi
@ -85,7 +81,7 @@ _exit() {
"3" "Poweroff System" 2>${_ANSWER} || return 1 "3" "Poweroff System" 2>${_ANSWER} || return 1
_EXIT="$(cat ${_ANSWER})" _EXIT="$(cat ${_ANSWER})"
if [[ "${_EXIT}" == "1" ]]; then if [[ "${_EXIT}" == "1" ]]; then
[[ -e /tmp/.launcher-running ]] && rm /tmp/.launcher-running [[ -e /.launcher-running ]] && rm /.launcher-running
_show_login _show_login
exit 0 exit 0
elif [[ "${_EXIT}" == "2" ]]; then elif [[ "${_EXIT}" == "2" ]]; then
@ -113,7 +109,7 @@ _launcher() {
"1" "Launch Archboot Setup" "${_MENU[@]}" 2>${_ANSWER} "1" "Launch Archboot Setup" "${_MENU[@]}" 2>${_ANSWER}
case $(cat ${_ANSWER}) in case $(cat ${_ANSWER}) in
"1") "1")
[[ -e /tmp/.launcher-running ]] && rm /tmp/.launcher-running [[ -e /.launcher-running ]] && rm /.launcher-running
setup setup
exit 0 ;; exit 0 ;;
"2") "2")

View file

@ -106,7 +106,7 @@ _network() {
_abort _abort
fi fi
done done
echo "${_INTERFACE}" >/tmp/.network-interface echo "${_INTERFACE}" >/.network-interface
# iwd renames wireless devices to wlanX # iwd renames wireless devices to wlanX
if echo "${_INTERFACE}" | grep -q wlan; then if echo "${_INTERFACE}" | grep -q wlan; then
_CONNECTION="wireless" _CONNECTION="wireless"

View file

@ -106,14 +106,7 @@ _update_environment() {
else else
_dialog --title " New Kernel Available " --defaultno --yesno "Do you want to update the Archboot Environment to ${_ONLINE_KERNEL}?\n\nATTENTION:\nThis will reboot the system using kexec!" 9 60 && _UPDATE_ENVIRONMENT=1 _dialog --title " New Kernel Available " --defaultno --yesno "Do you want to update the Archboot Environment to ${_ONLINE_KERNEL}?\n\nATTENTION:\nThis will reboot the system using kexec!" 9 60 && _UPDATE_ENVIRONMENT=1
if [[ -n "${_UPDATE_ENVIRONMENT}" ]]; then if [[ -n "${_UPDATE_ENVIRONMENT}" ]]; then
clear _run_update_environment
echo -e "\e[93mGo and get a cup of coffee. Depending on your system setup,\e[m"
echo -e "\e[93myou can \e[1mstart\e[m\e[93m with your tasks in about \e[1m5\e[m\e[93m minutes...\e[m"
if update | grep -q latest-install; then
update -latest-install
else
update -latest
fi
fi fi
fi fi
fi fi

View file

@ -48,4 +48,15 @@ _cleanup() {
clear clear
exit 0 exit 0
} }
_run_update_environment() {
clear
echo -e "\e[93mGo and get a cup of coffee. Depending on your system setup,\e[m"
echo -e "\e[93myou can \e[1mstart\e[m\e[93m with your tasks in about \e[1m5\e[m\e[93m minutes...\e[m"
if update | grep -q latest-install; then
update -latest-install
else
update -latest
fi
}
# vim: set ft=sh ts=4 sw=4 et: # vim: set ft=sh ts=4 sw=4 et:

View file

@ -52,12 +52,12 @@ _auto_mdadm()
_auto_network() _auto_network()
{ {
# exit if network wasn't configured in Basic Setup # exit if network wasn't configured in Basic Setup
if [[ ! -e /tmp/.network ]]; then if [[ ! -e /.network ]]; then
return 1 return 1
fi fi
_dialog --infobox "Enable network and proxy settings on installed system..." 3 70 _dialog --infobox "Enable network and proxy settings on installed system..." 3 70
# copy iwd keys and enable iwd # copy iwd keys and enable iwd
if grep -q 'wlan' /tmp/.network-interface; then if grep -q 'wlan' /.network-interface; then
cp -r /var/lib/iwd "${_DESTDIR}"/var/lib cp -r /var/lib/iwd "${_DESTDIR}"/var/lib
chroot "${_DESTDIR}" systemctl enable iwd &>"${_NO_LOG}" chroot "${_DESTDIR}" systemctl enable iwd &>"${_NO_LOG}"
fi fi
@ -204,7 +204,7 @@ _auto_hostname() {
_auto_locale() { _auto_locale() {
_dialog --infobox "Set default locale on installed system..." 3 70 _dialog --infobox "Set default locale on installed system..." 3 70
if [[ ! -f ${_DESTDIR}/etc/locale.conf ]]; then if [[ ! -f ${_DESTDIR}/etc/locale.conf ]]; then
if [[ -n ${_DESTDIR} && -e /tmp/.localize ]]; then if [[ -n ${_DESTDIR} && -e /.localize ]]; then
cp /etc/locale.conf "${_DESTDIR}"/etc/locale.conf cp /etc/locale.conf "${_DESTDIR}"/etc/locale.conf
else else
echo "LANG=C.UTF-8" > "${_DESTDIR}"/etc/locale.conf echo "LANG=C.UTF-8" > "${_DESTDIR}"/etc/locale.conf

View file

@ -31,7 +31,7 @@ _set_mkinitcpio() {
} }
_set_locale() { _set_locale() {
if [[ -z "${_S_LOCALE}" && ! -e "/tmp/.localize" ]] && grep -qw '^archboot' /etc/hostname ; then if [[ -z "${_S_LOCALE}" && ! -e "/.localize" ]] && grep -qw '^archboot' /etc/hostname ; then
localize localize
_auto_locale _auto_locale
_auto_set_locale _auto_set_locale

View file

@ -17,6 +17,8 @@ _INST="/${_LIB}/installer"
_HELP="/${_LIB}/installer/help" _HELP="/${_LIB}/installer/help"
_RUN="/${_LIB}/run" _RUN="/${_LIB}/run"
_UPDATE="/${_LIB}/update" _UPDATE="/${_LIB}/update"
_LOG="/dev/tty7"
_NO_LOG="/dev/null"
[[ "${_RUNNING_ARCH}" == "x86_64" || "${_RUNNING_ARCH}" == "riscv64" ]] && _VMLINUZ="vmlinuz-linux" [[ "${_RUNNING_ARCH}" == "x86_64" || "${_RUNNING_ARCH}" == "riscv64" ]] && _VMLINUZ="vmlinuz-linux"
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && _VMLINUZ="Image" [[ "${_RUNNING_ARCH}" == "aarch64" ]] && _VMLINUZ="Image"
@ -143,7 +145,7 @@ _download_latest() {
} }
_network_check() { _network_check() {
if ! getent hosts www.google.com &>/dev/null; then if ! getent hosts www.google.com &>"${_NO_LOG}"; then
echo -e "\e[91mAborting:\e[m" echo -e "\e[91mAborting:\e[m"
echo -e "Network not yet ready." echo -e "Network not yet ready."
echo -e "Please configure your network first." echo -e "Please configure your network first."
@ -183,11 +185,11 @@ _clean_archboot() {
_gpg_check() { _gpg_check() {
# pacman-key process itself # pacman-key process itself
while pgrep -x pacman-key &>/dev/null; do while pgrep -x pacman-key &>"${_NO_LOG}"; do
sleep 1 sleep 1
done done
# gpg finished in background # gpg finished in background
while pgrep -x gpg &>/dev/null; do while pgrep -x gpg &>"${_NO_LOG}"; do
sleep 1 sleep 1
done done
if [[ -e /etc/systemd/system/pacman-init.service ]]; then if [[ -e /etc/systemd/system/pacman-init.service ]]; then
@ -198,7 +200,7 @@ _gpg_check() {
_create_container() { _create_container() {
# create container without package cache # create container without package cache
if [[ -n "${_L_COMPLETE}" ]]; then if [[ -n "${_L_COMPLETE}" ]]; then
"archboot-${_RUNNING_ARCH}-create-container.sh" "${_W_DIR}" -cc -cp >/dev/tty7 2>&1 || exit 1 "archboot-${_RUNNING_ARCH}-create-container.sh" "${_W_DIR}" -cc -cp >"${_LOG}" 2>&1 || exit 1
fi fi
# create container with package cache # create container with package cache
if [[ -e /var/cache/pacman/pkg/archboot.db ]]; then if [[ -e /var/cache/pacman/pkg/archboot.db ]]; then
@ -206,14 +208,14 @@ _create_container() {
# add the db too on reboot # add the db too on reboot
install -D -m644 /var/cache/pacman/pkg/archboot.db "${_W_DIR}"/var/cache/pacman/pkg/archboot.db install -D -m644 /var/cache/pacman/pkg/archboot.db "${_W_DIR}"/var/cache/pacman/pkg/archboot.db
if [[ -n "${_L_INSTALL_COMPLETE}" ]]; then if [[ -n "${_L_INSTALL_COMPLETE}" ]]; then
"archboot-${_RUNNING_ARCH}-create-container.sh" "${_W_DIR}" -cc --install-source=file:///var/cache/pacman/pkg >/dev/tty7 2>&1 || exit 1 "archboot-${_RUNNING_ARCH}-create-container.sh" "${_W_DIR}" -cc --install-source=file:///var/cache/pacman/pkg >"${_LOG}" 2>&1 || exit 1
fi fi
# needed for checks # needed for checks
cp "${_W_DIR}"/var/cache/pacman/pkg/archboot.db /var/cache/pacman/pkg/archboot.db cp "${_W_DIR}"/var/cache/pacman/pkg/archboot.db /var/cache/pacman/pkg/archboot.db
else else
#online mode #online mode
if [[ -n "${_L_INSTALL_COMPLETE}" ]]; then if [[ -n "${_L_INSTALL_COMPLETE}" ]]; then
"archboot-${_RUNNING_ARCH}-create-container.sh" "${_W_DIR}" -cc >/dev/tty7 2>&1 || exit 1 "archboot-${_RUNNING_ARCH}-create-container.sh" "${_W_DIR}" -cc >"${_LOG}" 2>&1 || exit 1
fi fi
fi fi
} }
@ -222,7 +224,7 @@ _kver_x86() {
# get kernel version from installed kernel # get kernel version from installed kernel
if [[ -f "${_RAM}/${_VMLINUZ}" ]]; then if [[ -f "${_RAM}/${_VMLINUZ}" ]]; then
offset="$(od -An -j0x20E -dN2 "${_RAM}/${_VMLINUZ}")" offset="$(od -An -j0x20E -dN2 "${_RAM}/${_VMLINUZ}")"
read -r _HWKVER _ < <(dd if="${_RAM}/${_VMLINUZ}" bs=1 count=127 skip=$((offset + 0x200)) 2>/dev/null) read -r _HWKVER _ < <(dd if="${_RAM}/${_VMLINUZ}" bs=1 count=127 skip=$((offset + 0x200)) 2>"${_NO_LOG}")
fi fi
} }
@ -247,7 +249,7 @@ _create_initramfs() {
LANG=C bsdtar --null -cf - --format=newc @- | LANG=C bsdtar --null -cf - --format=newc @- |
zstd --rm -T0> ${_RAM}/${_INITRD} & zstd --rm -T0> ${_RAM}/${_INITRD} &
sleep 2 sleep 2
while pgrep -x zstd &>/dev/null; do while pgrep -x zstd &>"${_NO_LOG}"; do
_clean_kernel_cache _clean_kernel_cache
sleep 1 sleep 1
done done
@ -290,14 +292,14 @@ _prepare_graphic() {
done done
fi fi
#shellcheck disable=SC2086 #shellcheck disable=SC2086
pacman -Syu ${_IGNORE} --noconfirm &>/dev/null || exit 1 pacman -Syu ${_IGNORE} --noconfirm &>"${_NO_LOG}" || exit 1
[[ ! -e "/.full_system" ]] && _cleanup_install [[ ! -e "/.full_system" ]] && _cleanup_install
# check for qxl module # check for qxl module
grep -q qxl /proc/modules && grep -q xorg "${_GRAPHIC}" && _GRAPHIC="${_GRAPHIC} xf86-video-qxl" grep -q qxl /proc/modules && grep -q xorg "${_GRAPHIC}" && _GRAPHIC="${_GRAPHIC} xf86-video-qxl"
echo "Running pacman to install packages: ${_GRAPHIC}..." echo "Running pacman to install packages: ${_GRAPHIC}..."
for i in ${_GRAPHIC}; do for i in ${_GRAPHIC}; do
#shellcheck disable=SC2086 #shellcheck disable=SC2086
pacman -S ${i} --noconfirm &>/dev/null || exit 1 pacman -S ${i} --noconfirm &>"${_NO_LOG}" || exit 1
[[ ! -e "/.full_system" ]] && _cleanup_install [[ ! -e "/.full_system" ]] && _cleanup_install
[[ "$(grep -w MemTotal /proc/meminfo | cut -d ':' -f2 | sed -e 's# ##g' -e 's#kB$##g')" -lt 4413000 ]] && _cleanup_cache [[ "$(grep -w MemTotal /proc/meminfo | cut -d ':' -f2 | sed -e 's# ##g' -e 's#kB$##g')" -lt 4413000 ]] && _cleanup_cache
rm -f /var/log/pacman.log rm -f /var/log/pacman.log
@ -307,17 +309,17 @@ _prepare_graphic() {
_LANG="be bg cs da de el fi fr hu it lt lv mk nl nn pl ro ru sk sr uk" _LANG="be bg cs da de el fi fr hu it lt lv mk nl nn pl ro ru sk sr uk"
for i in ${_LANG}; do for i in ${_LANG}; do
if grep -q "${i}" /etc/locale.conf; then if grep -q "${i}" /etc/locale.conf; then
pacman -S firefox-i18n-"${i}" --noconfirm &>/dev/null || exit 1 pacman -S firefox-i18n-"${i}" --noconfirm &>"${_NO_LOG}" || exit 1
fi fi
done done
if grep -q en_US /etc/locale.conf; then if grep -q en_US /etc/locale.conf; then
pacman -S firefox-i18n-en-us --noconfirm &>/dev/null || exit 1 pacman -S firefox-i18n-en-us --noconfirm &>"${_NO_LOG}" || exit 1
elif grep -q es_ES /etc/locale.conf; then elif grep -q es_ES /etc/locale.conf; then
pacman -S firefox-i18n-es-es --noconfirm &>/dev/null || exit 1 pacman -S firefox-i18n-es-es --noconfirm &>"${_NO_LOG}" || exit 1
elif grep -q pt_PT /etc/locale.conf; then elif grep -q pt_PT /etc/locale.conf; then
pacman -S firefox-i18n-pt-pt --noconfirm &>/dev/null || exit 1 pacman -S firefox-i18n-pt-pt --noconfirm &>"${_NO_LOG}" || exit 1
elif grep -q sv_SE /etc/locale.conf; then elif grep -q sv_SE /etc/locale.conf; then
pacman -S firefox-i18n-sv-se --noconfirm &>/dev/null || exit 1 pacman -S firefox-i18n-sv-se --noconfirm &>"${_NO_LOG}" || exit 1
fi fi
fi fi
if [[ ! -e "/.full_system" ]]; then if [[ ! -e "/.full_system" ]]; then
@ -329,11 +331,11 @@ _prepare_graphic() {
! -path '*/fi/*' ! -path '*/fr/*' ! -path '*/hu/*' ! -path '*/it/*' ! -path '*/lt/*' \ ! -path '*/fi/*' ! -path '*/fr/*' ! -path '*/hu/*' ! -path '*/it/*' ! -path '*/lt/*' \
! -path '*/lv/*' ! -path '*/mk/*' ! -path '*/nl/*' ! -path '*/nn/*' ! -path '*/pl/*' \ ! -path '*/lv/*' ! -path '*/mk/*' ! -path '*/nl/*' ! -path '*/nn/*' ! -path '*/pl/*' \
! -path '*/pt/*' ! -path '*/ro/*' ! -path '*/ru/*' ! -path '*/sk/*' ! -path '*/sr/*' \ ! -path '*/pt/*' ! -path '*/ro/*' ! -path '*/ru/*' ! -path '*/sk/*' ! -path '*/sr/*' \
! -path '*/sv/*' ! -path '*/uk/*' -delete &>/dev/null ! -path '*/sv/*' ! -path '*/uk/*' -delete &>"${_NO_LOG}"
find /usr/share/i18n/charmaps ! -name 'UTF-8.gz' -delete &>/dev/null find /usr/share/i18n/charmaps ! -name 'UTF-8.gz' -delete &>"${_NO_LOG}"
fi fi
systemd-sysusers >/dev/tty7 2>&1 systemd-sysusers >"${_LOG}" 2>&1
systemd-tmpfiles --create >/dev/tty7 2>&1 systemd-tmpfiles --create >"${_LOG}" 2>&1
# fixing dbus requirements # fixing dbus requirements
systemctl reload dbus systemctl reload dbus
systemctl reload dbus-org.freedesktop.login1.service systemctl reload dbus-org.freedesktop.login1.service
@ -343,7 +345,7 @@ _new_environment() {
_update_installer_check _update_installer_check
touch /.update touch /.update
_kill_w_dir _kill_w_dir
_STEPS="10" _STEPS="11"
_S_APPEND="0" _S_APPEND="0"
_S_EMPTY=" " _S_EMPTY=" "
if [[ -e /var/cache/pacman/pkg/archboot.db ]]; then if [[ -e /var/cache/pacman/pkg/archboot.db ]]; then
@ -377,7 +379,7 @@ _new_environment() {
echo -e "\e[1mStep ${_S_APPEND}5/${_STEPS}:\e[m Collecting rootfs files in ${_W_DIR}..." echo -e "\e[1mStep ${_S_APPEND}5/${_STEPS}:\e[m Collecting rootfs files in ${_W_DIR}..."
echo "${_S_EMPTY} This will need some time..." echo "${_S_EMPTY} This will need some time..."
# write initramfs to "${_W_DIR}"/tmp # write initramfs to "${_W_DIR}"/tmp
${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount tmp;archboot-cpio.sh -k ${_HWKVER} -c ${_CONFIG} -d /tmp" >/dev/tty7 2>&1 || exit 1 ${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount tmp;archboot-cpio.sh -k ${_HWKVER} -c ${_CONFIG} -d /tmp" >"${_LOG}" 2>&1 || exit 1
echo -e "\e[1mStep ${_S_APPEND}6/${_STEPS}:\e[m Cleanup ${_W_DIR}..." echo -e "\e[1mStep ${_S_APPEND}6/${_STEPS}:\e[m Cleanup ${_W_DIR}..."
find "${_W_DIR}"/. -mindepth 1 -maxdepth 1 ! -name 'tmp' -exec rm -rf {} \; find "${_W_DIR}"/. -mindepth 1 -maxdepth 1 ! -name 'tmp' -exec rm -rf {} \;
_clean_kernel_cache _clean_kernel_cache
@ -387,8 +389,8 @@ _new_environment() {
echo -e "\e[1mStep ${_STEPS}/${_STEPS}:\e[m Switch root to ${_RAM}..." echo -e "\e[1mStep ${_STEPS}/${_STEPS}:\e[m Switch root to ${_RAM}..."
mv ${_W_DIR}/tmp/* /${_RAM}/ mv ${_W_DIR}/tmp/* /${_RAM}/
# cleanup mkinitcpio directories and files # cleanup mkinitcpio directories and files
rm -rf /sysroot/{hooks,install,kernel,new_root,sysroot,mkinitcpio.*} &>/dev/null rm -rf /sysroot/{hooks,install,kernel,new_root,sysroot,mkinitcpio.*} &>"${_NO_LOG}"
rm -f /sysroot/{VERSION,config,buildconfig,init} &>/dev/null rm -f /sysroot/{VERSION,config,buildconfig,init} &>"${_NO_LOG}"
# https://www.freedesktop.org/software/systemd/man/bootup.html # https://www.freedesktop.org/software/systemd/man/bootup.html
# enable systemd initrd functionality # enable systemd initrd functionality
touch /etc/initrd-release touch /etc/initrd-release
@ -401,47 +403,48 @@ _new_environment() {
systemctl start initrd-cleanup.service systemctl start initrd-cleanup.service
systemctl start initrd-switch-root.target systemctl start initrd-switch-root.target
fi fi
# copy configs to new container _C_DIR="${_W_DIR}/tmp"
echo -e "\e[1mStep ${_S_APPEND}7/${_STEPS}:\e[m Preserving Basic Setup values..."
if [[ -e '/.localize' ]]; then if [[ -e '/.localize' ]]; then
cp /etc/locale.gen "${_W_DIR}"/tmp/etc cp /etc/{locale.gen,locale.conf} "${_C_DIR}"/etc
cp /etc/locale.conf "${_W_DIR}"/tmp/etc cp /.localize "${_C_DIR}"/
cp /.localize "${_W_DIR}"/tmp/ ${_NSPAWN} "${_C_DIR}" /bin/bash -c "locale-gen" &>"${_NO_LOG}"
${_NSPAWN} "${_W_DIR}"/tmp /bin/bash -c "locale-gen"
fi fi
if [[ -e '/.vconsole' ]]; then if [[ -e '/.vconsole' ]]; then
cp /etc/vconsole "${_W_DIR}"/tmp/etc cp /etc/vconsole.conf "${_C_DIR}"/etc
cp /.vconsole "${_W_DIR}"/tmp/ cp /.vconsole "${_C_DIR}"/
: >"${_C_DIR}"/.vconsole-run
fi fi
if [[ -e '/.clock' ]]; then if [[ -e '/.clock' ]]; then
cp -a /etc/{adjtime,localtime} "${_W_DIR}"/tmp/etc cp -a /etc/{adjtime,localtime} "${_C_DIR}"/etc
${_NSPAWN} "${_W_DIR}"/tmp /bin/bash -c "systemctl enable systemd-timesyncd.service;timedatectl set-ntp 1" ${_NSPAWN} "${_C_DIR}" /bin/bash -c "systemctl enable systemd-timesyncd.service" &>"${_NO_LOG}"
cp /.vconsole "${_W_DIR}"/tmp/ cp /.clock "${_C_DIR}"/
fi fi
if [[ -e '/.network' ]]; then if [[ -e '/.network' ]]; then
cp -r /var/lib/iwd "${_W_DIR}"/tmp/var/lib cp -r /var/lib/iwd "${_C_DIR}"/var/lib
${_NSPAWN} "${_W_DIR}"/tmp /bin/bash -c "systemctl enable iwd" ${_NSPAWN} "${_C_DIR}" /bin/bash -c "systemctl enable iwd" &>"${_NO_LOG}"
cp /etc/systemd/network/* "${_W_DIR}"/tmp//etc/systemd/network/ cp /etc/systemd/network/* "${_C_DIR}"/etc/systemd/network/
${_NSPAWN} "${_W_DIR}"/tmp /bin/bash -c "systemctl enable systemd-networkd" ${_NSPAWN} "${_C_DIR}" /bin/bash -c "systemctl enable systemd-networkd" &>"${_NO_LOG}"
${_NSPAWN} "${_W_DIR}"/tmp /bin/bash -c "systemctl enable systemd-resolved" ${_NSPAWN} "${_C_DIR}" /bin/bash -c "systemctl enable systemd-resolved" &>"${_NO_LOG}"
rm "${_W_DIR}"/tmp/etc/systemd/network/10-wired-auto-dhcp.network rm "${_C_DIR}"/etc/systemd/network/10-wired-auto-dhcp.network
[[ -e '/etc/profile.d/proxy.sh' ]] && cp /etc/profile.d/proxy.sh "${_W_DIR}"/tmp/etc/profile.d/proxy.sh [[ -e '/etc/profile.d/proxy.sh' ]] && cp /etc/profile.d/proxy.sh "${_C_DIR}"/etc/profile.d/proxy.sh
cp /.network "${_W_DIR}"/tmp/ cp /.network "${_C_DIR}"/
cp /.network-interface "${_C_DIR}"/
fi fi
if [[ -e '/.pacsetup' ]]; then if [[ -e '/.pacsetup' ]]; then
cp /etc/pacman.conf "${_W_DIR}"/tmp/etc cp /etc/pacman.conf "${_C_DIR}"/etc
cp /etc/pacman.d/mirrorlist "${_W_DIR}"/tmp/etc/pacman.d/ cp /etc/pacman.d/mirrorlist "${_C_DIR}"/etc/pacman.d/
cp -ar /etc/pacman.d/gnupg "${_W_DIR}"/tmp/etc/pacman.d cp -ar /etc/pacman.d/gnupg "${_C_DIR}"/etc/pacman.d
rm "${_W_DIR}"/tmp/etc/systemd/system/pacman-init.service cp /.pacsetup "${_C_DIR}"/
cp /.pacsetup "${_W_DIR}"/tmp/
fi fi
echo -e "\e[1mStep ${_S_APPEND}7/${_STEPS}:\e[m Creating initramfs ${_RAM}/${_INITRD}..." echo -e "\e[1mStep ${_S_APPEND}8/${_STEPS}:\e[m Creating initramfs ${_RAM}/${_INITRD}..."
echo " This will need some time..." echo " This will need some time..."
_create_initramfs _create_initramfs
echo -e "\e[1mStep ${_S_APPEND}8/${_STEPS}:\e[m Cleanup ${_W_DIR}..." echo -e "\e[1mStep ${_S_APPEND}9/${_STEPS}:\e[m Cleanup ${_W_DIR}..."
cd / cd /
_kill_w_dir _kill_w_dir
_clean_kernel_cache _clean_kernel_cache
echo -e "\e[1mStep ${_S_APPEND}9/${_STEPS}:\e[m Waiting for kernel to free RAM..." echo -e "\e[1mStep 10/${_STEPS}:\e[m Waiting for kernel to free RAM..."
echo " This will need some time..." echo " This will need some time..."
# wait until enough memory is available! # wait until enough memory is available!
while true; do while true; do
@ -459,10 +462,10 @@ _new_environment() {
sleep 0.1 sleep 0.1
_clean_kernel_cache _clean_kernel_cache
rm ${_RAM}/{"${_VMLINUZ}","${_INITRD}"} rm ${_RAM}/{"${_VMLINUZ}","${_INITRD}"}
umount ${_RAM} &>/dev/null umount ${_RAM} &>"${_NO_LOG}"
rm -r ${_RAM} &>/dev/null rm -r ${_RAM} &>"${_NO_LOG}"
#shellcheck disable=SC2115 #shellcheck disable=SC2115
rm -rf /usr/* &>/dev/null rm -rf /usr/* &>"${_NO_LOG}"
while true; do while true; do
_clean_kernel_cache _clean_kernel_cache
read -r -t 1 read -r -t 1
@ -489,8 +492,8 @@ _full_system() {
echo -e "\e[1mInitializing full Arch Linux system...\e[m" echo -e "\e[1mInitializing full Arch Linux system...\e[m"
echo -e "\e[1mStep 1/3:\e[m Reinstalling packages and adding info/man-pages..." echo -e "\e[1mStep 1/3:\e[m Reinstalling packages and adding info/man-pages..."
echo " This will need some time..." echo " This will need some time..."
pacman -Sy >/dev/tty7 2>&1 || exit 1 pacman -Sy >"${_LOG}" 2>&1 || exit 1
pacman -Qqn | pacman -S --noconfirm man-db man-pages texinfo - >/dev/tty7 2>&1 || exit 1 pacman -Qqn | pacman -S --noconfirm man-db man-pages texinfo - >"${_LOG}" 2>&1 || exit 1
echo -e "\e[1mStep 2/3:\e[m Checking kernel version..." echo -e "\e[1mStep 2/3:\e[m Checking kernel version..."
_kernel_check _kernel_check
echo -e "\e[1mStep 3/3:\e[m Trigger kernel module loading..." echo -e "\e[1mStep 3/3:\e[m Trigger kernel module loading..."
@ -514,35 +517,35 @@ _new_image() {
cd /archboot || exit 1 cd /archboot || exit 1
_W_DIR="$(mktemp -u archboot-release.XXX)" _W_DIR="$(mktemp -u archboot-release.XXX)"
# create container # create container
archboot-"${_RUNNING_ARCH}"-create-container.sh "${_W_DIR}" -cc > /dev/tty7 || exit 1 archboot-"${_RUNNING_ARCH}"-create-container.sh "${_W_DIR}" -cc > "${_LOG}" || exit 1
_create_archboot_db "${_W_DIR}"/var/cache/pacman/pkg > /dev/tty7 _create_archboot_db "${_W_DIR}"/var/cache/pacman/pkg > "${_LOG}"
# riscv64 does not support kexec at the moment # riscv64 does not support kexec at the moment
if ! [[ "${_RUNNING_ARCH}" == "riscv64" ]]; then if ! [[ "${_RUNNING_ARCH}" == "riscv64" ]]; then
# generate tarball in container, umount tmp it's a tmpfs and weird things could happen then # generate tarball in container, umount tmp it's a tmpfs and weird things could happen then
# removing not working lvm2 from latest image # removing not working lvm2 from latest image
echo "Removing lvm2 from container ${_W_DIR}..." > /dev/tty7 echo "Removing lvm2 from container ${_W_DIR}..." > "${_LOG}"
${_NSPAWN} "${_W_DIR}" pacman -Rdd lvm2 --noconfirm &>/dev/null ${_NSPAWN} "${_W_DIR}" pacman -Rdd lvm2 --noconfirm &>"${_NO_LOG}"
# generate latest tarball in container # generate latest tarball in container
echo "Generating local ISO..." > /dev/tty7 echo "Generating local ISO..." > "${_LOG}"
# generate local iso in container # generate local iso in container
${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*; archboot-${_RUNNING_ARCH}-iso.sh -g -p=${_PRESET_LOCAL} \ ${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*; archboot-${_RUNNING_ARCH}-iso.sh -g -p=${_PRESET_LOCAL} \
-i=${_ISONAME}-local-${_RUNNING_ARCH}" > /dev/tty7 || exit 1 -i=${_ISONAME}-local-${_RUNNING_ARCH}" > "${_LOG}" || exit 1
rm -rf "${_W_DIR}"/var/cache/pacman/pkg/* rm -rf "${_W_DIR}"/var/cache/pacman/pkg/*
_ram_check _ram_check
echo "Generating latest ISO..." > /dev/tty7 echo "Generating latest ISO..." > "${_LOG}"
# generate latest iso in container # generate latest iso in container
${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*;archboot-${_RUNNING_ARCH}-iso.sh -g -p=${_PRESET_LATEST} \ ${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount /tmp;rm -rf /tmp/*;archboot-${_RUNNING_ARCH}-iso.sh -g -p=${_PRESET_LATEST} \
-i=${_ISONAME}-latest-${_RUNNING_ARCH}" > /dev/tty7 || exit 1 -i=${_ISONAME}-latest-${_RUNNING_ARCH}" > "${_LOG}" || exit 1
echo "Installing lvm2 to container ${_W_DIR}..." > /dev/tty7 echo "Installing lvm2 to container ${_W_DIR}..." > "${_LOG}"
${_NSPAWN} "${_W_DIR}" pacman -Sy lvm2 --noconfirm &>/dev/null ${_NSPAWN} "${_W_DIR}" pacman -Sy lvm2 --noconfirm &>"${_NO_LOG}"
fi fi
echo "Generating normal ISO..." > /dev/tty7 echo "Generating normal ISO..." > "${_LOG}"
# generate iso in container # generate iso in container
${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount /tmp;archboot-${_RUNNING_ARCH}-iso.sh -g \ ${_NSPAWN} "${_W_DIR}" /bin/bash -c "umount /tmp;archboot-${_RUNNING_ARCH}-iso.sh -g \
-i=${_ISONAME}-${_RUNNING_ARCH}" > /dev/tty7 || exit 1 -i=${_ISONAME}-${_RUNNING_ARCH}" > "${_LOG}" || exit 1
# move iso out of container # move iso out of container
mv "${_W_DIR}"/*.iso ./ &>/dev/null mv "${_W_DIR}"/*.iso ./ &>"${_NO_LOG}"
mv "${_W_DIR}"/*.img ./ &>/dev/null mv "${_W_DIR}"/*.img ./ &>"${_NO_LOG}"
rm -r "${_W_DIR}" rm -r "${_W_DIR}"
echo -e "\e[1mFinished:\e[m New isofiles are located in /archboot" echo -e "\e[1mFinished:\e[m New isofiles are located in /archboot"
} }
@ -559,8 +562,8 @@ _install_graphic () {
# only start vnc on xorg environment # only start vnc on xorg environment
echo -e "\e[1mStep 3/3:\e[m Setting up VNC and browser...\e[m" echo -e "\e[1mStep 3/3:\e[m Setting up VNC and browser...\e[m"
[[ -n "${_L_XFCE}" || -n "${_L_PLASMA}" || -n "${_L_GNOME}" ]] && _autostart_vnc [[ -n "${_L_XFCE}" || -n "${_L_PLASMA}" || -n "${_L_GNOME}" ]] && _autostart_vnc
command -v firefox &>/dev/null && _firefox_flags command -v firefox &>"${_NO_LOG}" && _firefox_flags
command -v chromium &>/dev/null && _chromium_flags command -v chromium &>"${_NO_LOG}" && _chromium_flags
[[ -n "${_L_XFCE}" ]] && _start_xfce [[ -n "${_L_XFCE}" ]] && _start_xfce
[[ -n "${_L_GNOME}" ]] && _start_gnome [[ -n "${_L_GNOME}" ]] && _start_gnome
[[ -n "${_L_GNOME_WAYLAND}" ]] && _start_gnome_wayland [[ -n "${_L_GNOME_WAYLAND}" ]] && _start_gnome_wayland
@ -579,9 +582,9 @@ _prepare_gnome() {
if ! [[ -e /usr/bin/gnome-session ]]; then if ! [[ -e /usr/bin/gnome-session ]]; then
echo -e "\e[1mStep 1/3:\e[m Installing GNOME desktop now..." echo -e "\e[1mStep 1/3:\e[m Installing GNOME desktop now..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_PACKAGES}" >/dev/tty7 2>&1 _prepare_graphic "${_PACKAGES}" >"${_LOG}" 2>&1
echo -e "\e[1mStep 2/3:\e[m Configuring GNOME desktop..." echo -e "\e[1mStep 2/3:\e[m Configuring GNOME desktop..."
_configure_gnome >/dev/tty7 2>&1 _configure_gnome >"${_LOG}" 2>&1
else else
echo -e "\e[1mStep 1/3:\e[m Installing GNOME desktop already done..." echo -e "\e[1mStep 1/3:\e[m Installing GNOME desktop already done..."
echo -e "\e[1mStep 2/3:\e[m Configuring GNOME desktop already done..." echo -e "\e[1mStep 2/3:\e[m Configuring GNOME desktop already done..."
@ -592,9 +595,9 @@ _prepare_plasma() {
if ! [[ -e /usr/bin/startplasma-x11 ]]; then if ! [[ -e /usr/bin/startplasma-x11 ]]; then
echo -e "\e[1mStep 1/3:\e[m Installing KDE/Plasma desktop now..." echo -e "\e[1mStep 1/3:\e[m Installing KDE/Plasma desktop now..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_PACKAGES}" >/dev/tty7 2>&1 _prepare_graphic "${_PACKAGES}" >"${_LOG}" 2>&1
echo -e "\e[1mStep 2/3:\e[m Configuring KDE/Plasma desktop..." echo -e "\e[1mStep 2/3:\e[m Configuring KDE/Plasma desktop..."
_configure_plasma >/dev/tty7 2>&1 _configure_plasma >"${_LOG}" 2>&1
else else
echo -e "\e[1mStep 1/3:\e[m Installing KDE/Plasma desktop already done..." echo -e "\e[1mStep 1/3:\e[m Installing KDE/Plasma desktop already done..."
echo -e "\e[1mStep 2/3:\e[m Configuring KDE/Plasma desktop already done..." echo -e "\e[1mStep 2/3:\e[m Configuring KDE/Plasma desktop already done..."
@ -605,9 +608,9 @@ _prepare_sway() {
if ! [[ -e /usr/bin/sway ]]; then if ! [[ -e /usr/bin/sway ]]; then
echo -e "\e[1mStep 1/3:\e[m Installing Sway desktop now..." echo -e "\e[1mStep 1/3:\e[m Installing Sway desktop now..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_PACKAGES}" >/dev/tty7 2>&1 _prepare_graphic "${_PACKAGES}" >"${_LOG}" 2>&1
echo -e "\e[1mStep 2/3:\e[m Configuring Sway desktop..." echo -e "\e[1mStep 2/3:\e[m Configuring Sway desktop..."
_configure_sway >/dev/tty7 2>&1 _configure_sway >"${_LOG}" 2>&1
else else
echo -e "\e[1mStep 1/3:\e[m Installing Sway desktop already done..." echo -e "\e[1mStep 1/3:\e[m Installing Sway desktop already done..."
echo -e "\e[1mStep 2/3:\e[m Configuring Sway desktop already done..." echo -e "\e[1mStep 2/3:\e[m Configuring Sway desktop already done..."
@ -807,22 +810,22 @@ _custom_wayland_xorg() {
if [[ -n "${_CUSTOM_WAYLAND}" ]]; then if [[ -n "${_CUSTOM_WAYLAND}" ]]; then
echo -e "\e[1mStep 1/3:\e[m Installing custom wayland..." echo -e "\e[1mStep 1/3:\e[m Installing custom wayland..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_WAYLAND_PACKAGE} ${_CUSTOM_WAYLAND}" > /dev/tty7 2>&1 _prepare_graphic "${_WAYLAND_PACKAGE} ${_CUSTOM_WAYLAND}" > "${_LOG}" 2>&1
fi fi
if [[ -n "${_CUSTOM_X}" ]]; then if [[ -n "${_CUSTOM_X}" ]]; then
echo -e "\e[1mStep 1/3:\e[m Installing custom xorg..." echo -e "\e[1mStep 1/3:\e[m Installing custom xorg..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_XORG_PACKAGE} ${_CUSTOM_XORG}" > /dev/tty7 2>&1 _prepare_graphic "${_XORG_PACKAGE} ${_CUSTOM_XORG}" > "${_LOG}" 2>&1
fi fi
echo -e "\e[1mStep 2/3:\e[m Starting avahi-daemon..." echo -e "\e[1mStep 2/3:\e[m Starting avahi-daemon..."
systemctl start avahi-daemon.service systemctl start avahi-daemon.service
echo -e "\e[1mStep 3/3:\e[m Setting up browser...\e[m" echo -e "\e[1mStep 3/3:\e[m Setting up browser...\e[m"
which firefox &>/dev/null && _firefox_flags which firefox &>"${_NO_LOG}" && _firefox_flags
which chromium &>/dev/null && _chromium_flags which chromium &>"${_NO_LOG}" && _chromium_flags
} }
_chromium_flags() { _chromium_flags() {
echo "Adding chromium flags to /etc/chromium-flags.conf..." >/dev/tty7 echo "Adding chromium flags to /etc/chromium-flags.conf..." >"${_LOG}"
cat << EOF >/etc/chromium-flags.conf cat << EOF >/etc/chromium-flags.conf
--no-sandbox --no-sandbox
--test-type --test-type
@ -834,7 +837,7 @@ EOF
_firefox_flags() { _firefox_flags() {
if [[ -f "/usr/lib/firefox/browser/defaults/preferences/vendor.js" ]]; then if [[ -f "/usr/lib/firefox/browser/defaults/preferences/vendor.js" ]]; then
if ! grep -q startup /usr/lib/firefox/browser/defaults/preferences/vendor.js; then if ! grep -q startup /usr/lib/firefox/browser/defaults/preferences/vendor.js; then
echo "Adding firefox flags vendor.js..." >/dev/tty7 echo "Adding firefox flags vendor.js..." >"${_LOG}"
cat << EOF >> /usr/lib/firefox/browser/defaults/preferences/vendor.js cat << EOF >> /usr/lib/firefox/browser/defaults/preferences/vendor.js
pref("browser.aboutwelcome.enabled", false, locked); pref("browser.aboutwelcome.enabled", false, locked);
pref("browser.startup.homepage_override.once", false, locked); pref("browser.startup.homepage_override.once", false, locked);
@ -848,10 +851,10 @@ EOF
} }
_autostart_vnc() { _autostart_vnc() {
echo "Setting VNC password /etc/tigervnc/passwd to ${_VNC_PW}..." >/dev/tty7 echo "Setting VNC password /etc/tigervnc/passwd to ${_VNC_PW}..." >"${_LOG}"
echo "${_VNC_PW}" | vncpasswd -f > /etc/tigervnc/passwd echo "${_VNC_PW}" | vncpasswd -f > /etc/tigervnc/passwd
cp /etc/xdg/autostart/archboot.desktop /usr/share/applications/archboot.desktop cp /etc/xdg/autostart/archboot.desktop /usr/share/applications/archboot.desktop
echo "Autostarting tigervnc..." >/dev/tty7 echo "Autostarting tigervnc..." >"${_LOG}"
cat << EOF > /etc/xdg/autostart/tigervnc.desktop cat << EOF > /etc/xdg/autostart/tigervnc.desktop
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application

View file

@ -11,19 +11,8 @@ build ()
[[ "$(uname -m)" == "riscv64" ]] && echo -e "\e[1mWelcome to \e[36mArchboot\e[m\e[1m - Arch Linux RISCV64\e[m" >> "${MOTD}" [[ "$(uname -m)" == "riscv64" ]] && echo -e "\e[1mWelcome to \e[36mArchboot\e[m\e[1m - Arch Linux RISCV64\e[m" >> "${MOTD}"
#shellcheck disable=SC2129 #shellcheck disable=SC2129
echo -e "\e[1m----------------------------------------\e[m" >> "${MOTD}" echo -e "\e[1m----------------------------------------\e[m" >> "${MOTD}"
echo -e "\e[1mVconsole Configuration:\e[m" >> "${MOTD}" echo -e "\e[1mVconsole:\e[m" >> "${MOTD}"
echo -e " - Use the \e[1;92mALT + F1 - F6\e[m keys to change the virtual console." >> "${MOTD}" echo -e " - Use the \e[1;92mALT + F1 - F7\e[m keys to change the virtual console." >> "${MOTD}"
if echo "${HOOKS[@]}" | grep -qw archboot_keymap ; then
echo -e " - Use the \e[1;92m'vconsole'\e[m script to change to a non-US keymap." >> "${MOTD}"
fi
if echo "${HOOKS[@]}" | grep -qw archboot_net_common ; then
echo -e "\e[1mNetwork Configuration:\e[m" >> "${MOTD}"
echo -e " - Use the \e[1;92m'network'\e[m script to change your network settings." >> "${MOTD}"
fi
if echo "${HOOKS[@]}" | grep -qw archboot_clock; then
echo -e "\e[1mClock Configuration:\e[m" >> "${MOTD}"
echo -e " - Use the \e[1;92m'clock'\e[m script to change your time and date." >> "${MOTD}"
fi
if echo "${HOOKS[@]}" | grep -qw archboot_net; then if echo "${HOOKS[@]}" | grep -qw archboot_net; then
#shellcheck disable=SC2129 #shellcheck disable=SC2129
echo -e "\e[1mFor Additional Wi-Fi Authentification Or Online Help:\e[m" >> "${MOTD}" echo -e "\e[1mFor Additional Wi-Fi Authentification Or Online Help:\e[m" >> "${MOTD}"
@ -32,7 +21,7 @@ if echo "${HOOKS[@]}" | grep -qw archboot_net; then
echo -e " - Use the \e[1;92m'weechat'\e[m IRC client." >> "${MOTD}" echo -e " - Use the \e[1;92m'weechat'\e[m IRC client." >> "${MOTD}"
fi fi
if echo "${HOOKS[@]}" | grep -qw archboot_installer; then if echo "${HOOKS[@]}" | grep -qw archboot_installer; then
echo -e "\e[1mManage Archboot Environment:\e[m" >> "${MOTD}" echo -e "\e[1mManage Archboot Environment Or For Experts:\e[m" >> "${MOTD}"
echo -e " - Use the \e[1;92m'launcher'\e[m or \e[1;92m'update'\e[m script." >> "${MOTD}" echo -e " - Use the \e[1;92m'launcher'\e[m or \e[1;92m'update'\e[m script." >> "${MOTD}"
#shellcheck disable=SC2129 #shellcheck disable=SC2129
echo -e "\e[1mInstallation Or Installation For Experts:\e[m" >> "${MOTD}" echo -e "\e[1mInstallation Or Installation For Experts:\e[m" >> "${MOTD}"

View file

@ -14,7 +14,7 @@
<body> <body>
<p><span><img src="/web/logo.png" alt="Logo"></span></p> <p><span><img src="/web/logo.png" alt="Logo"></span></p>
<h1>Archboot Project | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=Z7GXKW4MKHK7C"><img src="/web/donate.png" alt="Donate"></a></h1> <h1>Archboot Project | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=Z7GXKW4MKHK7C"><img src="/web/donate.png" alt="Donate"></a></h1>
<p><strong>&copy; 2006 - 2023 | <a href=mailto:tpowa@archlinux.org>Tobias Powalowski</a></strong><br>Arch Linux Developer <strong><a href="https://archlinux.org/people/developers/#tpowa">tpowa</a><br>Last update: 17.07.2023 18:49</strong></p> <p><strong>&copy; 2006 - 2023 | <a href=mailto:tpowa@archlinux.org>Tobias Powalowski</a></strong><br>Arch Linux Developer <strong><a href="https://archlinux.org/people/developers/#tpowa">tpowa</a><br>Last update: 18.07.2023 10:02</strong></p>
<nav id="TOC" role="doc-toc"> <nav id="TOC" role="doc-toc">
<ul> <ul>
<li><a href="#introduction" id="toc-introduction"><strong><span class="toc-section-number">1.</span> Introduction</strong></a></li> <li><a href="#introduction" id="toc-introduction"><strong><span class="toc-section-number">1.</span> Introduction</strong></a></li>
@ -35,7 +35,7 @@
<li><a href="#interactive-launcher" id="toc-interactive-launcher"><span class="toc-section-number">3.4</span> Interactive Launcher</a></li> <li><a href="#interactive-launcher" id="toc-interactive-launcher"><span class="toc-section-number">3.4</span> Interactive Launcher</a></li>
<li><a href="#interactive-setup" id="toc-interactive-setup"><span class="toc-section-number">3.5</span> Interactive Setup</a></li> <li><a href="#interactive-setup" id="toc-interactive-setup"><span class="toc-section-number">3.5</span> Interactive Setup</a></li>
<li><a href="#for-experts-quickinst-installation" id="toc-for-experts-quickinst-installation"><span class="toc-section-number">3.6</span> For Experts: Quickinst Installation</a></li> <li><a href="#for-experts-quickinst-installation" id="toc-for-experts-quickinst-installation"><span class="toc-section-number">3.6</span> For Experts: Quickinst Installation</a></li>
<li><a href="#manage-archboot" id="toc-manage-archboot"><span class="toc-section-number">3.7</span> CLI Manage Environment</a></li> <li><a href="#cli-manage-archboot" id="toc-manage-archboot"><span class="toc-section-number">3.7</span> For Experts CLI Manage Environment</a></li>
<li><a href="#tools-for-backup-and-copying-of-an-existing-system" id="toc-tools-for-backup-and-copying-of-an-existing-system"><span class="toc-section-number">3.8</span> Tools For Backup And Copying Of An Existing System</a></li> <li><a href="#tools-for-backup-and-copying-of-an-existing-system" id="toc-tools-for-backup-and-copying-of-an-existing-system"><span class="toc-section-number">3.8</span> Tools For Backup And Copying Of An Existing System</a></li>
<li><a href="#restoring-an-usb-device-to-fat32-state" id="toc-restoring-an-usb-device-to-fat32-state"><span class="toc-section-number">3.9</span> Restoring An USB Device To FAT32 State</a></li> <li><a href="#restoring-an-usb-device-to-fat32-state" id="toc-restoring-an-usb-device-to-fat32-state"><span class="toc-section-number">3.9</span> Restoring An USB Device To FAT32 State</a></li>
<li><a href="#system-configuration" id="toc-system-configuration"><span class="toc-section-number">3.10</span> System configuration on installed system</a></li> <li><a href="#system-configuration" id="toc-system-configuration"><span class="toc-section-number">3.10</span> System configuration on installed system</a></li>
@ -478,7 +478,7 @@
<p>Your <a href="https://wiki.archlinux.org/title/Console_fonts" title="Console fonts"><strong>console fonts</strong></a> and <a href="https://wiki.archlinux.org/title/Keymap" title="Keymap"><strong>keymap</strong></a> will be set by <strong>vconsole</strong> script.</p> <p>Your <a href="https://wiki.archlinux.org/title/Console_fonts" title="Console fonts"><strong>console fonts</strong></a> and <a href="https://wiki.archlinux.org/title/Keymap" title="Keymap"><strong>keymap</strong></a> will be set by <strong>vconsole</strong> script.</p>
<h4 data-number="3.3.3" id="network"><span class="header-section-number">3.3.3</span> <strong>Network Configuration</strong></h4> <h4 data-number="3.3.3" id="network"><span class="header-section-number">3.3.3</span> <strong>Network Configuration</strong></h4>
<ul> <ul>
<li><strong>Offline Mode</strong>: <li><strong>Offline Mode (local medium)</strong>:
<ul> <ul>
<li>Skipped in this mode.</li> <li>Skipped in this mode.</li>
</ul></li> </ul></li>
@ -492,9 +492,9 @@
<h4 data-number="3.3.4" id="clock"><span class="header-section-number">3.3.4</span> <strong>Clock Configuration</strong></h4> <h4 data-number="3.3.4" id="clock"><span class="header-section-number">3.3.4</span> <strong>Clock Configuration</strong></h4>
<p>You set your <a href="https://wiki.archlinux.org/title/Timezone" title="Timezone"><strong>timezone</strong></a> and <a href="https://wiki.archlinux.org/title/Date" title="Date"><strong>date</strong></a> with the <strong>clock</strong> script.</p> <p>You set your <a href="https://wiki.archlinux.org/title/Timezone" title="Timezone"><strong>timezone</strong></a> and <a href="https://wiki.archlinux.org/title/Date" title="Date"><strong>date</strong></a> with the <strong>clock</strong> script.</p>
<h4 data-number="3.3.5" id="pacman"><span class="header-section-number">3.3.5</span> <strong>Pacman Setup</strong></h4> <h4 data-number="3.3.5" id="pacman"><span class="header-section-number">3.3.5</span> <strong>Pacman Setup</strong></h4>
<p>Your <a href="https://wiki.archlinux.org/title/Pacman" title="Pacman"><strong>pacman</strong></a> will be configured by <strong>pacsetup</strong> script.</p> <p><a href="https://wiki.archlinux.org/title/Pacman" title="Pacman"><strong>Pacman</strong></a> will be configured by <strong>pacsetup</strong> script.</p>
<ul> <ul>
<li><strong>Offline Mode</strong>: <li><strong>Offline Mode (local medium)</strong>:
<ul> <ul>
<li>Skipped in this mode.</li> <li>Skipped in this mode.</li>
</ul></li> </ul></li>
@ -511,7 +511,7 @@
<li>You can go straight to <strong>setup</strong>, leave to <strong>shell</strong>, launch <strong>desktop environment</strong> or do <strong>environment management</strong>.</li> <li>You can go straight to <strong>setup</strong>, leave to <strong>shell</strong>, launch <strong>desktop environment</strong> or do <strong>environment management</strong>.</li>
</ul> </ul>
<h4 data-number="3.4.1" id="desktop-environments"><span class="header-section-number">3.4.1</span> <strong>Launch Desktop Environment / Remote VNC Access</strong></h4> <h4 data-number="3.4.1" id="desktop-environments"><span class="header-section-number">3.4.1</span> <strong>Launch Desktop Environment / Remote VNC Access</strong></h4>
<p><a href="https://wiki.archlinux.org/title/Gnome" title="GNOME"><strong>Gnome</strong></a>, <a href="https://wiki.archlinux.org/title/Plasma" title="PLASMA"><strong>Plasma</strong></a>, <a href="https://wiki.archlinux.org/title/Sway" title="SWAY"><strong>Sway</strong></a> and <a href="https://wiki.archlinux.org/title/Xfce" title="XFCE"><strong>Xfce</strong></a> are supported.</p> <p><a href="https://wiki.archlinux.org/title/Gnome" title="Gnome"><strong>Gnome</strong></a>, <a href="https://wiki.archlinux.org/title/Plasma" title="Plasma"><strong>Plasma</strong></a>, <a href="https://wiki.archlinux.org/title/Sway" title="Sway"><strong>Sway</strong></a> and <a href="https://wiki.archlinux.org/title/Xfce" title="XFCE"><strong>Xfce</strong></a> are supported.</p>
<ul> <ul>
<li><a href="https://wiki.archlinux.org/title/VNC" title="VNC"><strong>VNC</strong></a> is automatically launched with starting <a href="https://wiki.archlinux.org/title/Xorg" title="Xorg"><strong>Xorg</strong></a>. <li><a href="https://wiki.archlinux.org/title/VNC" title="VNC"><strong>VNC</strong></a> is automatically launched with starting <a href="https://wiki.archlinux.org/title/Xorg" title="Xorg"><strong>Xorg</strong></a>.
<ul> <ul>
@ -532,7 +532,15 @@
<li>This will also <strong>stop</strong> cleaning the system, while running other <strong>update</strong> tasks.</li> <li>This will also <strong>stop</strong> cleaning the system, while running other <strong>update</strong> tasks.</li>
</ul> </ul>
<h5 data-number="3.4.2.2" id="update-archboot-environment"><span class="header-section-number">3.4.2.2</span> <strong>Update Archboot Environment</strong></h5> <h5 data-number="3.4.2.2" id="update-archboot-environment"><span class="header-section-number">3.4.2.2</span> <strong>Update Archboot Environment</strong></h5>
<ul>
<li>The <strong>Archboot Environment</strong> will be updated to <strong>latest</strong> packages.</li>
<li>Depending on the available <strong>RAM</strong>, you will get the new system with <strong>or</strong> without package cache.</li>
<li>The new system will be booted through <a href="https://wiki.archlinux.org/title/Kexec" title="kexec"><strong>kexec</strong></a>.</li>
</ul>
<h5 data-number="3.4.2.3" id="create-new-images"><span class="header-section-number">3.4.2.3</span> <strong>Create New Images</strong></h5> <h5 data-number="3.4.2.3" id="create-new-images"><span class="header-section-number">3.4.2.3</span> <strong>Create New Images</strong></h5>
<ul>
<li>You will get <strong>new</strong> images with <strong>latest</strong> packages.</li>
</ul>
<h3 data-number="3.5" id="interactive-setup"><span class="header-section-number">3.5</span> <strong>Interactive Setup</strong></h3> <h3 data-number="3.5" id="interactive-setup"><span class="header-section-number">3.5</span> <strong>Interactive Setup</strong></h3>
<ul> <ul>
<li>You can run each menu point for doing the mentioned task.</li> <li>You can run each menu point for doing the mentioned task.</li>
@ -587,7 +595,7 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 data-number="3.7" id="cli-manage-archboot"><span class="header-section-number">3.7</span> <strong>CLI Manage Environment</strong></h3> <h3 data-number="3.7" id="cli-manage-archboot"><span class="header-section-number">3.7</span> <strong>For Experts CLI Manage Environment</strong></h3>
<p>You can always bump your image to <strong>latest</strong> available possibilities.</p> <p>You can always bump your image to <strong>latest</strong> available possibilities.</p>
<table> <table>
<thead> <thead>
@ -734,13 +742,13 @@ The calculated size to boot the image follows the formula:<br>
<td class="MyYes">&#10004;</td> <td class="MyYes">&#10004;</td>
</tr> </tr>
<tr class="odd"> <tr class="odd">
<td>Archboot installer</td> <td>Interactive Setup</td>
<td class="MyYes">&#10004;</td> <td class="MyYes">&#10004;</td>
<td class="MyNo">&#10006;</td> <td class="MyNo">&#10006;</td>
</tr> </tr>
<tr class="even"> <tr class="even">
<td><a href="https://wiki.archlinux.org/title/Archinstall" title="Archinstall"><strong>Archinstall</strong></a></td> <td><a href="https://wiki.archlinux.org/title/Archinstall" title="Archinstall"><strong>Archinstall</strong></a></td>
<td class="MyOpt">&#9733;</td> <td class="MyNo">&#9733;</td>
<td class="MyYes">&#10004;</td> <td class="MyYes">&#10004;</td>
</tr> </tr>
<tr class="odd"> <tr class="odd">
@ -767,11 +775,6 @@ The calculated size to boot the image follows the formula:<br>
<td class="MyYes">&#10004;</td> <td class="MyYes">&#10004;</td>
<td class="MyNo">&#10006;</td> <td class="MyNo">&#10006;</td>
</tr> </tr>
<tr class="even">
<td>Glibc Localization Switch</td>
<td class="MyYes">&#10004;</td>
<td class="MyOpt">&#9733;</td>
</tr>
<tr class="odd"> <tr class="odd">
<td><a href="https://wiki.archlinux.org/title/Accessibility" title="Accessibility"><strong>Accessibility</strong></a> support</td> <td><a href="https://wiki.archlinux.org/title/Accessibility" title="Accessibility"><strong>Accessibility</strong></a> support</td>
<td class="MyNo">&#10006;</td> <td class="MyNo">&#10006;</td>