PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` REDROOM
PHP 5.6.40
Preview: uncloud-init Size: 4.00 KB
/usr/libexec/cloud-init/uncloud-init

#!/bin/sh
# This file is part of cloud-init. See LICENSE file for license information.

# This script is meant to "kvmify" an image.  Its not meant to be
# terribly robust, or a good idea to ever run in a "real image".
# its' only intended method of invocation is from the kernel as 'init'
# in which case it will then invoke /sbin/init after it is done
#  init=/path/to/kvmify-init

KEY="xupdate"
UMOUNT=""
RMDIR=""
MARK=/var/lib/cloud/sem/uncloud-init.once
ROOT_RW=""

doexec() {
	if [ -n "$ROOT_RW" ]; then
		mkdir -p "${MARK%/*}";
		date > "${MARK}";
	fi
	cleanup;
	log "invoking /sbin/init $*"
	exec /sbin/init "$@";
}
log() { echo "::${0##*/}:" "$@"; }
cleanup() {
	[ -z "${UMOUNT}" ] || { umount "${UMOUNT}" && unset UMOUNT; }
	[ -z "${RMDIR}" ] || { rm -Rf "${RMDIR}" && unset RMDIR; }
	[ -z "${ROOT_RW}" ] || { mount -o remount,ro / ; unset ROOT_RW; }
}

updateFrom() {
	local dev=$1 fmt=$2
	local mp="";

	[ "${fmt}" = "tar" -o "${fmt}" = "mnt" ] ||
		{ log FAIL "unknown format ${fmt}"; return 1; }

	log INFO "updating from ${dev} format ${fmt}"
		[ ! -e "${dev}" -a -e "/dev/${dev}" ] && dev="/dev/${dev}"
	[ -e "${dev}" ] || { echo "no file $dev"; return 2; }

	mp=$(mktemp -d "${TEMPDIR:-/tmp}/update.XXXXXX") && 
		RMDIR="${mp}" ||
		{ log FAIL "failed to mktemp"; return 1; }

	if [ "$fmt" = "tar" ]; then
		dd "if=${dev}" | ( tar -C "${mp}" -xf - ) ||
			{ log FAIL "failed to extract ${dev}"; return 1; }
	elif [ "$fmt" = "mnt" ]; then
		mount -o ro "${dev}" "${mp}" && UMOUNT=${mp} ||
			{ log FAIL "failed mount ${mp}"; return 1; }
	else
		log FAIL "unknown format ${fmt}"; return 1;
	fi

	if [ -d "${mp}/updates" ]; then
		rsync -av "${mp}/updates/" "/" ||
			{ log FAIL "failed rsync updates/ /"; return 1; }
	fi
	if [ -f "${mp}/updates.tar" ]; then
		tar -C / -xvf "${mp}/updates.tar" ||
			{ log FAIL "failed tar -C / -xvf ${mp}/updates.tar"; return 1; }
	fi
	script="${mp}/updates.script"
	if [ -f "${script}" -a -x "${script}" ]; then
		MP_DIR=${mp} "${mp}/updates.script" ||
			{ log FAIL "failed to run updates.script"; return 1; }
	fi
}

fail() { { [ $# -eq 0 ] && log "FAILING" ; } || log "$@"; exit 1; }

[ -s "$MARK" ] && { log "already updated" ; doexec "$@"; }

mount -o remount,rw / || fail "failed to mount rw"
ROOT_RW=1

if [ ! -e /proc/cmdline ]; then
	mount -t proc /proc /proc
	read cmdline < /proc/cmdline
	umount /proc
else
	read cmdline < /proc/cmdline
fi

ubuntu_pass=""

for x in ${cmdline}; do
	case "$x" in
		${KEY}=*)
			val=${x#${KEY}=}
			dev=${val%:*}
			[ "${dev}" = "${val}" ] && fmt="" || fmt=${val#${dev}:}
			log "update from ${dev},${fmt}"
			updateFrom "${dev}" "${fmt}" || fail "update failed"
			log "end update  ${dev},${fmt}"
			;;
		ubuntu-pass=*|ubuntu_pass=*) ubuntu_pass=${x#*=};;
		helpmount) helpmount=1;;
		root=*) rootspec=${x#root=};;
	esac
done

if [ "${ubuntu_pass}" = "R" -o "${ubuntu_pass}" = "random" ]; then
	ubuntu_pass=$(python -c 'import string, random;
random.seed(); print "".join(random.sample(string.letters+string.digits, 8))')
	log "settting ubuntu pass = ${ubuntu_pass}" 
	printf "\n===\nubuntu_pass = %s\n===\n" "${ubuntu_pass}" >/dev/ttyS0
fi

[ -z "${ubuntu_pass}" ] ||
	printf "ubuntu:%s\n" "${ubuntu_pass}" > /root/ubuntu-user-pass

if [ -e /root/ubuntu-user-pass ]; then
	log "changing ubuntu user's password!"
	chpasswd < /root/ubuntu-user-pass ||
	log "FAIL: failed changing pass"
fi

cp /etc/init/tty2.conf /etc/init/ttyS0.conf &&
	sed -i s,tty2,ttyS0,g /etc/init/ttyS0.conf 2>/dev/null &&
	log "enabled console on ttyS0"

pa=PasswordAuthentication
sed -i "s,${pa} no,${pa} yes," /etc/ssh/sshd_config 2>/dev/null &&
	log "enabled passwd auth in ssh" ||
	log "failed to enable passwd ssh"

grep -q vga16fb /etc/modprobe.d/blacklist.conf || {
	echo "blacklist vga16fb" >> /etc/modprobe.d/blacklist.conf &&
	log "blacklisted vga16fb"
}

#lstr="${rootspec}"
#if ! grep -q "^${lstr}[[:space:]]" /etc/fstab; then
#	log "changing / in /etc/ftab to agree with cmdline (${lstr}) (bug 509841)"
#	sed -i "s,^\([^[[:space:]#]\+\)\([[:space:]]\+\)/\([[:space:]]\+\),${lstr}\2/\3," /etc/fstab
#fi

doexec "$@"

Directory Contents

Dirs: 1 × Files: 4

Name Size Perms Modified Actions
clouddir DIR
- drwxrwxrwx 2026-01-20 01:16:54
Edit Download
55.70 KB lrwxr-xr-x 2026-01-23 08:56:47
Edit Download
610 B lrwxr-xr-x 2026-01-23 08:56:47
Edit Download
4.00 KB lrwxr-xr-x 2026-01-23 08:56:47
Edit Download
1.92 KB lrwxr-xr-x 2026-01-23 08:56:47
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 REDROOM — Secure File Manager. All rights reserved. Built with ❤️ & Red Dark UI