Created
July 27, 2018 13:25
-
-
Save zyga/88ee3137c7ca4e03878008541d5f72d0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#version=DEVEL | |
# Firewall configuration | |
firewall --enabled --service=mdns | |
# X Window System configuration information | |
xconfig --startxonboot | |
repo --name="fedora" --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch | |
repo --name="updates2" --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch | |
# System authorization information | |
auth --useshadow --enablemd5 | |
# System keyboard | |
keyboard us | |
# System language | |
lang en_US.UTF-8 | |
# SELinux configuration | |
selinux --enforcing | |
# Installation logging level | |
logging --level=info | |
# FIXME: Real Anaconda needs this set | |
rootpw changeme | |
# System services | |
services --disabled="network,sshd" --enabled="NetworkManager" | |
# System timezone | |
timezone US/Eastern | |
clearpart --all --drives=vda | |
# Disk partitioning information | |
#part / --fstype="ext4" --size=3072 | |
part / --size=4096 | |
bootloader --location=mbr | |
part biosboot --size=1 | |
part swap --size=512 | |
reboot | |
%post | |
# 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\`" rd.live.image || [ "\$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 | |
livedir="LiveOS" | |
for arg in \`cat /proc/cmdline\` ; do | |
if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then | |
livedir=\${arg##rd.live.dir=} | |
return | |
fi | |
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 /run/initramfs/live/\${livedir}/swap.img ] ; then | |
action "Enabling swap file" swapon /run/initramfs/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##/run/initramfs/live}" != "\${homedev}" ]; then | |
action "Remounting live store r/w" mount -o remount,rw /run/initramfs/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 /run/initramfs/live/\${livedir}/home.img ]; then | |
homedev=/run/initramfs/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 vartmp /var/tmp | |
[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /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 | |
systemctl --no-reload disable firstboot-text.service 2> /dev/null || : | |
systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || : | |
systemctl stop firstboot-text.service 2> /dev/null || : | |
systemctl stop firstboot-graphical.service 2> /dev/null || : | |
# don't use prelink on a running live image | |
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : | |
# turn off mdmonitor by default | |
systemctl --no-reload disable mdmonitor.service 2> /dev/null || : | |
systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || : | |
systemctl stop mdmonitor.service 2> /dev/null || : | |
systemctl stop mdmonitor-takeover.service 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 | |
systemctl --no-reload disable crond.service 2> /dev/null || : | |
systemctl --no-reload disable atd.service 2> /dev/null || : | |
systemctl stop crond.service 2> /dev/null || : | |
systemctl stop atd.service 2> /dev/null || : | |
# 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 /run/initramfs/livedev) >/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 <<FOE | |
Section "Device" | |
Identifier "Videocard0" | |
Driver "\$xdriver" | |
EndSection | |
FOE | |
fi | |
EOF | |
chmod 755 /etc/rc.d/init.d/livesys | |
/sbin/restorecon /etc/rc.d/init.d/livesys | |
/sbin/chkconfig --add livesys | |
chmod 755 /etc/rc.d/init.d/livesys-late | |
/sbin/restorecon /etc/rc.d/init.d/livesys-late | |
/sbin/chkconfig --add livesys-late | |
# enable tmpfs for /tmp | |
systemctl enable tmp.mount | |
# work around for poor key import UI in PackageKit | |
rm -f /var/lib/rpm/__db* | |
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora | |
echo "Packages within this LiveCD" | |
rpm -qa | |
# Note that running rpm recreates the rpm db files which aren't needed or wanted | |
rm -f /var/lib/rpm/__db* | |
# go ahead and pre-make the man -k cache (#455968) | |
/usr/bin/mandb | |
# save a little bit of space at least... | |
# lmc - comment out | |
#rm -f /boot/initramfs* | |
# make sure there aren't core files lying around | |
rm -f /core* | |
# convince readahead not to collect | |
# FIXME: for systemd | |
%end | |
%post --nochroot | |
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL | |
# only works on x86, x86_64 | |
if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then | |
if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi | |
cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS | |
fi | |
%end | |
%post | |
cat >> /etc/rc.d/init.d/livesys << EOF | |
# disable screensaver locking | |
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE | |
[org.gnome.desktop.screensaver] | |
lock-enabled=false | |
FOE | |
# and hide the lock screen option | |
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE | |
[org.gnome.desktop.lockdown] | |
disable-lock-screen=true | |
FOE | |
# disable updates plugin | |
cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE | |
[org.gnome.settings-daemon.plugins.updates] | |
active=false | |
FOE | |
# make the installer show up | |
if [ -f /usr/share/applications/liveinst.desktop ]; then | |
# Show harddisk install in shell dash | |
sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop "" | |
# need to move it to anaconda.desktop to make shell happy | |
mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop | |
cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE | |
[org.gnome.shell] | |
favorite-apps=['firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'openoffice.org-writer.desktop', 'nautilus.desktop', 'anaconda.desktop'] | |
FOE | |
# Make the welcome screen show up | |
if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then | |
mkdir -p ~liveuser/.config/autostart | |
cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/ | |
cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/ | |
chown -R liveuser:liveuser /home/liveuser/.config/ | |
fi | |
fi | |
# rebuild schema cache with any overrides we installed | |
glib-compile-schemas /usr/share/glib-2.0/schemas | |
# set up auto-login | |
cat >> /etc/gdm/custom.conf << FOE | |
[daemon] | |
AutomaticLoginEnable=True | |
AutomaticLogin=liveuser | |
FOE | |
# Turn off PackageKit-command-not-found while uninstalled | |
if [ -f /etc/PackageKit/CommandNotFound.conf ]; then | |
sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf | |
fi | |
EOF | |
%end | |
%packages | |
@anaconda-tools | |
@base-x | |
@core | |
@dial-up | |
@firefox | |
@fonts | |
@gnome-desktop | |
@hardware-support | |
@input-methods | |
@libreoffice | |
@multimedia | |
@printing | |
@standard | |
# lmc | |
dracut-norescue | |
grub-efi | |
syslinux | |
memtest86+ | |
# end lmc | |
anaconda | |
fpaste | |
kernel | |
memtest86+ | |
nss-mdns | |
-*backgrounds-extras | |
-acpid | |
-aspell-* | |
-autofs | |
-coolkey | |
-desktop-backgrounds-basic | |
-dos2unix | |
-evolution-help | |
-finger | |
-foomatic | |
-foomatic-db-ppds | |
-ftp | |
-gnome-user-docs | |
-hpijs | |
-hplip | |
-icedtea-web | |
-isdn4k-utils | |
-java-1.7.0-openjdk | |
-jwhois | |
-krb5-auth-dialog | |
-krb5-workstation | |
-linux-atm | |
-man-pages* | |
-minicom | |
-mpage | |
-mtr | |
-nano | |
-nfs-utils | |
-ntsysv | |
-numactl | |
-pam_krb5 | |
-pinfo | |
-planner | |
-policycoreutils-gui | |
-ql2100-firmware | |
-ql2200-firmware | |
-ql23xx-firmware | |
-ql2400-firmware | |
-ql2500-firmware | |
-quota | |
-rpcbind | |
-rsh | |
-samba-client | |
-sane-backends | |
-smartmontools | |
-sox | |
-system-config-boot | |
-system-config-language | |
-system-config-rootpassword | |
-system-config-services | |
-telnet | |
-wget | |
-words | |
-xsane | |
-xsane-gimp | |
-yp-tools | |
-ypbind | |
%end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<template> | |
<name>f28utility</name> | |
<os> | |
<rootpw>pass</rootpw> | |
<name>Fedora</name> | |
<version>28</version> | |
<arch>x86_64</arch> | |
<install type='url'> | |
<url>http://mirror.onet.pl/pub/mirrors/fedora/linux/releases/28/Everything/x86_64/os/</url> | |
</install> | |
</os> | |
<description>Fedora 28 64 bit image with packages needed for live CD creation</description> | |
<packages> | |
<package name='lorax'/> | |
<package name='hfsplus-tools'/> | |
</packages> | |
</template> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment