From b0d3098b9facd9ad16e1924a1ffab81dd6e2e4ae Mon Sep 17 00:00:00 2001 From: asmeron Date: Thu, 24 Aug 2023 19:51:17 +0600 Subject: [PATCH] Fix qemu guest --- ublinux/rc.post.d/09-automount | 16 ++++++++++-- ublinux/rc.preinit.d/01-depmod | 2 +- ublinux/rc.preinit.d/02-modulespreload | 5 ++-- ublinux/rc.preinit.d/03-ldconfig | 3 ++- ublinux/rc.preinit.d/04-update-fonts | 2 +- ublinux/rc.preinit.d/10-system | 2 +- ublinux/rc.preinit.d/12-save2module | 2 +- ublinux/rc.preinit.d/20-services | 2 +- ublinux/rc.preinit.d/21-ntp | 2 +- ublinux/rc.preinit.d/23-realmd | 2 +- ublinux/rc.preinit.d/30-network-hostname | 2 +- ublinux/rc.preinit.d/31-network-proxy-system | 2 +- ublinux/rc.preinit.d/32-network | 2 +- ublinux/rc.preinit.d/40-authpam | 2 +- ublinux/rc.preinit.d/51-autologin | 2 +- ublinux/rc.preinit.d/52-desktop | 2 +- ublinux/rc.preinit.d/53-language | 2 +- ublinux/rc.preinit.d/54-backgrounds | 2 +- ublinux/rc.preinit.d/55-multiseat | 2 +- ublinux/rc.preinit.d/56-openssl-engine | 2 +- ublinux/rc.preinit.d/57-access-denied-vtx11 | 2 +- ublinux/rc.preinit.d/58-access-login | 2 +- ublinux/rc.preinit.d/59-polkit | 2 +- ublinux/rc.preinit.d/63-xorg-dpi | 2 +- ublinux/rc.preinit.d/70-virtualbox | 20 ++++++++------- ublinux/rc.preinit.d/71-vmware | 22 +++++++++-------- ublinux/rc.preinit.d/72-hyperv | 8 +++--- ublinux/rc.preinit.d/73-qemu | 18 ++++++++++---- ublinux/rc.preinit.d/90-apparmor | 10 ++++---- ublinux/rc.preinit.d/99-osinstall | 26 ++++++++++---------- ublinux/rc.preinit/01-inifile | 8 +++--- ublinux/rc.preinit/02-skel-adds | 2 +- ublinux/rc.preinit/03-initvars | 2 +- ublinux/rc.preinit/10-accounts | 2 +- ublinux/templates/ublinux-data.ini | 4 ++- 35 files changed, 110 insertions(+), 78 deletions(-) diff --git a/ublinux/rc.post.d/09-automount b/ublinux/rc.post.d/09-automount index 07794f0..d0918d9 100755 --- a/ublinux/rc.post.d/09-automount +++ b/ublinux/rc.post.d/09-automount @@ -1,7 +1,7 @@ #!/bin/bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no #SMBOPTSDEF="vers=3,nolock,users,noauto" @@ -18,7 +18,8 @@ SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null if [[ -n "${AUTOMOUNT_SHARE[@]}" ]]; then for SHARE in "${!AUTOMOUNT_SHARE[@]}"; do - if [[ "$(cut -d: -f1 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" == "direct" ]]; then + MOUNT_MODE=$(cut -d: -f1 <<< ${AUTOMOUNT_SHARE[${SHARE}]}) + if [[ ${MOUNT_MODE} == "direct" ]]; then PATH_MOUNT_FROM="$(cut -d: -f2 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" [[ -d ${SHARE} ]] && umount -qRlf "${SHARE}" || mkdir -p "${SHARE}" GROUP="$(cut -d: -f3 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" @@ -29,6 +30,17 @@ SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null [[ -z ${OPTS} ]] && OPTS="${OPTSDEF}" [[ -n ${OPTS} ]] && OPTS=" -o ${OPTS}" mount ${PATH_MOUNT_FROM} ${SHARE} ${OPTS} + elif [[ ${MOUNT_MODE} == "virtiofs" ]]; then + PATH_MOUNT_TAG="$(cut -d: -f2 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" + [[ -d ${SHARE} ]] && umount -qRlf "${SHARE}" || mkdir -p "${SHARE}" + GROUP="$(cut -d: -f3 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" + [[ -n ${GROUP} ]] && chown -f root:${GROUP} ${SHARE} + MOD="$(cut -d: -f4 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" + [[ -n ${MOD} ]] && chmod -f ${MOD} "${SHARE}" + OPTS="$(cut -d: -f5 <<< ${AUTOMOUNT_SHARE[${SHARE}]})" + [[ -z ${OPTS} ]] && OPTS="${OPTSDEF}" + [[ -n ${OPTS} ]] && OPTS=" -o ${OPTS}" + mount -t virtiofs ${PATH_MOUNT_TAG} ${SHARE} ${OPTS} fi done fi diff --git a/ublinux/rc.preinit.d/01-depmod b/ublinux/rc.preinit.d/01-depmod index 75a2c3c..0888a13 100755 --- a/ublinux/rc.preinit.d/01-depmod +++ b/ublinux/rc.preinit.d/01-depmod @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[[ ${ENABLED} != "yes" ]] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/02-modulespreload b/ublinux/rc.preinit.d/02-modulespreload index eaf4b37..e6ee3a2 100755 --- a/ublinux/rc.preinit.d/02-modulespreload +++ b/ublinux/rc.preinit.d/02-modulespreload @@ -6,12 +6,13 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 +DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -DEBUGMODE=no . usr/lib/ublinux/functions . usr/lib/ublinux/os-config + debug_mode "$0" "$@" MODULESPRELOAD="" diff --git a/ublinux/rc.preinit.d/03-ldconfig b/ublinux/rc.preinit.d/03-ldconfig index 570e091..ae9b0a3 100755 --- a/ublinux/rc.preinit.d/03-ldconfig +++ b/ublinux/rc.preinit.d/03-ldconfig @@ -1,8 +1,9 @@ #!/bin/bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no + . usr/lib/ublinux/functions . usr/lib/ublinux/os-config debug_mode "$0" "$@" diff --git a/ublinux/rc.preinit.d/04-update-fonts b/ublinux/rc.preinit.d/04-update-fonts index e693e5e..f6fc742 100755 --- a/ublinux/rc.preinit.d/04-update-fonts +++ b/ublinux/rc.preinit.d/04-update-fonts @@ -1,7 +1,7 @@ #!/bin/bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/10-system b/ublinux/rc.preinit.d/10-system index 49ac96c..d578153 100755 --- a/ublinux/rc.preinit.d/10-system +++ b/ublinux/rc.preinit.d/10-system @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no SELF_NAME="10-system" diff --git a/ublinux/rc.preinit.d/12-save2module b/ublinux/rc.preinit.d/12-save2module index 48665c2..feaf30a 100755 --- a/ublinux/rc.preinit.d/12-save2module +++ b/ublinux/rc.preinit.d/12-save2module @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=no -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin DEBUGMODE=no diff --git a/ublinux/rc.preinit.d/20-services b/ublinux/rc.preinit.d/20-services index ad1eb37..b1e4d76 100755 --- a/ublinux/rc.preinit.d/20-services +++ b/ublinux/rc.preinit.d/20-services @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin DEBUGMODE=no diff --git a/ublinux/rc.preinit.d/21-ntp b/ublinux/rc.preinit.d/21-ntp index c997c07..ef1dbfb 100755 --- a/ublinux/rc.preinit.d/21-ntp +++ b/ublinux/rc.preinit.d/21-ntp @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/23-realmd b/ublinux/rc.preinit.d/23-realmd index adbc502..0f7c8b7 100755 --- a/ublinux/rc.preinit.d/23-realmd +++ b/ublinux/rc.preinit.d/23-realmd @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/30-network-hostname b/ublinux/rc.preinit.d/30-network-hostname index 5b86c69..1aa25bb 100755 --- a/ublinux/rc.preinit.d/30-network-hostname +++ b/ublinux/rc.preinit.d/30-network-hostname @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[[ ${ENABLED} != yes ]] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/31-network-proxy-system b/ublinux/rc.preinit.d/31-network-proxy-system index 7299da5..1d830ae 100755 --- a/ublinux/rc.preinit.d/31-network-proxy-system +++ b/ublinux/rc.preinit.d/31-network-proxy-system @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/32-network b/ublinux/rc.preinit.d/32-network index 4fe7849..b7cecc7 100755 --- a/ublinux/rc.preinit.d/32-network +++ b/ublinux/rc.preinit.d/32-network @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/40-authpam b/ublinux/rc.preinit.d/40-authpam index 8c10f04..5f3acff 100755 --- a/ublinux/rc.preinit.d/40-authpam +++ b/ublinux/rc.preinit.d/40-authpam @@ -1,7 +1,7 @@ #!/bin/bash ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/51-autologin b/ublinux/rc.preinit.d/51-autologin index 757e6b9..842068f 100755 --- a/ublinux/rc.preinit.d/51-autologin +++ b/ublinux/rc.preinit.d/51-autologin @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/52-desktop b/ublinux/rc.preinit.d/52-desktop index 7895945..1392c66 100755 --- a/ublinux/rc.preinit.d/52-desktop +++ b/ublinux/rc.preinit.d/52-desktop @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/53-language b/ublinux/rc.preinit.d/53-language index dbec378..1a9eb7d 100755 --- a/ublinux/rc.preinit.d/53-language +++ b/ublinux/rc.preinit.d/53-language @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/54-backgrounds b/ublinux/rc.preinit.d/54-backgrounds index 90ffb67..0a2be3b 100755 --- a/ublinux/rc.preinit.d/54-backgrounds +++ b/ublinux/rc.preinit.d/54-backgrounds @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/55-multiseat b/ublinux/rc.preinit.d/55-multiseat index 193cfcc..228d1eb 100755 --- a/ublinux/rc.preinit.d/55-multiseat +++ b/ublinux/rc.preinit.d/55-multiseat @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/56-openssl-engine b/ublinux/rc.preinit.d/56-openssl-engine index 32adc8d..b5e9036 100755 --- a/ublinux/rc.preinit.d/56-openssl-engine +++ b/ublinux/rc.preinit.d/56-openssl-engine @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/57-access-denied-vtx11 b/ublinux/rc.preinit.d/57-access-denied-vtx11 index ba990c9..2260a59 100755 --- a/ublinux/rc.preinit.d/57-access-denied-vtx11 +++ b/ublinux/rc.preinit.d/57-access-denied-vtx11 @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/58-access-login b/ublinux/rc.preinit.d/58-access-login index 6c71a04..02b1390 100755 --- a/ublinux/rc.preinit.d/58-access-login +++ b/ublinux/rc.preinit.d/58-access-login @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/59-polkit b/ublinux/rc.preinit.d/59-polkit index fbcbbdc..bdfffea 100755 --- a/ublinux/rc.preinit.d/59-polkit +++ b/ublinux/rc.preinit.d/59-polkit @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[[ ${ENABLED} != "yes" ]] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/63-xorg-dpi b/ublinux/rc.preinit.d/63-xorg-dpi index 336880e..4588272 100755 --- a/ublinux/rc.preinit.d/63-xorg-dpi +++ b/ublinux/rc.preinit.d/63-xorg-dpi @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[[ ${ENABLED} != "yes" ]] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin diff --git a/ublinux/rc.preinit.d/70-virtualbox b/ublinux/rc.preinit.d/70-virtualbox index 07e1b5e..a8ec604 100755 --- a/ublinux/rc.preinit.d/70-virtualbox +++ b/ublinux/rc.preinit.d/70-virtualbox @@ -6,17 +6,19 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -. usr/lib/ublinux/functions -. usr/lib/ublinux/os-config + +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" -if grep -qi virtualbox /sys/devices/virtual/dmi/id/*name; then - echo -e vboxguest\\nvboxsf\\nvboxvideo > usr/lib/modules-load.d/vbox-guest-additions.conf - [ -f usr/lib/systemd/system/vboxservice.service ] && ln -sf /usr/lib/systemd/system/vboxservice.service etc/systemd/system/multi-user.target.wants/vboxservice.service -else - rm -f usr/lib/modules-load.d/vbox-guest-additions.conf etc/systemd/system/multi-user.target.wants/vboxservice.service -fi + if grep -qi virtualbox /sys/devices/virtual/dmi/id/*name; then + echo -e vboxguest\\nvboxsf\\nvboxvideo > ${ROOTFS}/usr/lib/modules-load.d/vbox-guest-additions.conf + [[ -f ${ROOTFS}/usr/lib/systemd/system/vboxservice.service ]] && ln -sf /usr/lib/systemd/system/vboxservice.service ${ROOTFS}/etc/systemd/system/multi-user.target.wants/vboxservice.service + else + rm -f ${ROOTFS}/usr/lib/modules-load.d/vbox-guest-additions.conf ${ROOTFS}/etc/systemd/system/multi-user.target.wants/vboxservice.service + fi diff --git a/ublinux/rc.preinit.d/71-vmware b/ublinux/rc.preinit.d/71-vmware index e81b602..84163c3 100755 --- a/ublinux/rc.preinit.d/71-vmware +++ b/ublinux/rc.preinit.d/71-vmware @@ -6,18 +6,20 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -. usr/lib/ublinux/functions -. usr/lib/ublinux/os-config + +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" -if grep -qi vmware /sys/devices/virtual/dmi/id/*name; then - [ -f usr/lib/systemd/system/vmtoolsd.service ] && ln -sf /usr/lib/systemd/system/vmtoolsd.service etc/systemd/system/multi-user.target.wants/vmtoolsd.service - [ -f usr/lib/systemd/system/vmware-vmblock-fuse.service ] && ln -sf /usr/lib/systemd/system/vmtoolsd.service etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service -else - rm -f etc/systemd/system/multi-user.target.wants/vmtoolsd.service - rm -f etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service -fi + if grep -qi vmware /sys/devices/virtual/dmi/id/*name; then + [[ -f ${ROOTFS}/usr/lib/systemd/system/vmtoolsd.service ]] && ln -sf /usr/lib/systemd/system/vmtoolsd.service ${ROOTFS}/etc/systemd/system/multi-user.target.wants/vmtoolsd.service + [[ -f ${ROOTFS}/usr/lib/systemd/system/vmware-vmblock-fuse.service ]] && ln -sf /usr/lib/systemd/system/vmtoolsd.service ${ROOTFS}/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service + else + rm -f ${ROOTFS}/etc/systemd/system/multi-user.target.wants/vmtoolsd.service + rm -f ${ROOTFS}/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service + fi diff --git a/ublinux/rc.preinit.d/72-hyperv b/ublinux/rc.preinit.d/72-hyperv index 66e8e20..0745a2f 100755 --- a/ublinux/rc.preinit.d/72-hyperv +++ b/ublinux/rc.preinit.d/72-hyperv @@ -6,12 +6,14 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -. usr/lib/ublinux/functions -. usr/lib/ublinux/os-config + +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" if grep -qi Microsoft /sys/devices/virtual/dmi/id/*vendor; then diff --git a/ublinux/rc.preinit.d/73-qemu b/ublinux/rc.preinit.d/73-qemu index 8e5f974..6ff8279 100755 --- a/ublinux/rc.preinit.d/73-qemu +++ b/ublinux/rc.preinit.d/73-qemu @@ -16,8 +16,16 @@ SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2> SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" -if grep -qi qemu /sys/devices/virtual/dmi/id/*vendor; then - [[ -f usr/lib/systemd/system/qemu-guest-agent.service ]] && ln -sf /usr/lib/systemd/system/qemu-guest-agent.service etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service -else - rm -f etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service -fi +# if grep -qi qemu /sys/devices/virtual/dmi/id/*vendor; then +# [[ -f usr/lib/systemd/system/qemu-guest-agent.service ]] && ln -sf /usr/lib/systemd/system/qemu-guest-agent.service etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service +# else +# rm -f etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service +# fi + + # Применимо для версии пакета qemu < 8.0.0 + FILE_UDEV_RULES_QUEMU_GUEST="99-qemu-guest-agent.rules" + if [[ ! -f ${ROOTFS}/usr/lib/udev/rules.d/${FILE_UDEV_RULES_QUEMU_GUEST} ]]; then + cat < "${ROOTFS}/usr/lib/udev/rules.d/${FILE_UDEV_RULES_QUEMU_GUEST}" +SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" +EOF + fi diff --git a/ublinux/rc.preinit.d/90-apparmor b/ublinux/rc.preinit.d/90-apparmor index f7ddcda..18be4be 100755 --- a/ublinux/rc.preinit.d/90-apparmor +++ b/ublinux/rc.preinit.d/90-apparmor @@ -6,12 +6,12 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +[[ -d /usr/lib/ublinux ]] && { unset ROOTFS; unset CMD_CHROOT; } || { ROOTFS='.'; CMD_CHROOT='chroot . '; } SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" @@ -25,10 +25,10 @@ SERVICEAPPARMOR="apparmor.service" mkdir -p proc mount -o rbind /proc proc if readlink -fq ${ROOTFS}/usr/bin/init | grep -q "lib/systemd/systemd$"; then - chroot . systemctl unmask ${SERVICEAPPARMOR} - chroot . systemctl enable ${SERVICEAPPARMOR} || chroot . chkconfig --add ${SERVICEAPPARMOR} + ${CMD_CHROOT} ${ROOTFS}/usr/bin/systemctl unmask ${SERVICEAPPARMOR} + ${CMD_CHROOT} ${ROOTFS}/usr/bin/systemctl enable ${SERVICEAPPARMOR} || ${CMD_CHROOT} ${ROOTFS}/usr/bin/chkconfig --add ${SERVICEAPPARMOR} else - chroot . chkconfig --add ${SERVICEAPPARMOR} + ${CMD_CHROOT} ${ROOTFS}/usr/bin/chkconfig --add ${SERVICEAPPARMOR} fi umount proc diff --git a/ublinux/rc.preinit.d/99-osinstall b/ublinux/rc.preinit.d/99-osinstall index 3a4b6d2..1363947 100755 --- a/ublinux/rc.preinit.d/99-osinstall +++ b/ublinux/rc.preinit.d/99-osinstall @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no #PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin @@ -22,18 +22,18 @@ SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null if [ "$(cmdline_parameter ub.osinstall)" ]; then TTY_N=2 EXEC_START="/usr/bin/ubinstall.cli" - sed -i "s/.*NAutoVTs=6.*/NAutoVTs=0/" etc/systemd/logind.conf - sed -i "s/.*ReserveVT=6.*/ReserveVT=0/" etc/systemd/logind.conf - mkdir -p etc/systemd/system/getty@tty${TTY_N}.service.d - echo "[Service]" > etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf - echo "ExecStart=" >> etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf - FONT=$(grep "FONT" etc/vconsole.conf | cut -d= -f2) + sed -i "s/.*NAutoVTs=6.*/NAutoVTs=0/" ${ROOTFS}/etc/systemd/logind.conf + sed -i "s/.*ReserveVT=6.*/ReserveVT=0/" ${ROOTFS}/etc/systemd/logind.conf + mkdir -p ${ROOTFS}/etc/systemd/system/getty@tty${TTY_N}.service.d + echo "[Service]" > ${ROOTFS}/etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf + echo "ExecStart=" >> ${ROOTFS}/etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf + FONT=$(grep "FONT" ${ROOTFS}/etc/vconsole.conf | cut -d= -f2) [[ -z ${FONT} ]] && FONT=${CONSOLE_FONT:-cyr-sun16} - echo "ExecStart=-bash -c \". /etc/locale.conf; export LANG; setfont ${FONT}; ${EXEC_START}\"" >> etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf - echo "StandardInput=tty" >> etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf - echo "StandardOutput=tty" >> etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf - mkdir -p etc/systemd/system/getty.target.wants - ln -sf /usr/lib/systemd/system/getty@.service etc/systemd/system/getty.target.wants/getty@tty${TTY_N}.service - ln -sf /dev/null etc/systemd/system/getty.target.wants/getty@tty1.service + echo "ExecStart=-bash -c \". /etc/locale.conf; export LANG; setfont ${FONT}; ${EXEC_START}\"" >> ${ROOTFS}/etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf + echo "StandardInput=tty" >> ${ROOTFS}/etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf + echo "StandardOutput=tty" >> ${ROOTFS}/etc/systemd/system/getty@tty${TTY_N}.service.d/override.conf + mkdir -p ${ROOTFS}/etc/systemd/system/getty.target.wants + ln -sf /usr/lib/systemd/system/getty@.service ${ROOTFS}/etc/systemd/system/getty.target.wants/getty@tty${TTY_N}.service + ln -sf /dev/null ${ROOTFS}/etc/systemd/system/getty.target.wants/getty@tty1.service fi diff --git a/ublinux/rc.preinit/01-inifile b/ublinux/rc.preinit/01-inifile index 212d6c2..db92ba4 100755 --- a/ublinux/rc.preinit/01-inifile +++ b/ublinux/rc.preinit/01-inifile @@ -6,10 +6,11 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 +DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -DEBUGMODE=no + INIGZFILE=$(find /memory -maxdepth 1 -iname "*.ini.gz") . usr/lib/ublinux/functions . usr/lib/ublinux/os-config @@ -19,7 +20,8 @@ debug_mode "$0" "$@" [ -f $INIGZFILE ] || echo "Config file '*.ini.gz' not found!" grep -q ^/ <<< "${SYSCONF}" && SYSCONF=.${SYSCONF} - mkdir -p "${SYSCONF}" + [[ -d ${SYSCONF} ]] || mkdir -p "${SYSCONF}" + rm -rdf ${SYSCONF}/{..?*,.[!.]*,*} 2>/dev/null # ublinux.ini processing FNAME="${SYSCONF}/config" diff --git a/ublinux/rc.preinit/02-skel-adds b/ublinux/rc.preinit/02-skel-adds index a1ffe38..7ab07e8 100755 --- a/ublinux/rc.preinit/02-skel-adds +++ b/ublinux/rc.preinit/02-skel-adds @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin DEBUGMODE=no diff --git a/ublinux/rc.preinit/03-initvars b/ublinux/rc.preinit/03-initvars index 8a667af..3503435 100755 --- a/ublinux/rc.preinit/03-initvars +++ b/ublinux/rc.preinit/03-initvars @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin DEBUGMODE=no diff --git a/ublinux/rc.preinit/10-accounts b/ublinux/rc.preinit/10-accounts index 9d8b467..8a7abdf 100755 --- a/ublinux/rc.preinit/10-accounts +++ b/ublinux/rc.preinit/10-accounts @@ -6,7 +6,7 @@ # All system path must be relative, except initrd dirs ENABLED=yes -[ "$ENABLED" != "yes" ] && exit 0 +[[ ${ENABLED} == "yes" ]] || exit 0 PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin DEBUGMODE=no diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 099f985..f45b722 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -126,11 +126,12 @@ MACHINEID=hardware ## Пользователь - владелец для fat ntfs #PARTITIONSMOUNTUID=500 -## Автомонтирование папок, внимание на порядковый номер после имени переменной +## Автомонтирование папок ## Пароль кодировать в base64: echo 'password' | base64 ## AUTOMOUNT_SHARE[mountpoint]='cifs:share:username:password_base64:domain:opt' ## AUTOMOUNT_SHARE[/mnt/cifs:share]='cifs://192.168.103.55/share:user:password_base64:domain:noperm,vers=1.0' ## AUTOMOUNT_SHARE[/mnt/sdb1]='direct:/dev/sdb1:wheel:775:noacl' +## AUTOMOUNT_SHARE[/mnt/sdb1]='virtiofs:mytag:wheel:775:' ## AUTOMOUNT_SHARE[/mnt/sshfs/user-1@192.168.1.1]='sshfs:superadmin@192.168.1.1:/home/user-1:password_base64:' #AUTOMOUNT_SHARE[/mnt/share2]='cifs://192.168.103.55/share2:share:password_base64:domain:noperm,vers=1.0' #AUTOMOUNT_SHARE[/mnt/sda4]='direct:/dev/sda4:wheel:775:noacl' @@ -613,6 +614,7 @@ NSSWITCHWINBIND=yes ## CGROUP_QUOTA[user-1000.slice]="MemoryHigh=200M,MemorySwapMax=300M,CPUQuota=100%" ## CGROUP_QUOTA[superadmin]="MemoryHigh=500M,MemorySwapMax=100M,CPUQuota=400%" ## CGROUP_QUOTA[smb.service]="MemoryHigh=100M,MemorySwapMax=0M,CPUQuota=100%" +## CGROUP_QUOTA[superadmin]="MemoryHigh=1G,MemoryMax=7G,MemorySwapMax=64M,CPUQuota=395%,IOReadBandwidthMax=/dev/sda3 1M,IOWriteBandwidthMax=/dev/sdb3 2M,IOReadBandwidthMax=/dev/sdc3 16K,IOWriteBandwidthMax=/dev/sdd3 16K" ## Управление разрешениями действий polkit, можно разрешать для группы пользователей ## POLKIT[id_object]=result:group_1,group_n"