54a55,57 > #== Livesys == > livesys-base > 58,298d60 < # FIXME: it'd be better to get this installed from a package < cat > /etc/rc.d/init.d/livesys << EOF < #!/bin/bash < # < # live: Init script for live image < # < # chkconfig: 345 00 99 < # description: Init script for live image. < < . /etc/init.d/functions < < if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ]; then < exit 0 < fi < < if [ -e /.liveimg-configured ] ; then < configdone=1 < fi < < exists() { < which \$1 >/dev/null 2>&1 || return < \$* < } < < touch /.liveimg-configured < < # Make sure we don't mangle the hardware clock on shutdown < ln -sf /dev/null /etc/systemd/system/hwclock-save.service < < # mount live image < if [ -b \`readlink -f /dev/live\` ]; then < mkdir -p /mnt/live < mount -o ro /dev/live /mnt/live 2>/dev/null || mount /dev/live /mnt/live < fi < < livedir="LiveOS" < for arg in \`cat /proc/cmdline\` ; do < if [ "\${arg##live_dir=}" != "\${arg}" ]; then < livedir=\${arg##live_dir=} < return < fi < done < < # enable swaps unless requested otherwise < swaps=\`blkid -t TYPE=swap -o device\` < if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then < for s in \$swaps ; do < action "Enabling swap partition \$s" swapon \$s < done < fi < if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /mnt/live/\${livedir}/swap.img ] ; then < action "Enabling swap file" swapon /mnt/live/\${livedir}/swap.img < fi < < mountPersistentHome() { < # support label/uuid < if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then < homedev=\`/sbin/blkid -o device -t "\$homedev"\` < fi < < # if we're given a file rather than a blockdev, loopback it < if [ "\${homedev##mtd}" != "\${homedev}" ]; then < # mtd devs don't have a block device but get magic-mounted with -t jffs2 < mountopts="-t jffs2" < elif [ ! -b "\$homedev" ]; then < loopdev=\`losetup -f\` < if [ "\${homedev##/mnt/live}" != "\${homedev}" ]; then < action "Remounting live store r/w" mount -o remount,rw /mnt/live < fi < losetup \$loopdev \$homedev < homedev=\$loopdev < fi < < # if it's encrypted, we need to unlock it < if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then < echo < echo "Setting up encrypted /home device" < plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome" < homedev=/dev/mapper/EncHome < fi < < # and finally do the mount < mount \$mountopts \$homedev /home < # if we have /home under what's passed for persistent home, then < # we should make that the real /home. useful for mtd device on olpc < if [ -d /home/home ]; then mount --bind /home/home /home ; fi < [ -x /sbin/restorecon ] && /sbin/restorecon /home < if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi < } < < findPersistentHome() { < for arg in \`cat /proc/cmdline\` ; do < if [ "\${arg##persistenthome=}" != "\${arg}" ]; then < homedev=\${arg##persistenthome=} < return < fi < done < } < < if strstr "\`cat /proc/cmdline\`" persistenthome= ; then < findPersistentHome < elif [ -e /mnt/live/\${livedir}/home.img ]; then < homedev=/mnt/live/\${livedir}/home.img < fi < < # if we have a persistent /home, then we want to go ahead and mount it < if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then < action "Mounting persistent /home" mountPersistentHome < fi < < # make it so that we don't do writing to the overlay for things which < # are just tmpdirs/caches < mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum < mount -t tmpfs tmp /tmp < mount -t tmpfs vartmp /var/tmp < [ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1 < < if [ -n "\$configdone" ]; then < exit 0 < fi < < # add fedora user with no passwd < action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser < passwd -d liveuser > /dev/null < < # turn off firstboot for livecd boots < chkconfig --level 345 firstboot off 2>/dev/null < # We made firstboot a native systemd service, so it can no longer be turned < # off with chkconfig. It should be possible to turn it off with systemctl, but < # that doesn't work right either. For now, this is good enough: the firstboot < # service will start up, but this tells it not to run firstboot. I suspect the < # other services 'disabled' below are not actually getting disabled properly, < # with systemd, but we can look into that later. - AdamW 2010/08 F14Alpha < echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot < < # don't use prelink on a running live image < sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : < < # don't start yum-updatesd for livecd boots < chkconfig --level 345 yum-updatesd off 2>/dev/null || : < < # turn off mdmonitor by default < chkconfig --level 345 mdmonitor off 2>/dev/null || : < < # turn off setroubleshoot on the live image to preserve resources < chkconfig --level 345 setroubleshoot off 2>/dev/null || : < < # don't enable the gnome-settings-daemon packagekit plugin < gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || : < < # don't start cron/at as they tend to spawn things which are < # disk intensive that are painful on a live image < chkconfig --level 345 crond off 2>/dev/null || : < chkconfig --level 345 atd off 2>/dev/null || : < < # Stopgap fix for RH #217966; should be fixed in HAL instead < touch /media/.hal-mtab < < # and hack so that we eject the cd on shutdown if we're using a CD... < if strstr "\`cat /proc/cmdline\`" CDLABEL= ; then < cat >> /sbin/halt.local << FOE < #!/bin/bash < # XXX: This often gets stuck during shutdown because /etc/init.d/halt < # (or something else still running) wants to read files from the block\ < # device that was ejected. Disable for now. Bug #531924 < # we want to eject the cd on halt, but let's also try to avoid < # io errors due to not being able to get files... < #cat /sbin/halt > /dev/null < #cat /sbin/reboot > /dev/null < #/usr/sbin/eject -p -m \$(readlink -f /dev/live) >/dev/null 2>&1 < #echo "Please remove the CD from your drive and press Enter to finish restarting" < #read -t 30 < /dev/console < FOE < chmod +x /sbin/halt.local < fi < < EOF < < # bah, hal starts way too late < cat > /etc/rc.d/init.d/livesys-late << EOF < #!/bin/bash < # < # live: Late init script for live image < # < # chkconfig: 345 99 01 < # description: Late init script for live image. < < . /etc/init.d/functions < < if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then < exit 0 < fi < < exists() { < which \$1 >/dev/null 2>&1 || return < \$* < } < < touch /.liveimg-late-configured < < # read some variables out of /proc/cmdline < for o in \`cat /proc/cmdline\` ; do < case \$o in < ks=*) < ks="--kickstart=\${o#ks=}" < ;; < xdriver=*) < xdriver="\${o#xdriver=}" < ;; < esac < done < < # if liveinst or textinst is given, start anaconda < if strstr "\`cat /proc/cmdline\`" liveinst ; then < plymouth --quit < /usr/sbin/liveinst \$ks < fi < if strstr "\`cat /proc/cmdline\`" textinst ; then < plymouth --quit < /usr/sbin/liveinst --text \$ks < fi < < # configure X, allowing user to override xdriver < if [ -n "\$xdriver" ]; then < cat > /etc/X11/xorg.conf.d/00-xdriver.conf < # FIXME: for systemd > # Unash those lines is what I believe you guys are seeking > # > #/bin/ln -sf /lib/systemd/system/systemd-readahead-collect.service /dev/null > #/bin/ln -sf /lib/systemd/system/systemd-readahead-replay.service /dev/null