summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrtan Samos <drtan@lavabit.com>2013-04-21 18:42:33 +0200
committerDrtan Samos <drtan@lavabit.com>2013-04-21 18:42:33 +0200
commit0e424891efc934ac7e5b334ffb19f3ef667c8b2a (patch)
treede96941b7389a726264ab181a351bc25d0359d67
parent137bcdff54d2764542d9860dfcb1fd4781351209 (diff)
Introducing GNOME featured ISO.
-rw-r--r--configs/gnome/TODO1
-rw-r--r--configs/gnome/aitab3
-rwxr-xr-xconfigs/gnome/build.sh251
-rw-r--r--configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-cd.conf4
-rw-r--r--configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-usb.conf4
-rw-r--r--configs/gnome/efiboot/loader/entries/uefi-shell-v1-x86_64.conf2
-rw-r--r--configs/gnome/efiboot/loader/entries/uefi-shell-v2-x86_64.conf2
-rw-r--r--configs/gnome/efiboot/loader/loader.conf2
-rw-r--r--configs/gnome/isolinux/isolinux.cfg5
-rw-r--r--configs/gnome/mkinitcpio.conf2
-rw-r--r--configs/gnome/packages.both60
-rw-r--r--configs/gnome/packages.i6860
-rw-r--r--configs/gnome/packages.x86_643
-rw-r--r--configs/gnome/pacman.conf100
-rw-r--r--configs/gnome/root-image/etc/fstab0
-rw-r--r--configs/gnome/root-image/etc/hostname1
-rw-r--r--configs/gnome/root-image/etc/locale.conf1
-rw-r--r--configs/gnome/root-image/etc/pam.d/su6
-rw-r--r--configs/gnome/root-image/etc/sudoers.d/g_wheel1
-rw-r--r--configs/gnome/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount8
-rw-r--r--configs/gnome/root-image/etc/systemd/system/pacman-init.service16
-rwxr-xr-xconfigs/gnome/root-image/root/.automated_script.sh34
-rw-r--r--configs/gnome/root-image/root/.zlogin1
-rwxr-xr-xconfigs/gnome/root-image/root/customize_root_image.sh27
-rw-r--r--configs/gnome/root-image/root/network.html265
-rw-r--r--configs/gnome/syslinux/parabolaiso.cfg11
-rw-r--r--configs/gnome/syslinux/parabolaiso_head.cfg25
-rw-r--r--configs/gnome/syslinux/parabolaiso_pxe32.cfg32
-rw-r--r--configs/gnome/syslinux/parabolaiso_pxe64.cfg32
-rw-r--r--configs/gnome/syslinux/parabolaiso_pxe_32_inc.cfg3
-rw-r--r--configs/gnome/syslinux/parabolaiso_pxe_both_inc.cfg4
-rw-r--r--configs/gnome/syslinux/parabolaiso_pxe_choose.cfg11
-rw-r--r--configs/gnome/syslinux/parabolaiso_sys32.cfg9
-rw-r--r--configs/gnome/syslinux/parabolaiso_sys64.cfg9
-rw-r--r--configs/gnome/syslinux/parabolaiso_sys_32_inc.cfg3
-rw-r--r--configs/gnome/syslinux/parabolaiso_sys_both_inc.cfg4
-rw-r--r--configs/gnome/syslinux/parabolaiso_sys_choose.cfg11
-rw-r--r--configs/gnome/syslinux/parabolaiso_tail.cfg27
-rw-r--r--configs/gnome/syslinux/splash.pngbin0 -> 11984 bytes
-rw-r--r--configs/gnome/syslinux/splash.xcfbin0 -> 30760 bytes
-rw-r--r--configs/gnome/syslinux/syslinux.cfg5
41 files changed, 985 insertions, 0 deletions
diff --git a/configs/gnome/TODO b/configs/gnome/TODO
new file mode 100644
index 0000000..4a0113a
--- /dev/null
+++ b/configs/gnome/TODO
@@ -0,0 +1 @@
+- Cannot shutdown/reboot from GNOME. It might be that empty password (which is one used by parabola user) is not accepted. \ No newline at end of file
diff --git a/configs/gnome/aitab b/configs/gnome/aitab
new file mode 100644
index 0000000..b7e9a17
--- /dev/null
+++ b/configs/gnome/aitab
@@ -0,0 +1,3 @@
+# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
+root-image / i686 xz ext4 50%
+root-image / x86_64 xz ext4 50%
diff --git a/configs/gnome/build.sh b/configs/gnome/build.sh
new file mode 100755
index 0000000..13574b8
--- /dev/null
+++ b/configs/gnome/build.sh
@@ -0,0 +1,251 @@
+#!/bin/bash
+
+set -e -u
+
+iso_name=parabola
+iso_label="PARABOLA_$(date +%Y%m)"
+iso_version=$(date +%Y.%m.%d)
+install_dir=parabola
+work_dir=work
+out_dir=out
+
+arch=$(uname -m)
+verbose=""
+pacman_conf=${work_dir}/pacman.conf
+script_path=$(readlink -f ${0%/*})
+
+_usage ()
+{
+ echo "usage ${0} [options]"
+ echo
+ echo " General options:"
+ echo " -N <iso_name> Set an iso filename (prefix)"
+ echo " Default: ${iso_name}"
+ echo " -V <iso_version> Set an iso version (in filename)"
+ echo " Default: ${iso_version}"
+ echo " -L <iso_label> Set an iso label (disk label)"
+ echo " Default: ${iso_label}"
+ echo " -D <install_dir> Set an install_dir (directory inside iso)"
+ echo " Default: ${install_dir}"
+ echo " -w <work_dir> Set the working directory"
+ echo " Default: ${work_dir}"
+ echo " -o <out_dir> Set the output directory"
+ echo " Default: ${out_dir}"
+ echo " -v Enable verbose output"
+ echo " -h This help message"
+ exit ${1}
+}
+
+# Helper function to run make_*() only one time per architecture.
+run_once() {
+ if [[ ! -e ${work_dir}/build.${1}_${arch} ]]; then
+ $1
+ touch ${work_dir}/build.${1}_${arch}
+ fi
+}
+
+# Setup custom pacman.conf with current cache directories.
+make_pacman_conf() {
+ local _cache_dirs
+ _cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g'))
+ sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf}
+}
+
+# Base installation, plus needed packages (root-image)
+make_basefs() {
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install
+}
+
+# Additional packages (root-image)
+make_packages() {
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install
+}
+
+# Copy mkinitcpio parabolaiso hooks and build initramfs (root-image)
+make_setup_mkinitcpio() {
+ local _hook
+ for _hook in parabolaiso parabolaiso_shutdown parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_loop_mnt; do
+ cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/hooks
+ cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install
+ done
+ cp /usr/lib/initcpio/install/parabolaiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install
+ cp /usr/lib/initcpio/parabolaiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio
+ cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-parabolaiso.conf
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run
+}
+
+# Customize installation (root-image)
+make_customize_root_image() {
+ cp -af ${script_path}/root-image ${work_dir}/${arch}
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run
+ rm ${work_dir}/${arch}/root-image/root/customize_root_image.sh
+}
+
+# Prepare kernel/initramfs ${install_dir}/boot/
+make_boot() {
+ mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch}
+ cp ${work_dir}/${arch}/root-image/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img
+ cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz
+}
+
+# Add other aditional/extra files to ${install_dir}/boot/
+make_boot_extra() {
+ cp ${work_dir}/${arch}/root-image/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest
+ cp ${work_dir}/${arch}/root-image/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING
+}
+
+# Prepare /${install_dir}/boot/syslinux
+make_syslinux() {
+ mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux
+ for _cfg in ${script_path}/syslinux/*.cfg; do
+ sed "s|%PARABOLAISO_LABEL%|${iso_label}|g;
+ s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/}
+ done
+ cp ${script_path}/syslinux/splash.png ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/*.com ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/*.0 ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux
+ mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt
+ gzip -c -9 ${work_dir}/${arch}/root-image/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz
+ gzip -c -9 ${work_dir}/${arch}/root-image/usr/lib/modules/*-LIBRE/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz
+}
+
+# Prepare /isolinux
+make_isolinux() {
+ mkdir -p ${work_dir}/iso/isolinux
+ sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/
+}
+
+# Prepare /EFI
+make_efi() {
+ mkdir -p ${work_dir}/iso/EFI/boot
+ cp ${work_dir}/x86_64/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi
+
+ mkdir -p ${work_dir}/iso/loader/entries
+ cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/
+ cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/
+ cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/
+
+ sed "s|%PARABOLAISO_LABEL%|${iso_label}|g;
+ s|%INSTALL_DIR%|${install_dir}|g" \
+ ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf
+
+ # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell )
+ curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi
+ # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell )
+ curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi
+}
+
+# Prepare efiboot.img::/EFI for "El Torito" EFI boot mode
+make_efiboot() {
+ mkdir -p ${work_dir}/iso/EFI/parabolaiso
+ truncate -s 31M ${work_dir}/iso/EFI/parabolaiso/efiboot.img
+ mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img
+
+ mkdir -p ${work_dir}/efiboot
+ mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot
+
+ mkdir -p ${work_dir}/efiboot/EFI/parabolaiso
+ cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/parabolaiso/vmlinuz.efi
+ cp ${work_dir}/iso/${install_dir}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot/EFI/parabolaiso/parabolaiso.img
+
+ mkdir -p ${work_dir}/efiboot/EFI/boot
+ cp ${work_dir}/x86_64/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi
+
+ mkdir -p ${work_dir}/efiboot/loader/entries
+ cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/
+ cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/
+ cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/
+
+ sed "s|%PARABOLAISO_LABEL%|${iso_label}|g;
+ s|%INSTALL_DIR%|${install_dir}|g" \
+ ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/parabolaiso-x86_64.conf
+
+ cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/
+ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/
+
+ umount ${work_dir}/efiboot
+}
+
+# Copy aitab
+make_aitab() {
+ mkdir -p ${work_dir}/iso/${install_dir}
+ cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab
+}
+
+# Build all filesystem images specified in aitab (.fs.sfs .sfs)
+make_prepare() {
+ cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir}
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist
+ setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare
+ rm -rf ${work_dir}/root-image
+ # rm -rf ${work_dir}/${arch}/root-image (if low space, this helps)
+}
+
+# Build ISO
+make_iso() {
+ mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum
+ mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso"
+}
+
+if [[ ${EUID} -ne 0 ]]; then
+ echo "This script must be run as root."
+ _usage 1
+fi
+
+if [[ ${arch} != x86_64 ]]; then
+ echo "This script needs to be run on x86_64"
+ _usage 1
+fi
+
+while getopts 'N:V:L:D:w:o:vh' arg; do
+ case "${arg}" in
+ N) iso_name="${OPTARG}" ;;
+ V) iso_version="${OPTARG}" ;;
+ L) iso_label="${OPTARG}" ;;
+ D) install_dir="${OPTARG}" ;;
+ w) work_dir="${OPTARG}" ;;
+ o) out_dir="${OPTARG}" ;;
+ v) verbose="-v" ;;
+ h) _usage 0 ;;
+ *)
+ echo "Invalid argument '${arg}'"
+ _usage 1
+ ;;
+ esac
+done
+
+mkdir -p ${work_dir}
+
+run_once make_pacman_conf
+
+# Do all stuff for each root-image
+for arch in i686 x86_64; do
+ run_once make_basefs
+ run_once make_packages
+ run_once make_setup_mkinitcpio
+ run_once make_customize_root_image
+done
+
+for arch in i686 x86_64; do
+ run_once make_boot
+done
+
+# Do all stuff for "iso"
+run_once make_boot_extra
+run_once make_syslinux
+run_once make_isolinux
+run_once make_efi
+run_once make_efiboot
+
+run_once make_aitab
+
+for arch in i686 x86_64; do
+ run_once make_prepare
+done
+
+run_once make_iso
diff --git a/configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-cd.conf b/configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-cd.conf
new file mode 100644
index 0000000..057e14f
--- /dev/null
+++ b/configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-cd.conf
@@ -0,0 +1,4 @@
+title Parabola GNU/Linux-libre parabolaiso x86_64 UEFI CD
+linux /EFI/parabolaiso/vmlinuz.efi
+initrd /EFI/parabolaiso/parabolaiso.img
+options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
diff --git a/configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-usb.conf b/configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-usb.conf
new file mode 100644
index 0000000..3863799
--- /dev/null
+++ b/configs/gnome/efiboot/loader/entries/parabolaiso-x86_64-usb.conf
@@ -0,0 +1,4 @@
+title Parabola GNU/Linux-libre parabolaiso x86_64 UEFI USB
+linux /%INSTALL_DIR%/boot/x86_64/vmlinuz
+initrd /%INSTALL_DIR%/boot/x86_64/parabolaiso.img
+options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
diff --git a/configs/gnome/efiboot/loader/entries/uefi-shell-v1-x86_64.conf b/configs/gnome/efiboot/loader/entries/uefi-shell-v1-x86_64.conf
new file mode 100644
index 0000000..9597ff2
--- /dev/null
+++ b/configs/gnome/efiboot/loader/entries/uefi-shell-v1-x86_64.conf
@@ -0,0 +1,2 @@
+title UEFI Shell x86_64 v1
+efi /EFI/shellx64_v1.efi
diff --git a/configs/gnome/efiboot/loader/entries/uefi-shell-v2-x86_64.conf b/configs/gnome/efiboot/loader/entries/uefi-shell-v2-x86_64.conf
new file mode 100644
index 0000000..0dde77a
--- /dev/null
+++ b/configs/gnome/efiboot/loader/entries/uefi-shell-v2-x86_64.conf
@@ -0,0 +1,2 @@
+title UEFI Shell x86_64 v2
+efi /EFI/shellx64_v2.efi
diff --git a/configs/gnome/efiboot/loader/loader.conf b/configs/gnome/efiboot/loader/loader.conf
new file mode 100644
index 0000000..ba02c50
--- /dev/null
+++ b/configs/gnome/efiboot/loader/loader.conf
@@ -0,0 +1,2 @@
+timeout 3
+default parabolaiso-x86_64
diff --git a/configs/gnome/isolinux/isolinux.cfg b/configs/gnome/isolinux/isolinux.cfg
new file mode 100644
index 0000000..3ee24e0
--- /dev/null
+++ b/configs/gnome/isolinux/isolinux.cfg
@@ -0,0 +1,5 @@
+DEFAULT loadconfig
+
+LABEL loadconfig
+ CONFIG /%INSTALL_DIR%/boot/syslinux/parabolaiso.cfg
+ APPEND /%INSTALL_DIR%/
diff --git a/configs/gnome/mkinitcpio.conf b/configs/gnome/mkinitcpio.conf
new file mode 100644
index 0000000..f980765
--- /dev/null
+++ b/configs/gnome/mkinitcpio.conf
@@ -0,0 +1,2 @@
+HOOKS="base udev timestamp memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard"
+COMPRESSION="xz"
diff --git a/configs/gnome/packages.both b/configs/gnome/packages.both
new file mode 100644
index 0000000..2b32e39
--- /dev/null
+++ b/configs/gnome/packages.both
@@ -0,0 +1,60 @@
+arch-install-scripts
+btrfs-progs
+crda
+darkhttpd
+ddrescue
+dhclient
+dialog
+dmraid
+dnsmasq
+dnsutils
+dosfstools
+elinks
+ethtool
+fsarchiver
+gnu-netcat
+gptfdisk
+grml-zsh-config
+grub-bios
+haveged
+hdparm
+irssi
+lftp
+lilo
+linux-atm
+linux-libre-kmod-alx
+mc
+mtools
+nfs-utils
+nilfs-utils
+nmap
+ntfs-3g
+ntp
+openconnect
+openssh
+openvpn
+partclone
+parted
+partimage
+pptpclient
+rfkill
+rp-pppoe
+rsync
+smartmontools
+sudo
+tcpdump
+testdisk
+usb_modeswitch
+vpnc
+wget
+wireless_tools
+wpa_actiond
+zile
+wvdial
+xl2tpd
+zsh
+
+# GNOME Desktop Environment
+gnome
+gnome-extra
+xorg \ No newline at end of file
diff --git a/configs/gnome/packages.i686 b/configs/gnome/packages.i686
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/configs/gnome/packages.i686
diff --git a/configs/gnome/packages.x86_64 b/configs/gnome/packages.x86_64
new file mode 100644
index 0000000..aceb6cf
--- /dev/null
+++ b/configs/gnome/packages.x86_64
@@ -0,0 +1,3 @@
+grub-efi-x86_64
+gummiboot
+refind-efi
diff --git a/configs/gnome/pacman.conf b/configs/gnome/pacman.conf
new file mode 100644
index 0000000..108260d
--- /dev/null
+++ b/configs/gnome/pacman.conf
@@ -0,0 +1,100 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+HoldPkg = pacman glibc
+# If upgrades are available for these packages they will be asked for first
+SyncFirst = pacman
+#XferCommand = /usr/bin/curl -C - -f %u > %o
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#UseDelta
+#TotalDownload
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+#SigLevel = Optional TrustedOnly
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all official Parabola GNU/Linux-libre
+# packagers with `pacman-key --populate archlinux`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+[libre]
+SigLevel = PackageRequired
+Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#SigLevel = PackageRequired
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+SigLevel = PackageRequired
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+SigLevel = PackageRequired
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#SigLevel = PackageRequired
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+SigLevel = PackageRequired
+Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
+
diff --git a/configs/gnome/root-image/etc/fstab b/configs/gnome/root-image/etc/fstab
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/configs/gnome/root-image/etc/fstab
diff --git a/configs/gnome/root-image/etc/hostname b/configs/gnome/root-image/etc/hostname
new file mode 100644
index 0000000..8aaf41b
--- /dev/null
+++ b/configs/gnome/root-image/etc/hostname
@@ -0,0 +1 @@
+parabolaiso
diff --git a/configs/gnome/root-image/etc/locale.conf b/configs/gnome/root-image/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/configs/gnome/root-image/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/configs/gnome/root-image/etc/pam.d/su b/configs/gnome/root-image/etc/pam.d/su
new file mode 100644
index 0000000..a291042
--- /dev/null
+++ b/configs/gnome/root-image/etc/pam.d/su
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth sufficient pam_wheel.so trust use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/configs/gnome/root-image/etc/sudoers.d/g_wheel b/configs/gnome/root-image/etc/sudoers.d/g_wheel
new file mode 100644
index 0000000..8c45359
--- /dev/null
+++ b/configs/gnome/root-image/etc/sudoers.d/g_wheel
@@ -0,0 +1 @@
+%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/configs/gnome/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/gnome/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
new file mode 100644
index 0000000..4eab551
--- /dev/null
+++ b/configs/gnome/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
@@ -0,0 +1,8 @@
+[Unit]
+Description=Temporary /etc/pacman.d/gnupg directory
+
+[Mount]
+What=tmpfs
+Where=/etc/pacman.d/gnupg
+Type=tmpfs
+Options=mode=0755
diff --git a/configs/gnome/root-image/etc/systemd/system/pacman-init.service b/configs/gnome/root-image/etc/systemd/system/pacman-init.service
new file mode 100644
index 0000000..3414ebc
--- /dev/null
+++ b/configs/gnome/root-image/etc/systemd/system/pacman-init.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Initializes Pacman keyring
+Wants=haveged.service
+After=haveged.service
+Requires=etc-pacman.d-gnupg.mount
+After=etc-pacman.d-gnupg.mount
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/pacman-key --init
+ExecStart=/usr/bin/pacman-key --populate archlinux
+ExecStart=/usr/bin/pacman-key --populate parabola
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/gnome/root-image/root/.automated_script.sh b/configs/gnome/root-image/root/.automated_script.sh
new file mode 100755
index 0000000..fb106da
--- /dev/null
+++ b/configs/gnome/root-image/root/.automated_script.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+script_cmdline ()
+{
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ script=*) echo "${param##*=}" ; return 0 ;;
+ esac
+ done
+}
+
+automated_script ()
+{
+ local script rt
+ script="$(script_cmdline)"
+ if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
+ if [[ "${script}" =~ ^http:// || "${script}" =~ ^ftp:// ]]; then
+ wget "${script}" --retry-connrefused -q -O /tmp/startup_script >/dev/null
+ rt=$?
+ else
+ cp "${script}" /tmp/startup_script
+ rt=$?
+ fi
+ if [[ ${rt} -eq 0 ]]; then
+ chmod +x /tmp/startup_script
+ /tmp/startup_script
+ fi
+ fi
+}
+
+if [[ $(tty) == "/dev/tty1" ]]; then
+ automated_script
+fi
diff --git a/configs/gnome/root-image/root/.zlogin b/configs/gnome/root-image/root/.zlogin
new file mode 100644
index 0000000..f598e43
--- /dev/null
+++ b/configs/gnome/root-image/root/.zlogin
@@ -0,0 +1 @@
+~/.automated_script.sh
diff --git a/configs/gnome/root-image/root/customize_root_image.sh b/configs/gnome/root-image/root/customize_root_image.sh
new file mode 100755
index 0000000..71e3348
--- /dev/null
+++ b/configs/gnome/root-image/root/customize_root_image.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+set -e -u
+
+sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
+locale-gen
+
+ln -sf /usr/share/zoneinfo/UTC /etc/localtime
+
+usermod -s /bin/zsh root
+cp -aT /etc/skel/ /root/
+
+useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /bin/zsh parabola
+
+chmod 750 /etc/sudoers.d
+chmod 440 /etc/sudoers.d/g_wheel
+
+sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
+
+sed 's#\(^ExecStart=-/sbin/agetty\)#\1 --autologin root#;
+ s#\(^Alias=getty.target.wants/\).\+#\1autologin@tty1.service#' \
+ /usr/lib/systemd/system/getty@.service > /etc/systemd/system/autologin@.service
+
+systemctl disable getty@tty1.service
+
+# Remember to not to include multi-user.target, because it stops gdm.service from starting at boot.
+systemctl enable pacman-init.service autologin@.service dhcpcd.service NetworkManager.service gdm.service
diff --git a/configs/gnome/root-image/root/network.html b/configs/gnome/root-image/root/network.html
new file mode 100644
index 0000000..b6bd5cc
--- /dev/null
+++ b/configs/gnome/root-image/root/network.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html>
+<head></head><body>
+<h1 id="g0.1">Start installing - Establish an internet connection</h2>
+<p>This document is from the Installation section of the Beginners Guide. It shows how to connect to the internet using the Parabola live media. After connecting to the internet, the <a href="https://wiki.parabolagnulinux.org/Installation_Guide" title="Installation Guide">Installation Guide</a> (online link) can be followed to complete the installation.</p>
+<div style="padding: 5px; margin: 2.00em 0; background-color: #DDFFDD; border: thin solid #BBDDBB; overflow: hidden;">
+<table id="toc" class="toc">
+<tbody>
+<tr>
+<td>
+<div id="toctitle">
+<h2>Contents</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#Installation"><span class="tocnumber">1</span> <span class="toctext">Installation</span></a>
+<ul>
+<li class="toclevel-2 tocsection-2"><a href="#Change_the_language"><span class="tocnumber">1.1</span> <span class="toctext">Change the language</span></a></li>
+<li class="toclevel-2 tocsection-3"><a href="#Establish_an_internet_connection"><span class="tocnumber">1.2</span> <span class="toctext">Establish an internet connection</span></a>
+<ul>
+<li class="toclevel-3 tocsection-4"><a href="#Wired"><span class="tocnumber">1.2.1</span> <span class="toctext">Wired</span></a></li>
+<li class="toclevel-3 tocsection-5"><a href="#Wireless"><span class="tocnumber">1.2.2</span> <span class="toctext">Wireless</span></a></li>
+<li class="toclevel-3 tocsection-6"><a href="#xDSL_.28PPPoE.29.2C_analog_modem_or_ISDN"><span class="tocnumber">1.2.3</span> <span class="toctext">xDSL (PPPoE), analog modem or ISDN</span></a></li>
+<li class="toclevel-3 tocsection-7"><a href="#Behind_a_proxy_server"><span class="tocnumber">1.2.4</span> <span class="toctext">Behind a proxy server</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<h2 id="g0.1">Installation </h2>
+<p>You are now presented with a shell prompt, automatically logged in as root.
+</p>
+<h3 id="g0.1.1">Change the language </h3>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDFFDD; border: thin solid #BBDDBB; overflow: hidden;"><strong> Tip: </strong>These are optional for the majority of users. Useful only if you plan on writing in your own language in any of the configuration files, if you use diacritical marks in the Wi-Fi password, or if you would like to receive system messages (e.g. possible errors) in your own language.</div>
+<p>By default, the keyboard layout is set to <code style="display:inline-block; padding: 0.1em 0.3em;">us</code>. If you have a non-<a href="http://en.wikipedia.org/wiki/File:KB_United_States-NoAltGr.svg" class="extiw" title="wikipedia:File:KB United States-NoAltGr.svg">US</a> keyboard layout, run:
+</p>
+<pre># loadkeys <i>layout</i>
+</pre>
+<p>...where <i>layout</i> can be <code style="display:inline-block; padding: 0.1em 0.3em;">fr</code>, <code style="display:inline-block; padding: 0.1em 0.3em;">uk</code>, <code style="display:inline-block; padding: 0.1em 0.3em;">be-latin1</code>, etc. See <a href="https://wiki.archlinux.org/index.php/KEYMAP#Keyboard_layouts" title="KEYMAP">here</a> for a comprehensive list.
+</p>
+<p>The font should also be changed, because most languages use more glyphs than the 26 letter <a href="http://en.wikipedia.org/wiki/English_alphabet" class="extiw" title="wikipedia:English alphabet">English alphabet</a>. Otherwise some foreign characters may show up as white squares or as other symbols. Note that the name is case-sensitive, so please type it <i>exactly</i> as you see it:
+</p>
+<pre># setfont Lat2-Terminus16
+</pre>
+<p>By default, the language is set to English (US). If you would like to change the language for the install process <i>(German, in this example)</i>, remove the <code style="display:inline-block; padding: 0.1em 0.3em;">#</code> in front of the <a rel="nofollow" class="external text" href="http://www.greendesktiny.com/support/knowledgebase_detail.php?ref=EUH-483">locale</a> you want from <code style="display:inline-block; padding: 0.1em 0.3em;">/etc/locale.gen</code>, along with English (US). Please choose the <code style="display:inline-block; padding: 0.1em 0.3em;">UTF-8</code> entry.
+</p>
+<p>Use <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">Ctrl+X</code> to exit, and when prompted to save changes, press <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">Y</code> and <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">Enter</code> to use the same filename.
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># nano /etc/locale.gen</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">en_US.UTF-8 UTF-8
+de_DE.UTF-8 UTF-8# locale-gen
+# export LANG=de_DE.UTF-8
+</pre>
+<p>Remember, <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">LAlt+LShift</code> activates and deactivates the keymap.
+</p>
+<h3 id="g0.1.2">Establish an internet connection </h3>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #FFDDDD; border: thin solid #DDBBBB; overflow: hidden;"><strong> Warning: </strong>udev no longer assigns network interface names according to the wlanX and ethX naming scheme. If you're coming from a different distribution or are reinstalling Parabola and not aware of the new interface naming style, please do not assume that your wireless interface is named wlan0, or that your wired interface is named eth0. You can use the "ip" utility to discover the names of your interfaces.</div>
+<p>From systemd-197's release and onward, udev now assigns predictable, stable network interface names that deviate from the legacy incremental naming scheme (wlan0, wlan1, etc.). These interface names are guaranteed to be persistent across reboots, which solves the problem of the lack of predictability of network interface name assignment. For more information about why this was necessary, read <a rel="nofollow" class="external free" href="http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames">http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames</a> .
+</p>
+<p>The <code style="display:inline-block; padding: 0.1em 0.3em;">dhcpcd</code> network daemon is started automatically at boot and it will attempt to start a wired connection, if available. Try pinging a website to see if it was successful. And since Google is always on...
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># ping -c 3 www.google.com</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">PING www.l.google.com (74.125.132.105) 56(84) bytes of data.
+64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms
+64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms
+64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms
+
+--- www.l.google.com ping statistics ---
+3 packets transmitted, 3 received, 0% packet loss, time 2003ms
+rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms</pre>
+<p>If you get a <code style="display:inline-block; padding: 0.1em 0.3em;">ping: unknown host</code> error, first check if there is any problem with your cable (or if you have enough wireless signal), otherwise you will need to set up the network manually, as explained below.
+</p>
+<p>Otherwise, move on to <a href="#Prepare_the_storage_drive">Prepare the storage drive</a>.
+</p>
+<h4 id="g0.1.2.1">Wired </h4>
+<p>Follow this procedure if you need to set up a wired connection via a static IP address.
+</p>
+<p>First, identify the name of your ethernet interface.
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># ip link</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
+ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+2: enp2s0f0: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
+ link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
+3: wlp3s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
+ link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff</pre>
+<p>In this case, the ethernet interface is enp2s0f0. If you're unsure, your ethernet interface is likely to start with the letter "e", and unlikely to be "lo" or start with the letter "w". You can also use iwconfig and see which interfaces are not wireless:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># iwconfig</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">enp2s0f0 no wireless extensions.
+wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97"
+ Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF
+ Bit Rate=65 Mb/s Tx-Power=16 dBm
+ Retry long limit:7 RTS thr:off Fragment thr:off
+ Power Management:on
+ Link Quality=61/70 Signal level=-49 dBm
+ Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
+ Tx excessive retries:0 Invalid misc:430 Missed beacon:0
+lo no wireless extensions.</pre>
+<p>In this example, neither enp2s0f0 nor the loopback device have wireless extensions, meaning enp2s0f0 is our ethernet interface.
+</p>
+<p>You also need to know these settings:
+</p>
+<ul>
+<li> Static IP address.
+</li>
+<li> Subnet mask.
+</li>
+<li> Gateway's IP address.
+</li>
+<li> Name servers' (DNS) IP addresses.
+</li>
+<li> Domain name (unless you're on a local LAN, in which case you can make it up).
+</li>
+</ul>
+<p>Activate the connected Ethernet interface (e.g. <code style="display:inline-block; padding: 0.1em 0.3em;">enp2s0f0</code>):
+</p>
+<pre># ip link set enp2s0f0 up
+</pre>
+<p>Add the address:
+</p>
+<pre># ip addr add &lt;ip address&gt;/&lt;subnetmask&gt; dev &lt;interface&gt;
+</pre>
+<p>For example:
+</p>
+<pre># ip addr add 192.168.1.2/24 dev enp2s0f0
+</pre>
+<p>For more options, run <code style="display:inline-block; padding: 0.1em 0.3em;">man ip</code>.
+</p>
+<p>Add your gateway like this, substituting your own gateway's IP address:
+</p>
+<pre># ip route add default via &lt;ip address&gt;
+</pre>
+<p>For example:
+</p>
+<pre># ip route add default via 192.168.1.1
+</pre>
+<p>Edit <code style="display:inline-block; padding: 0.1em 0.3em;">resolv.conf</code>, substituting your name servers' IP addresses and your local domain name:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># nano /etc/resolv.conf</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">nameserver 61.23.173.5
+nameserver 61.95.849.8
+search example.com</pre>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDDDFF; border: thin solid #BBBBDD; overflow: hidden;"><strong> Note: </strong>Currently, you may include a maximum of 3 <code style="display:inline-block; padding: 0.1em 0.3em;">nameserver</code> lines.</div>
+<p>You should now have a working network connection. If you do not, check the detailed <a href="https://wiki.archlinux.org/index.php/Network_Configuration" title="Network Configuration">Network Configuration</a> page.
+</p>
+<h4 id="g0.1.2.2">Wireless </h4>
+<p>Follow this procedure if you need wireless connectivity (Wi-Fi) during the installation process.
+</p>
+<p>If you're coming from another distribution, or if this is your first time installing Parabola since the deprecation of the old interface naming scheme, you might be surprised to learn that the first wireless interface is not named "wlan0". In fact, none of the interfaces are automatically prefixed with "wlan" any longer. Don't panic; simply execute <code style="display:inline-block; padding: 0.1em 0.3em;">iwconfig</code> to discover the name of your wireless interface.
+</p>
+<p>The wireless drivers and utilities are now available to you in the live environment of the installation media. A good knowledge of your wireless hardware will be of key importance to successful configuration. Note that the following quick-start procedure <i>executed at this point in the installation</i> will initialize your wireless hardware for use <i>in the live environment of the installation media</i>. These steps (or some other form of wireless management) <b>must be repeated from the actual installed system after booting into it</b>.
+</p>
+<p>Also note that these steps are optional if wireless connectivity is unnecessary at this point in the installation; wireless functionality may always be established later.
+</p>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDDDFF; border: thin solid #BBBBDD; overflow: hidden;"><strong> Note: </strong>The following examples use <code style="display:inline-block; padding: 0.1em 0.3em;">wlp3s0</code> for the interface and <code style="display:inline-block; padding: 0.1em 0.3em;">linksys</code> for the ESSID. Remember to change these values according to your setup.</div>
+<p>The basic procedure will be:
+</p>
+<ul>
+<li> Identify the wireless interface:
+</li>
+</ul>
+<pre># lspci | grep -i net
+</pre>
+<p>Or, if using a USB adapter:
+</p>
+<pre># lsusb
+</pre>
+<ul>
+<li> Ensure udev has loaded the driver, and that the driver has created a usable wireless kernel interface with <code style="display:inline-block; padding: 0.1em 0.3em;">iwconfig</code>:
+</li>
+</ul>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDDDFF; border: thin solid #BBBBDD; overflow: hidden;"><strong> Note: </strong>If you do not see output similar to this, then your wireless driver has not been loaded. If this is the case, you must load the driver yourself. Please see <a href="https://wiki.archlinux.org/index.php/Wireless_Setup" title="Wireless Setup">Wireless Setup</a> for more detailed information.</div>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># iwconfig</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">enp2s0f0 no wireless extensions.
+wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97"
+ Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF
+ Bit Rate=65 Mb/s Tx-Power=16 dBm
+ Retry long limit:7 RTS thr:off Fragment thr:off
+ Power Management:on
+ Link Quality=61/70 Signal level=-49 dBm
+ Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
+ Tx excessive retries:0 Invalid misc:430 Missed beacon:0
+lo no wireless extensions.</pre>
+<p>In this example, <code style="display:inline-block; padding: 0.1em 0.3em;">wlp3s0</code> is the available wireless interface.
+</p>
+<ul>
+<li> Bring the interface up with:
+</li>
+</ul>
+<pre># ip link set wlp3s0 up
+</pre>
+<p>A small percentage of wireless chipsets also require firmware, in addition to a corresponding driver. If the wireless chipset requires firmware, you are likely to receive this error when bringing the interface up:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># ip link set wlp3s0 up</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">SIOCSIFFLAGS: No such file or directory</pre>
+<p>If unsure, invoke <code style="display:inline-block; padding: 0.1em 0.3em;">dmesg</code> to query the kernel log for a firmware request from the wireless chipset.
+</p>
+<p>Example output from an Intel chipset which requires and has requested firmware from the kernel at boot:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"># dmesg | grep firmware</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">firmware: requesting iwlwifi-5000-1.ucode</pre>
+<p>If there is no output, it may be concluded that the system's wireless chipset does not require firmware.
+</p>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #FFDDDD; border: thin solid #DDBBBB; overflow: hidden;"><strong> Warning: </strong>Wireless chipset firmware packages (for cards which require them) are pre-installed under <code style="display:inline-block; padding: 0.1em 0.3em;">/usr/lib/firmware</code> in the live environment (on CD/USB stick) <b>but must be explicitly installed to your actual system to provide wireless functionality after you reboot into it!</b> Package installation is covered later in this guide. Ensure installation of both your wireless module and firmware before rebooting! See <a href="https://wiki.archlinux.org/index.php/Wireless_Setup" title="Wireless Setup">Wireless Setup</a> if you are unsure about the requirement of corresponding firmware installation for your particular chipset.</div>
+<p>Next, use <span style="font-family: monospace"><a rel="nofollow" class="external text" href="https://www.archlinux.org/packages/?name=netcfg">netcfg</a></span>'s <code style="display:inline-block; padding: 0.1em 0.3em;">wifi-menu</code> to connect to a network:
+</p>
+<pre># wifi-menu wlp3s0
+</pre>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #FFDDDD; border: thin solid #DDBBBB; overflow: hidden;"><strong> Warning: </strong>At the moment, netcfg's wifi-menu, when executed without arguments, will look for "wlan0". Execute wifi-menu with your interface as the argument in order to use it.</div>
+<p>You should now have a working network connection. If you do not, check the detailed <a href="https://wiki.archlinux.org/index.php/Wireless_Setup" title="Wireless Setup">Wireless Setup</a> page.
+</p>
+<h4 id="g0.1.2.3">xDSL (PPPoE), analog modem or ISDN </h4>
+<p>If you have a router in bridge mode, run:
+</p>
+<pre># pppoe-setup
+</pre>
+<ul>
+<li> Type in the username that the ISP provided you with.
+</li>
+<li> Press <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">Enter</code> for "eth0".
+</li>
+<li> Press <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">Enter</code> for "no", so that it stays up continuously.
+</li>
+<li> Type <code style="display:inline-block; padding: 0.1em 0.3em;">server</code> (since this is usually the case).
+</li>
+<li> Press <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">1</code> for a firewall.
+</li>
+<li> Type in the password that the ISP provided you with.
+</li>
+<li> Press <code style="display:inline-block; background-color: #ebf1f5; padding: 0.1em 0.3em; font-weight:bold;">Y</code> at the end.
+</li>
+</ul>
+<p>To use these settings and connect to your ISP, run:
+</p>
+<pre># pppoe-start
+</pre>
+<p>You may also need to adjust your <code style="display:inline-block; padding: 0.1em 0.3em;">resolv.conf</code>:
+</p>
+<pre># echo nameserver 8.8.8.8 &gt; /etc/resolv.conf
+</pre>
+<p>If you have a dial-up or ISDN connection, see <a href="https://wiki.archlinux.org/index.php/Direct_Modem_Connection" title="Direct Modem Connection">Direct Modem Connection</a>.
+</p>
+<h4 id="g0.1.2.4">Behind a proxy server </h4>
+<p>If you are behind a proxy server, you will need to export the <code style="display:inline-block; padding: 0.1em 0.3em;">http_proxy</code> and <code style="display:inline-block; padding: 0.1em 0.3em;">ftp_proxy</code> environment variables. See <a href="https://wiki.archlinux.org/index.php/Proxy_settings" title="Proxy settings">Proxy settings</a> for more information.</p>
+
+<!--
+NewPP limit report
+Preprocessor visited node count: 3450/1000000
+Preprocessor generated node count: 6957/1000000
+Post-expand include size: 91583/2097152 bytes
+Template argument size: 49043/2097152 bytes
+Highest expansion depth: 8/40
+Expensive parser function count: 0/100
+-->
+
+<!-- Saved in parser cache with key archwiki:pcache:idhash:14839-1!*!0!!en!*!* and timestamp 20130302182513 -->
+
+
+</body>
+</html>
diff --git a/configs/gnome/syslinux/parabolaiso.cfg b/configs/gnome/syslinux/parabolaiso.cfg
new file mode 100644
index 0000000..473e245
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso.cfg
@@ -0,0 +1,11 @@
+DEFAULT select
+
+LABEL select
+COM32 boot/syslinux/whichsys.c32
+APPEND -pxe- pxe -sys- sys -iso- sys
+
+LABEL pxe
+CONFIG boot/syslinux/parabolaiso_pxe_choose.cfg
+
+LABEL sys
+CONFIG boot/syslinux/parabolaiso_sys_choose.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_head.cfg b/configs/gnome/syslinux/parabolaiso_head.cfg
new file mode 100644
index 0000000..278255d
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_head.cfg
@@ -0,0 +1,25 @@
+SERIAL 0 38400
+UI boot/syslinux/vesamenu.c32
+MENU TITLE Parabola GNU/Linux-libre
+MENU BACKGROUND boot/syslinux/splash.png
+
+MENU WIDTH 78
+MENU MARGIN 4
+MENU ROWS 7
+MENU VSHIFT 10
+MENU TABMSGROW 14
+MENU CMDLINEROW 14
+MENU HELPMSGROW 16
+MENU HELPMSGENDROW 29
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+
+MENU COLOR border 30;44 #40ffffff #a0000000 std
+MENU COLOR title 1;36;44 #9033ccff #a0000000 std
+MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
+MENU COLOR unsel 37;44 #50ffffff #a0000000 std
+MENU COLOR help 37;40 #c0ffffff #a0000000 std
+MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
+MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
+MENU COLOR msg07 37;40 #90ffffff #a0000000 std
+MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
diff --git a/configs/gnome/syslinux/parabolaiso_pxe32.cfg b/configs/gnome/syslinux/parabolaiso_pxe32.cfg
new file mode 100644
index 0000000..f61664e
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_pxe32.cfg
@@ -0,0 +1,32 @@
+LABEL parabola32_nbd
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using NBD). It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver}
+IPAPPEND 3
+
+LABEL parabola32_nfs
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using NFS). It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt
+IPAPPEND 3
+
+LABEL parabola32_http
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using HTTP). It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/
+IPAPPEND 3
diff --git a/configs/gnome/syslinux/parabolaiso_pxe64.cfg b/configs/gnome/syslinux/parabolaiso_pxe64.cfg
new file mode 100644
index 0000000..db7a58a
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_pxe64.cfg
@@ -0,0 +1,32 @@
+LABEL parabola64_nbd
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NBD). It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver}
+IPAPPEND 3
+
+LABEL parabola64_nfs
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NFS). It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt
+IPAPPEND 3
+
+LABEL parabola64_http
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using HTTP). It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/
+IPAPPEND 3
diff --git a/configs/gnome/syslinux/parabolaiso_pxe_32_inc.cfg b/configs/gnome/syslinux/parabolaiso_pxe_32_inc.cfg
new file mode 100644
index 0000000..ba514cb
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_pxe_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/parabolaiso_head.cfg
+INCLUDE boot/syslinux/parabolaiso_pxe32.cfg
+INCLUDE boot/syslinux/parabolaiso_tail.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_pxe_both_inc.cfg b/configs/gnome/syslinux/parabolaiso_pxe_both_inc.cfg
new file mode 100644
index 0000000..9396d9b
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_pxe_both_inc.cfg
@@ -0,0 +1,4 @@
+INCLUDE boot/syslinux/parabolaiso_head.cfg
+INCLUDE boot/syslinux/parabolaiso_pxe64.cfg
+INCLUDE boot/syslinux/parabolaiso_pxe32.cfg
+INCLUDE boot/syslinux/parabolaiso_tail.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_pxe_choose.cfg b/configs/gnome/syslinux/parabolaiso_pxe_choose.cfg
new file mode 100644
index 0000000..a3a768f
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_pxe_choose.cfg
@@ -0,0 +1,11 @@
+DEFAULT choose
+
+LABEL choose
+COM32 boot/syslinux/ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG boot/syslinux/parabolaiso_pxe_both_inc.cfg
+
+LABEL nohave64
+CONFIG boot/syslinux/parabolaiso_pxe_32_inc.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_sys32.cfg b/configs/gnome/syslinux/parabolaiso_sys32.cfg
new file mode 100644
index 0000000..6aeeb69
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_sys32.cfg
@@ -0,0 +1,9 @@
+LABEL parabola32
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium. It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
diff --git a/configs/gnome/syslinux/parabolaiso_sys64.cfg b/configs/gnome/syslinux/parabolaiso_sys64.cfg
new file mode 100644
index 0000000..7c256bb
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_sys64.cfg
@@ -0,0 +1,9 @@
+LABEL parabola64
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium. It allows you to install Parabola GNU/Linux-libre or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/parabolaiso.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
diff --git a/configs/gnome/syslinux/parabolaiso_sys_32_inc.cfg b/configs/gnome/syslinux/parabolaiso_sys_32_inc.cfg
new file mode 100644
index 0000000..c641201
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_sys_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/parabolaiso_head.cfg
+INCLUDE boot/syslinux/parabolaiso_sys32.cfg
+INCLUDE boot/syslinux/parabolaiso_tail.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_sys_both_inc.cfg b/configs/gnome/syslinux/parabolaiso_sys_both_inc.cfg
new file mode 100644
index 0000000..9dfb87f
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_sys_both_inc.cfg
@@ -0,0 +1,4 @@
+INCLUDE boot/syslinux/parabolaiso_head.cfg
+INCLUDE boot/syslinux/parabolaiso_sys64.cfg
+INCLUDE boot/syslinux/parabolaiso_sys32.cfg
+INCLUDE boot/syslinux/parabolaiso_tail.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_sys_choose.cfg b/configs/gnome/syslinux/parabolaiso_sys_choose.cfg
new file mode 100644
index 0000000..d436062
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_sys_choose.cfg
@@ -0,0 +1,11 @@
+DEFAULT choose
+
+LABEL choose
+COM32 boot/syslinux/ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG boot/syslinux/parabolaiso_sys_both_inc.cfg
+
+LABEL nohave64
+CONFIG boot/syslinux/parabolaiso_sys_32_inc.cfg
diff --git a/configs/gnome/syslinux/parabolaiso_tail.cfg b/configs/gnome/syslinux/parabolaiso_tail.cfg
new file mode 100644
index 0000000..a55548c
--- /dev/null
+++ b/configs/gnome/syslinux/parabolaiso_tail.cfg
@@ -0,0 +1,27 @@
+LABEL existing
+TEXT HELP
+Boot an existing operating system. Press TAB to edit the disk and partition
+number to boot.
+ENDTEXT
+MENU LABEL Boot existing OS
+COM32 boot/syslinux/chain.c32
+APPEND hd0 0
+
+# http://www.memtest.org/
+LABEL memtest
+MENU LABEL Run Memtest86+ (RAM test)
+LINUX boot/memtest
+
+# http://hdt-project.org/
+LABEL hdt
+MENU LABEL Hardware Information (HDT)
+COM32 boot/syslinux/hdt.c32
+APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz
+
+LABEL reboot
+MENU LABEL Reboot
+COM32 boot/syslinux/reboot.c32
+
+LABEL poweroff
+MENU LABEL Power Off
+COMBOOT boot/syslinux/poweroff.com
diff --git a/configs/gnome/syslinux/splash.png b/configs/gnome/syslinux/splash.png
new file mode 100644
index 0000000..f940676
--- /dev/null
+++ b/configs/gnome/syslinux/splash.png
Binary files differ
diff --git a/configs/gnome/syslinux/splash.xcf b/configs/gnome/syslinux/splash.xcf
new file mode 100644
index 0000000..e4c2562
--- /dev/null
+++ b/configs/gnome/syslinux/splash.xcf
Binary files differ
diff --git a/configs/gnome/syslinux/syslinux.cfg b/configs/gnome/syslinux/syslinux.cfg
new file mode 100644
index 0000000..0869ed2
--- /dev/null
+++ b/configs/gnome/syslinux/syslinux.cfg
@@ -0,0 +1,5 @@
+DEFAULT loadconfig
+
+LABEL loadconfig
+ CONFIG parabolaiso.cfg
+ APPEND ../../