0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Debian Live DVDのカスタマイズ

Last updated at Posted at 2022-05-15

【前書き】

DVDメディアのliveディレクトリーにconfig.confを置く事で以下のパラメータを変更する。
ユーザーパスワード/sshdアクセス制限はシステム固定になっているのでユーザーシェルを用意しこれを変更する。
smbパスワードも変更する。

ls -l /lib/live/mount/medium/live/
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_PRESEED filesystem|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_UTC yes|no この変数は「live-config.utc | yes|no」パラメータに相当します。
LIVE_X_SESSION_MANAGER Xセッションマネージャ この変数は「live-config.x-session-manager | Xセッションマネージャ」パラメータに相当します。
LIVE_XORG_DRIVER XORGドライバ この変数は「live-config.xorg-driver | XORGドライバ」パラメータに相当します。
LIVE_XORG_RESOLUTION XORG解像度 この変数は「live-config.xorg-resolution | XORG解像度」パラメータに相当します。
LIVE_WLAN_DRIVER WLANドライバ この変数は「live-config.wlan-driver | WLANドライバ」パラメータに相当します。
LIVE_HOOKS filesystem|medium|URL1|URL2| ... |URLn この変数は「live-config.hooks | filesystem|medium|URL1|URL2| ... |URLn」パラメータに相当します。
LIVE_CONFIG_DEBUG true|false この変数は「live-config.debug」パラメータに相当します。
LIVE_CONFIG_NOAUTOLOGIN true|
LIVE_CONFIG_NOROOT true|
LIVE_CONFIG_NOX11AUTOLOGIN true|
LIVE_SESSION plasma.desktop|lxqt.desktop 固定値

Debian Manpages live-config-docより

【デバッグ出力時のconfig.conf】

/lib/live/mount/medium/live/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】

sudo grep live-config /var/log/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:~$

【後書き】

echoがシェル内の物が使われて以下のコマンドで"-e"も出力され原因が分かるまでかなりの時間を浪費した。/bin/echoに変更し解決。

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

【自動作成シェル】

dist_remaster.shをlive-custom.shにリネームしsudo ./live-custom.shで実行するとカスタマイズしたISOファイルを作成する。
1600行付近の”if [ 1 -eq 1 ]; then”を”0 -eq 1”とかにするとfilesystem.squashfsを変更せずにISOファイルを作成。
live-custom.sh.jpg

【参考】

Qiita:Debian/Ubuntu/CentOS/Fedora/OpenSUSEの無人インストール用とKnoppix日本語化用のメディア作成シェルの紹介
github.com:office-itou/Linux/installer/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?