From ff60820c9a2c14ca9a14a0787f3b57007cff2119 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Tue, 6 Mar 2018 14:26:07 +0100 Subject: new module to format newroot's /tmp Uses SLX_TMP_PARTITION_IDENTIFIER from the openslx configuration file to detect which partition to format. Formatting is done either by the command in SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND, if set, or by either mkfs.xfs or mkfs.ext4 as fallbacks --- .../scripts/format_openslx_tmp.sh | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 builder/modules.d/openslx_tmp_format/scripts/format_openslx_tmp.sh (limited to 'builder/modules.d/openslx_tmp_format/scripts') diff --git a/builder/modules.d/openslx_tmp_format/scripts/format_openslx_tmp.sh b/builder/modules.d/openslx_tmp_format/scripts/format_openslx_tmp.sh new file mode 100755 index 00000000..26b6cb81 --- /dev/null +++ b/builder/modules.d/openslx_tmp_format/scripts/format_openslx_tmp.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# +# Formats the partition used for "${NEWROOT}/tmp" +# using filesystem given as SLX_TMP_PARTITION_FILESYSTEM +# if possible. If not, it tries xfs and ext4 as fallbacks. + +command -v emergency_shell >/dev/null || source /lib/dracut-lib.sh + +. /etc/openslx + +if [ -z "${SLX_TMP_PARTITION_IDENTIFIER}" ]; then + emergency_shell "[${BASH_SOURCE[0]}] \ + SLX_TMP_PARTITION_IDENTIFIER not set!" +fi +SLX_TMP_PARTITION_DEVICE="/dev/disk/by-partlabel/${SLX_TMP_PARTITION_IDENTIFIER}" +if [ ! -b "$(readlink -f ${SLX_TMP_PARTITION_DEVICE})" ]; then + emergency_shell "[${BASH_SOURCE[0]}] \ + '${SLX_TMP_PARTITION_DEVICE}' does not point to a block device" +fi + +if [ -z "${SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND}" ] || \ + ! command -v "${SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND%%\ *}" >/dev/null; then + if command -v mkfs.xfs >/dev/null; then + SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND="mkfs.xfs -f" + elif command -v mkfs.ext4 >/dev/null; then + SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND="mkfs.ext4 -F" + else + emergency_shell "[${BASH_SOURCE[0]}] No suitable mkfs command found!" + fi +fi + +if ! ${SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND} "${SLX_TMP_PARTITION_DEVICE}"; then + emergency_shell "[${BASH_SOURCE[0]}] \ + Failed to format '${SLX_TMP_PARTITION_DEVICE}' using: \ + ${SLX_TMP_PARTITION_FILESYSTEM_CREATE_COMMAND}" +fi + +exit 0 -- cgit v1.2.3-55-g7522