Debian Live DVD的个性化定制

【导言】通过将config.conf放置在DVD媒体的live目录中,可以更改以下参数。
由于用户密码/sshd访问限制是固定在系统中的,因此需要准备用户shell并进行更改。
还需要更改smb密码。

master@debian-live:~$ ls -l /lib/live/mount/medium/live/
合計 2269015
-rw-r--r-- 1 root root         83  3月 27 01:37 System.map-5.10.0-13-amd64
-rw-r--r-- 1 root root     236106  3月 27 01:37 config-5.10.0-13-amd64
-rw-r--r-- 1 root root       4892  5月 15 12:17 config.conf
-rw-r--r-- 1 root root 2267701248  3月 27 01:37 filesystem.squashfs
-rw-r--r-- 1 root root   48686650  3月 27 01:37 initrd.img-5.10.0-13-amd64
-rw-r--r-- 1 root root    6840768  3月 27 01:37 vmlinuz-5.10.0-13-amd64
master@debian-live:~$

【参数】

変数名パラメータ設定内容LIVE_CONFIG_CMDLINEパラメータ1 パラメータ2 … パラメータnこの変数はブートローダのコマンドラインに相当します。LIVE_CONFIG_COMPONENTS構成要素1,構成要素2, … 構成要素nこの変数は「live-config.components | 構成要素1,構成要素2, … 構成要素n」パラメータに相当します。LIVE_CONFIG_NOCOMPONENTS構成要素1,構成要素2, … 構成要素nこの変数は「live-config.nocomponents | 構成要素1,構成要素2, … 構成要素n」パラメータに相当します。LIVE_DEBCONF_PRESEEDfilesystem|medium|URL1|URL2| … |URLnこの変数は「live-config.debconf-preseed | filesystem|medium|URL1|URL2| … |URLn」パラメータに相当します。LIVE_HOSTNAMEホスト名この変数は「live-config.hostname | ホスト名」パラメータに相当します。LIVE_USERNAMEユーザ名この変数は「live-config.username | ユーザ名」パラメータに相当します。LIVE_USER_DEFAULT_GROUPSグループ1,グループ2 … グループnこの変数は「live-config.user-default-groups | “グループ1,グループ2 … グループn”」パラメータに相当します。LIVE_USER_FULLNAME”ユーザのフルネーム”この変数は「live-config.user-fullname | “ユーザのフルネーム”」パラメータに相当します。LIVE_LOCALESロケール1,ロケール2 … ロケールnこの変数は「live-config.locales | ロケール1,ロケール2 … ロケールn」パラメータに相当します。LIVE_TIMEZONEタイムゾーンこの変数は「live-config.timezone | タイムゾーン」パラメータに相当します。LIVE_KEYBOARD_MODELキーボードの種類この変数は「live-config.keyboard-model | キーボードの種類」パラメータに相当します。LIVE_KEYBOARD_LAYOUTSキーボードレイアウト1,キーボードレイアウト2 … キーボードレイアウトnこの変数は「live-config.keyboard-layouts | キーボードレイアウト1,キーボードレイアウト2… キーボードレイアウトn」パラメータに相当します。LIVE_KEYBOARD_VARIANTSキーボード配列1,キーボード配列2 … キーボード配列nこの変数は「live-config.keyboard-variants | キーボード配列1,キーボード配列2 … キーボード配列n」パラメータに相当します。LIVE_KEYBOARD_OPTIONSキーボードオプションこの変数は「live-config.keyboard-options | キーボードオプション」パラメータに相当します。LIVE_SYSV_RCサービス1,サービス2 … サービスnこの変数は「live-config.sysv-rc | サービス1,サービス2 … サービスn」パラメータに相当します。LIVE_UTCyes|noこの変数は「live-config.utc | yes|no」パラメータに相当します。LIVE_X_SESSION_MANAGERXセッションマネージャこの変数は「live-config.x-session-manager | Xセッションマネージャ」パラメータに相当します。LIVE_XORG_DRIVERXORGドライバこの変数は「live-config.xorg-driver | XORGドライバ」パラメータに相当します。LIVE_XORG_RESOLUTIONXORG解像度この変数は「live-config.xorg-resolution | XORG解像度」パラメータに相当します。LIVE_WLAN_DRIVERWLANドライバこの変数は「live-config.wlan-driver | WLANドライバ」パラメータに相当します。LIVE_HOOKSfilesystem|medium|URL1|URL2| … |URLnこの変数は「live-config.hooks | filesystem|medium|URL1|URL2| … |URLn」パラメータに相当します。LIVE_CONFIG_DEBUGtrue|falseこの変数は「live-config.debug」パラメータに相当します。LIVE_CONFIG_NOAUTOLOGINtrue|
LIVE_CONFIG_NOROOTtrue|
LIVE_CONFIG_NOX11AUTOLOGINtrue|
LIVE_SESSIONplasma.desktop|lxqt.desktop固定値来自Debian Manpages live-config-doc。

【调试输出时的config.conf】

# *****************************************************************************
#set -e
#set -o allexport
set +o | tee
# === Fix Parameters [ /lib/live/init-config.sh ] =============================
#LIVE_HOSTNAME="debian"
#LIVE_USERNAME="user"
#LIVE_USER_FULLNAME="Debian Live user"
#LIVE_USER_DEFAULT_GROUPS="audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth debian-tor"
# === Fix Parameters [ /lib/live/config/0030-live-debconfig_passwd ] ==========
#_PASSWORD="8Ab05sVQ4LLps"				# '/bin/echo "live" | mkpasswd -s'
# === Fix Parameters [ /lib/live/config/0030-user-setup ] =====================
#_PASSWORD="8Ab05sVQ4LLps"				# '/bin/echo "live" | mkpasswd -s'
# === User parameters =========================================================
LIVE_HOSTNAME="debian-live"
# -----------------------------------------------------------------------------
LIVE_USER_FULLNAME="Master"				# full name
LIVE_USERNAME="master"					# user name
LIVE_PASSWORD="master"					# password
#LIVE_CRYPTPWD='8Ab05sVQ4LLps'
# -----------------------------------------------------------------------------
LIVE_LOCALES="ja_JP.UTF-8"
LIVE_KEYBOARD_MODEL="pc105"
LIVE_KEYBOARD_LAYOUTS="jp"
LIVE_KEYBOARD_VARIANTS="OADG109A"
LIVE_TIMEZONE="Asia/Tokyo"
LIVE_UTC="yes"
# -----------------------------------------------------------------------------
set | grep -e "^LIVE_" | tee
# === Change hostname =========================================================
if [ -n "${LIVE_HOSTNAME}" ]; then
	/bin/echo "${LIVE_HOSTNAME}" > /etc/hostname
fi
# === Output to shell files ===================================================
cat <<- '_EOT_SH_' | sed 's/^ //g' > /lib/live/config/9999-user-setting
	#!/bin/sh

	/bin/echo ""
	/bin/echo "Start 9999-user-setting :::::::::::::::::::::::::::::::::::::::::::::::::::::::"

	#. /lib/live/config.sh

	#set -e

	Cmdline ()
	{
	 	:
	}
	
	Init ()
	{
	 	:
	}

	Config ()
	{
	 	# === Change user password ================================================
	 	if [ -n "${LIVE_USERNAME}" ] && [ -n "${LIVE_PASSWORD}" ]; then
	 		/bin/echo ""
	 		/bin/echo "Change user password ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
	#		useradd ${LIVE_USERNAME}
	 		/bin/echo -e "${LIVE_PASSWORD}\n${LIVE_PASSWORD}" | passwd ${LIVE_USERNAME}
	 	fi
	 	# === Change smb password =================================================
	 	if [ -n "`which smbpasswd 2> /dev/null`" ] && [ -n "${LIVE_USERNAME}" ] && [ -n "${LIVE_PASSWORD}" ]; then
	 		/bin/echo ""
	 		/bin/echo "Change smb password :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
	 		smbpasswd -a ${LIVE_USERNAME} -n
	 		/bin/echo -e "${LIVE_PASSWORD}\n${LIVE_PASSWORD}" | smbpasswd ${LIVE_USERNAME}
	 	fi
	 	# === Change sshd configure ===============================================
	 	if [ -f /etc/ssh/sshd_config ]; then
	 		/bin/echo ""
	 		/bin/echo "Change sshd configure :::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
	 		sed -i /etc/ssh/sshd_config \
	 		    -e 's/^#*[ \t]*\(PasswordAuthentication\)[ \t]*.*$/\1 yes/g'
	 	fi
	 	# --- Creating state file -------------------------------------------------
	 	/bin/echo "Creating state file :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
	 	touch /var/lib/live/config/user-setting
	}

	Debug ()
	{
	 	# === Display of parameters ===============================================
	 	/bin/echo ""
	 	/bin/echo "Display of parameters :::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
	 	/bin/echo "LIVE_USER_FULLNAME    =${LIVE_USER_FULLNAME}"
	 	/bin/echo "LIVE_USERNAME         =${LIVE_USERNAME}"
	 	/bin/echo "LIVE_PASSWORD         =${LIVE_PASSWORD}"
	 	/bin/echo "LIVE_CRYPTPWD         =${LIVE_CRYPTPWD}"
	 	/bin/echo "LIVE_LOCALES          =${LIVE_LOCALES}"
	 	/bin/echo "LIVE_KEYBOARD_MODEL   =${LIVE_KEYBOARD_MODEL}"
	 	/bin/echo "LIVE_KEYBOARD_LAYOUTS =${LIVE_KEYBOARD_LAYOUTS}"
	 	/bin/echo "LIVE_KEYBOARD_VARIANTS=${LIVE_KEYBOARD_VARIANTS}"
	 	/bin/echo "LIVE_TIMEZONE         =${LIVE_TIMEZONE}"
	 	/bin/echo "LIVE_UTC              =${LIVE_UTC}"
	}

	Cmdline
	Init
	Config
	#Debug

	/bin/echo ""
	/bin/echo "End 9999-user-setting :::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
_EOT_SH_
chmod +x /lib/live/config/9999-user-setting
# -----------------------------------------------------------------------------
set | grep -e "^LIVE_" | tee
# === Creating state file =====================================================
touch /var/lib/live/config/config-conf
# =============================================================================
#set +e
# === Memo ====================================================================
#	/lib/live/init-config.sh
#	/lib/live/config/0020-hostname
#	/lib/live/config/0030-live-debconfig_passwd
#	/lib/live/config/0030-user-setup
#	/lib/live/config/1160-openssh-server
# *****************************************************************************

【调试输出时的syslog】

master@debian-live:~$ sudo grep live-config /var/log/syslog
May 15 12:21:05 localhost systemd[1]: Starting live-config contains the components that configure a live system during the boot process (late userspace)....
May 15 12:21:05 localhost live-config[603]: set +o errexit
May 15 12:21:05 localhost live-config[603]: set +o noglob
May 15 12:21:05 localhost live-config[603]: set +o ignoreeof
May 15 12:21:05 localhost live-config[603]: set +o interactive
May 15 12:21:05 localhost live-config[603]: set +o monitor
May 15 12:21:05 localhost live-config[603]: set +o noexec
May 15 12:21:05 localhost live-config[603]: set +o stdin
May 15 12:21:05 localhost live-config[603]: set +o xtrace
May 15 12:21:05 localhost live-config[603]: set +o verbose
May 15 12:21:05 localhost live-config[603]: set +o vi
May 15 12:21:05 localhost live-config[603]: set +o emacs
May 15 12:21:05 localhost live-config[603]: set +o noclobber
May 15 12:21:05 localhost live-config[603]: set -o allexport
May 15 12:21:05 localhost live-config[603]: set +o notify
May 15 12:21:05 localhost live-config[603]: set +o nounset
May 15 12:21:05 localhost live-config[603]: set +o privileged
May 15 12:21:05 localhost live-config[603]: set +o nolog
May 15 12:21:05 localhost live-config[603]: set +o debug
May 15 12:21:05 localhost live-config[607]: LIVE_HOSTNAME='debian-live'
May 15 12:21:05 localhost live-config[607]: LIVE_KEYBOARD_LAYOUTS='jp'
May 15 12:21:05 localhost live-config[607]: LIVE_KEYBOARD_MODEL='pc105'
May 15 12:21:05 localhost live-config[607]: LIVE_KEYBOARD_VARIANTS='OADG109A'
May 15 12:21:05 localhost live-config[607]: LIVE_LOCALES='ja_JP.UTF-8'
May 15 12:21:05 localhost live-config[607]: LIVE_PASSWORD='master'
May 15 12:21:05 localhost live-config[607]: LIVE_TIMEZONE='Asia/Tokyo'
May 15 12:21:05 localhost live-config[607]: LIVE_USERNAME='master'
May 15 12:21:05 localhost live-config[607]: LIVE_USER_DEFAULT_GROUPS='audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth debian-tor'
May 15 12:21:05 localhost live-config[607]: LIVE_USER_FULLNAME='Master'
May 15 12:21:05 localhost live-config[607]: LIVE_UTC='yes'
May 15 12:21:05 localhost live-config[618]: LIVE_HOSTNAME='debian-live'
May 15 12:21:05 localhost live-config[618]: LIVE_KEYBOARD_LAYOUTS='jp'
May 15 12:21:05 localhost live-config[618]: LIVE_KEYBOARD_MODEL='pc105'
May 15 12:21:05 localhost live-config[618]: LIVE_KEYBOARD_VARIANTS='OADG109A'
May 15 12:21:05 localhost live-config[618]: LIVE_LOCALES='ja_JP.UTF-8'
May 15 12:21:05 localhost live-config[618]: LIVE_PASSWORD='master'
May 15 12:21:05 localhost live-config[618]: LIVE_TIMEZONE='Asia/Tokyo'
May 15 12:21:05 localhost live-config[618]: LIVE_USERNAME='master'
May 15 12:21:05 localhost live-config[618]: LIVE_USER_DEFAULT_GROUPS='audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth debian-tor'
May 15 12:21:05 localhost live-config[618]: LIVE_USER_FULLNAME='Master'
May 15 12:21:05 localhost live-config[618]: LIVE_UTC='yes'
May 15 12:21:05 localhost live-config[643]: live-config: debconf hostname user-setup sudo locales tzdata
May 15 12:21:05 localhost live-config[643]: Current default time zone: 'Asia/Tokyo'
May 15 12:21:05 localhost live-config[643]: Local time is now:      Sun May 15 12:21:03 JST 2022.
May 15 12:21:05 localhost live-config[643]: Universal Time is now:  Sun May 15 03:21:03 UTC 2022.
May 15 12:21:05 localhost live-config[643]:  lightdm keyboard-configuration policykit ssl-cert anacron util-linux login xserver-xorg xscreensaver
May 15 12:21:05 localhost live-config[643]: Start 9999-user-setting :::::::::::::::::::::::::::::::::::::::::::::::::::::::
May 15 12:21:05 localhost live-config[643]: Change user password ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
May 15 12:21:05 localhost live-config[643]: New password: Retype new password: passwd: password updated successfully
May 15 12:21:05 localhost live-config[643]: Creating state file :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
May 15 12:21:05 localhost live-config[643]: End 9999-user-setting :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
May 15 12:21:05 localhost live-config[643]: .
May 15 12:21:05 localhost systemd[1]: Finished live-config contains the components that configure a live system during the boot process (late userspace)..
master@debian-live:~$

【尾声】
原因を見つけるまでにはかなりの時間がかかりましたが、シェル内の物が使用されているときには、以下のコマンドに”-e”も出力されるため、/bin/echoに変更することで問題が解決しました。

echo -e "${LIVE_PASSWORD}\n${LIVE_PASSWORD}" | passwd ${LIVE_USERNAME}

【自动创建Shell】

live-custom.sh.jpg

以下是一个可能的中文翻译:【参考】

・在Qiita上介绍了用于Debian/Ubuntu/CentOS/Fedora/OpenSUSE的无人安装和Knoppix日语化的媒体创建shell脚本。
・在github.com上的office-itou/Linux/installer项目也有相关内容。

bannerAds