From 5a6aec2276ea08775d2d1add33aff3ee0a6b58ec Mon Sep 17 00:00:00 2001 From: fdupoux Date: Sat, 2 Feb 2019 11:22:52 +0000 Subject: [PATCH] SystemRescueCd-6.0.0 --- .gitignore | 2 + ChangeLog | 15 + README.md | 8 + VERSION | 1 + airootfs/etc/X11/xinit/xinitrc | 71 +++++ airootfs/etc/fstab | 0 airootfs/etc/hostname | 1 + airootfs/etc/locale.conf | 1 + airootfs/etc/machine-id | 0 airootfs/etc/modprobe.d/broadcom-wl.conf | 7 + airootfs/etc/skel/.bashrc | 10 + airootfs/etc/systemd/scripts/choose-mirror | 26 ++ .../etc/systemd/system/choose-mirror.service | 10 + .../systemd/system/etc-pacman.d-gnupg.mount | 8 + .../getty@tty1.service.d/autologin.conf | 3 + .../etc/systemd/system/pacman-init.service | 15 + airootfs/etc/udev/rules.d/81-dhcpcd.rules | 1 + airootfs/etc/xdg/menus/xfce-applications.menu | 126 +++++++++ airootfs/etc/xdg/menus/xfce-applications.orig | 163 +++++++++++ airootfs/root/.Xauthority | 0 airootfs/root/.automated_script.sh | 34 +++ .../xfce4/desktop/icons.screen0-1312x645.rc | 11 + .../xfce4/desktop/icons.screen0-1344x565.rc | 11 + .../xfce4/desktop/icons.screen0-1344x595.rc | 11 + .../xfce4/desktop/icons.screen0-1344x596.rc | 11 + .../xfce4/desktop/icons.screen0-1344x611.rc | 11 + .../xfce4/desktop/icons.screen0-1344x613.rc | 11 + .../xfce4/desktop/icons.screen0-1344x614.rc | 11 + .../xfce4/desktop/icons.screen0-1344x645.rc | 11 + .../panel/launcher-2/15481894471.desktop | 12 + .../panel/launcher-3/15481895012.desktop | 26 ++ .../panel/launcher-4/15481895083.desktop | 13 + .../panel/launcher-5/15481895254.desktop | 24 ++ .../root/.config/xfce4/terminal/terminalrc | 87 ++++++ .../xfconf/xfce-perchannel-xml/keyboards.xml | 7 + .../xfconf/xfce-perchannel-xml/thunar.xml | 5 + .../xfce-perchannel-xml/xfce4-desktop.xml | 30 ++ .../xfce4-keyboard-shortcuts.xml | 154 +++++++++++ .../xfce-perchannel-xml/xfce4-panel.xml | 64 +++++ .../xfce-perchannel-xml/xfce4-session.xml | 28 ++ .../xfconf/xfce-perchannel-xml/xfwm4.xml | 87 ++++++ airootfs/root/.zlogin | 1 + airootfs/root/customize_airootfs.sh | 40 +++ airootfs/usr/bin/bashlogin | 58 ++++ airootfs/usr/bin/setkmap | 19 ++ .../firefox/defaults/pref/local-settings.js | 2 + airootfs/usr/lib/firefox/sysresccd.js | 13 + build.sh | 256 ++++++++++++++++++ efiboot/grub/font.pf2 | Bin 0 -> 4987 bytes efiboot/grub/grubinit.cfg | 3 + efiboot/grub/grubsrcd.cfg | 29 ++ isolinux/isolinux.cfg | 6 + mkinitcpio.conf | 2 + packages.x86_64 | 118 ++++++++ pacman.conf | 89 ++++++ syslinux/syslinux.cfg | 5 + syslinux/sysresccd.cfg | 11 + syslinux/sysresccd_head.cfg | 24 ++ syslinux/sysresccd_pxe.cfg | 36 +++ syslinux/sysresccd_sys.cfg | 21 ++ syslinux/sysresccd_tail.cfg | 27 ++ 61 files changed, 1887 insertions(+) create mode 100644 .gitignore create mode 100644 ChangeLog create mode 100644 README.md create mode 100644 VERSION create mode 100755 airootfs/etc/X11/xinit/xinitrc create mode 100644 airootfs/etc/fstab create mode 100644 airootfs/etc/hostname create mode 100644 airootfs/etc/locale.conf create mode 100644 airootfs/etc/machine-id create mode 100644 airootfs/etc/modprobe.d/broadcom-wl.conf create mode 100644 airootfs/etc/skel/.bashrc create mode 100755 airootfs/etc/systemd/scripts/choose-mirror create mode 100644 airootfs/etc/systemd/system/choose-mirror.service create mode 100644 airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount create mode 100644 airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf create mode 100644 airootfs/etc/systemd/system/pacman-init.service create mode 100644 airootfs/etc/udev/rules.d/81-dhcpcd.rules create mode 100644 airootfs/etc/xdg/menus/xfce-applications.menu create mode 100644 airootfs/etc/xdg/menus/xfce-applications.orig create mode 100644 airootfs/root/.Xauthority create mode 100755 airootfs/root/.automated_script.sh create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1312x645.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x565.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x595.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x596.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x611.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x613.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x614.rc create mode 100644 airootfs/root/.config/xfce4/desktop/icons.screen0-1344x645.rc create mode 100644 airootfs/root/.config/xfce4/panel/launcher-2/15481894471.desktop create mode 100644 airootfs/root/.config/xfce4/panel/launcher-3/15481895012.desktop create mode 100644 airootfs/root/.config/xfce4/panel/launcher-4/15481895083.desktop create mode 100644 airootfs/root/.config/xfce4/panel/launcher-5/15481895254.desktop create mode 100644 airootfs/root/.config/xfce4/terminal/terminalrc create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml create mode 100644 airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml create mode 100644 airootfs/root/.zlogin create mode 100755 airootfs/root/customize_airootfs.sh create mode 100755 airootfs/usr/bin/bashlogin create mode 100755 airootfs/usr/bin/setkmap create mode 100644 airootfs/usr/lib/firefox/defaults/pref/local-settings.js create mode 100644 airootfs/usr/lib/firefox/sysresccd.js create mode 100755 build.sh create mode 100644 efiboot/grub/font.pf2 create mode 100644 efiboot/grub/grubinit.cfg create mode 100644 efiboot/grub/grubsrcd.cfg create mode 100644 isolinux/isolinux.cfg create mode 100644 mkinitcpio.conf create mode 100644 packages.x86_64 create mode 100644 pacman.conf create mode 100644 syslinux/syslinux.cfg create mode 100644 syslinux/sysresccd.cfg create mode 100644 syslinux/sysresccd_head.cfg create mode 100644 syslinux/sysresccd_pxe.cfg create mode 100644 syslinux/sysresccd_sys.cfg create mode 100644 syslinux/sysresccd_tail.cfg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2113d9e --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +out +work diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..ba33c01 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,15 @@ +SystemRescueCd ChangeLog +======================== + +------------------------------------------------------------------------------- +6.0.0 (2019-02-02): +------------------------------------------------------------------------------- +* System is now based on ArchLinux and built using archiso and its dependencies +* Kernel and user space programs are now fully 64 bit (dropped 32bit support) +* Boot options are the ones provided by new upstream rather than in old version +* Graphical environment based on xorg-1.20.3 and xfce-4.12 +* Implemented "setkmap=xx" option on the boot command line to setup keyboard +* Updated kernel to Long-Term-Supported linux-4.19.19 +* Updated filesystem tools: e2fsprogs-1.44.5, xfsprogs-4.19.0, btrfs-progs-4.19.1 +* Updated disk tools: gparted-0.33.0, lvm2-2.02.183 + diff --git a/README.md b/README.md new file mode 100644 index 0000000..f55edf5 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# SystemRescueCd + +## SystemRescueCd project +Homepage: http://www.system-rescue-cd.org/ + +## SystemRescueCd sources +This git repository contains SystemRescueCd sources files. This is based on +https://git.archlinux.org/archiso.git diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..09b254e --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +6.0.0 diff --git a/airootfs/etc/X11/xinit/xinitrc b/airootfs/etc/X11/xinit/xinitrc new file mode 100755 index 0000000..7653cf4 --- /dev/null +++ b/airootfs/etc/X11/xinit/xinitrc @@ -0,0 +1,71 @@ +#!/bin/bash +if [ -f /etc/sysconfig/keyboard ] +then + if grep -q XKEYBOARD /etc/sysconfig/keyboard + then + KEYMAP=$(cat /etc/sysconfig/keyboard | grep XKEYBOARD | cut -d '=' -f2) + + # The keymap must be listed in the following file: + # /usr/share/X11/xkb/rules/xorg.lst + + [ $KEYMAP = "azerty" -o $KEYMAP = "01" ] && KEYMAP="azerty" + [ $KEYMAP = "be" -o $KEYMAP = "02" ] && KEYMAP="be" + [ $KEYMAP = "bg" -o $KEYMAP = "03" ] && KEYMAP="bg" + [ $KEYMAP = "br-a" -o $KEYMAP = "04" ] && KEYMAP="br" + [ $KEYMAP = "br-l" -o $KEYMAP = "05" ] && KEYMAP="br" + [ $KEYMAP = "by" -o $KEYMAP = "06" ] && KEYMAP="by" + [ $KEYMAP = "cf" -o $KEYMAP = "07" ] && KEYMAP="cf" + [ $KEYMAP = "croat" -o $KEYMAP = "08" ] && KEYMAP="hr" + [ $KEYMAP = "cz" -o $KEYMAP = "09" ] && KEYMAP="cz" + [ $KEYMAP = "de" -o $KEYMAP = "10" ] && KEYMAP="de" + [ $KEYMAP = "dk" -o $KEYMAP = "11" ] && KEYMAP="dk" + [ $KEYMAP = "dvorak" -o $KEYMAP = "12" ] && KEYMAP="dvorak" + [ $KEYMAP = "es" -o $KEYMAP = "13" ] && KEYMAP="es" + [ $KEYMAP = "et" -o $KEYMAP = "14" ] && KEYMAP="et" + [ $KEYMAP = "fi" -o $KEYMAP = "15" ] && KEYMAP="fi" + [ $KEYMAP = "fr" -o $KEYMAP = "16" ] && KEYMAP="fr" + [ $KEYMAP = "gr" -o $KEYMAP = "17" ] && KEYMAP="gr" + [ $KEYMAP = "hu" -o $KEYMAP = "18" ] && KEYMAP="hu" + [ $KEYMAP = "il" -o $KEYMAP = "19" ] && KEYMAP="il" + [ $KEYMAP = "is" -o $KEYMAP = "20" ] && KEYMAP="is" + [ $KEYMAP = "it" -o $KEYMAP = "21" ] && KEYMAP="it" + [ $KEYMAP = "jp" -o $KEYMAP = "22" ] && KEYMAP="jp" + [ $KEYMAP = "la" -o $KEYMAP = "23" ] && KEYMAP="latam" + [ $KEYMAP = "lt" -o $KEYMAP = "24" ] && KEYMAP="lt" + [ $KEYMAP = "mk" -o $KEYMAP = "25" ] && KEYMAP="mk" + [ $KEYMAP = "nl" -o $KEYMAP = "26" ] && KEYMAP="nl" + [ $KEYMAP = "no" -o $KEYMAP = "27" ] && KEYMAP="no" + [ $KEYMAP = "pl" -o $KEYMAP = "28" ] && KEYMAP="pl" + [ $KEYMAP = "pt" -o $KEYMAP = "29" ] && KEYMAP="pt" + [ $KEYMAP = "ro" -o $KEYMAP = "30" ] && KEYMAP="ro" + [ $KEYMAP = "ru" -o $KEYMAP = "31" ] && KEYMAP="us,ru(winkeys) -option grp:ctrl_shift_toggle,lctrl_shift_toggle" + [ $KEYMAP = "se" -o $KEYMAP = "32" ] && KEYMAP="se" + [ $KEYMAP = "sg" -o $KEYMAP = "33" ] && KEYMAP="sg" + [ $KEYMAP = "sk-y" -o $KEYMAP = "34" ] && KEYMAP="sk" + [ $KEYMAP = "sk-z" -o $KEYMAP = "35" ] && KEYMAP="sk" + [ $KEYMAP = "slovene" -o $KEYMAP = "36" ] && KEYMAP="si" + [ $KEYMAP = "trf" -o $KEYMAP = "37" ] && KEYMAP="tr" + [ $KEYMAP = "trq" -o $KEYMAP = "38" ] && KEYMAP="tr" + [ $KEYMAP = "ua" -o $KEYMAP = "39" ] && KEYMAP="ua" + [ $KEYMAP = "uk" -o $KEYMAP = "40" ] && KEYMAP="gb" + [ $KEYMAP = "us" -o $KEYMAP = "41" ] && KEYMAP="us" + [ $KEYMAP = "wangbe" -o $KEYMAP = "42" ] && KEYMAP="wangbe" + [ $KEYMAP = "fr_CH" -o $KEYMAP = "43" ] && KEYMAP="ch -variant fr" + [ $KEYMAP = "speakup" -o $KEYMAP = "44" ] && KEYMAP="us" + [ $KEYMAP = "cz" -o $KEYMAP = "45" ] && KEYMAP="cz" + [ $KEYMAP = "de_CH" -o $KEYMAP = "46" ] && KEYMAP="ch" + [ $KEYMAP = "sg-lat1" -o $KEYMAP = "47" ] && KEYMAP="ch" + [ $KEYMAP = "fr-bepo" -o $KEYMAP = "48" ] && KEYMAP="fr bepo" + [ $KEYMAP = "colemak" -o $KEYMAP = "49" ] && KEYMAP="us -variant colemak" + [ $KEYMAP = "de_neo" -o $KEYMAP = "50" ] && KEYMAP="de -variant neo" + + touch /var/log/keymap.log + echo "setxkbmap -layout $KEYMAP" >> /var/log/keymap.log + setxkbmap -layout $KEYMAP >> /var/log/keymap.log 2>&1 + fi +fi + +[ -f /usr/bin/xset ] && /usr/bin/xset s off >/dev/null 2>&1 & +[ -f /usr/bin/xset ] && /usr/bin/xset r >/dev/null 2>&1 & + +exec /usr/bin/startxfce4 diff --git a/airootfs/etc/fstab b/airootfs/etc/fstab new file mode 100644 index 0000000..e69de29 diff --git a/airootfs/etc/hostname b/airootfs/etc/hostname new file mode 100644 index 0000000..616091b --- /dev/null +++ b/airootfs/etc/hostname @@ -0,0 +1 @@ +sysresccd diff --git a/airootfs/etc/locale.conf b/airootfs/etc/locale.conf new file mode 100644 index 0000000..01ec548 --- /dev/null +++ b/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=en_US.UTF-8 diff --git a/airootfs/etc/machine-id b/airootfs/etc/machine-id new file mode 100644 index 0000000..e69de29 diff --git a/airootfs/etc/modprobe.d/broadcom-wl.conf b/airootfs/etc/modprobe.d/broadcom-wl.conf new file mode 100644 index 0000000..0eae70c --- /dev/null +++ b/airootfs/etc/modprobe.d/broadcom-wl.conf @@ -0,0 +1,7 @@ +# The broadcom-wl package requires some modules to be disabled in order to use +# wl. Since the ISO image needs to cover many hardware cases, this file +# overrides the default blacklist in /usr/lib/modprobe.d/ +# +# If you need to use wl, you may need to delete this file, then `rmmod` any +# already-loaded modules that are now blacklisted before proceeding to modprobe +# wl itself. diff --git a/airootfs/etc/skel/.bashrc b/airootfs/etc/skel/.bashrc new file mode 100644 index 0000000..4631a13 --- /dev/null +++ b/airootfs/etc/skel/.bashrc @@ -0,0 +1,10 @@ +# +# ~/.bashrc +# + +PS1="\[\e[1;94m\][\u@\h \w]\\$\[\e[0m\] " + +alias ls='ls --color=auto' +alias ll='ls --color=auto -lah' +alias mydf='df -hPT | column -t' + diff --git a/airootfs/etc/systemd/scripts/choose-mirror b/airootfs/etc/systemd/scripts/choose-mirror new file mode 100755 index 0000000..0ae0806 --- /dev/null +++ b/airootfs/etc/systemd/scripts/choose-mirror @@ -0,0 +1,26 @@ +#!/bin/bash + +get_cmdline() { + local param + for param in $(< /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; + return 0 + ;; + esac + done +} + +mirror=$(get_cmdline mirror) +[[ $mirror = auto ]] && mirror=$(get_cmdline archiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Arch Linux repository mirrorlist +# Generated by archiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/airootfs/etc/systemd/system/choose-mirror.service b/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..1e4d771 --- /dev/null +++ b/airootfs/etc/systemd/system/choose-mirror.service @@ -0,0 +1,10 @@ +[Unit] +Description=Choose mirror from the kernel command line +ConditionKernelCommandLine=mirror + +[Service] +Type=oneshot +ExecStart=/etc/systemd/scripts/choose-mirror + +[Install] +WantedBy=multi-user.target diff --git a/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount new file mode 100644 index 0000000..4eab551 --- /dev/null +++ b/airootfs/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/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..80416ec --- /dev/null +++ b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty --autologin root -l /usr/bin/bashlogin --noclear %I 38400 linux diff --git a/airootfs/etc/systemd/system/pacman-init.service b/airootfs/etc/systemd/system/pacman-init.service new file mode 100644 index 0000000..23b8144 --- /dev/null +++ b/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,15 @@ +[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 + +[Install] +WantedBy=multi-user.target diff --git a/airootfs/etc/udev/rules.d/81-dhcpcd.rules b/airootfs/etc/udev/rules.d/81-dhcpcd.rules new file mode 100644 index 0000000..1c4053c --- /dev/null +++ b/airootfs/etc/udev/rules.d/81-dhcpcd.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="en*|eth*", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/airootfs/etc/xdg/menus/xfce-applications.menu b/airootfs/etc/xdg/menus/xfce-applications.menu new file mode 100644 index 0000000..7e0f155 --- /dev/null +++ b/airootfs/etc/xdg/menus/xfce-applications.menu @@ -0,0 +1,126 @@ + + + + Xfce + + + + + + + X-Xfce-Toplevel + + + + xfce4-run.desktop + + exo-terminal-emulator.desktop + exo-file-manager.desktop + exo-web-browser.desktop + + Settings + + + + xfce4-about.desktop + xfce4-session-logout.desktop + + + + Settings + xfce-settings.directory + + Settings + + + + xfce-settings-manager.desktop + + + + + + Screensavers + xfce-screensavers.directory + + Screensaver + + + + + + Accessories + xfce-accessories.directory + + + Accessibility + Core + Legacy + Utility + + + + + exo-file-manager.desktop + exo-terminal-emulator.desktop + xfce4-about.desktop + xfce4-run.desktop + + + + + + Development + xfce-development.directory + + Development + + + + + Graphics + xfce-graphics.directory + + Graphics + + + + + Network + xfce-network.directory + + Network + + + + exo-web-browser.desktop + + + + + + Office + xfce-office.directory + + Office + + + + + System + xfce-system.directory + + + Emulator + System + + + + + xfce4-session-logout.desktop + + + + + diff --git a/airootfs/etc/xdg/menus/xfce-applications.orig b/airootfs/etc/xdg/menus/xfce-applications.orig new file mode 100644 index 0000000..dc3056b --- /dev/null +++ b/airootfs/etc/xdg/menus/xfce-applications.orig @@ -0,0 +1,163 @@ + + + + Xfce + + + + + + + X-Xfce-Toplevel + + + + xfce4-run.desktop + + exo-terminal-emulator.desktop + exo-file-manager.desktop + exo-mail-reader.desktop + exo-web-browser.desktop + + Settings + + + + xfce4-about.desktop + xfce4-session-logout.desktop + + + + Settings + xfce-settings.directory + + Settings + + + + xfce-settings-manager.desktop + + + + + + Screensavers + xfce-screensavers.directory + + Screensaver + + + + + + Accessories + xfce-accessories.directory + + + Accessibility + Core + Legacy + Utility + + + + + exo-file-manager.desktop + exo-terminal-emulator.desktop + xfce4-about.desktop + xfce4-run.desktop + + + + + + Development + xfce-development.directory + + Development + + + + + Education + xfce-education.directory + + Education + + + + + Games + xfce-games.directory + + Game + + + + + Graphics + xfce-graphics.directory + + Graphics + + + + + Multimedia + xfce-multimedia.directory + + Audio + Video + AudioVideo + + + + + Network + xfce-network.directory + + Network + + + + exo-mail-reader.desktop + exo-web-browser.desktop + + + + + + Office + xfce-office.directory + + Office + + + + + System + xfce-system.directory + + + Emulator + System + + + + + xfce4-session-logout.desktop + + + + + + Other + xfce-other.directory + + + + + + + diff --git a/airootfs/root/.Xauthority b/airootfs/root/.Xauthority new file mode 100644 index 0000000..e69de29 diff --git a/airootfs/root/.automated_script.sh b/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..81a98a1 --- /dev/null +++ b/airootfs/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/airootfs/root/.config/xfce4/desktop/icons.screen0-1312x645.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1312x645.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1312x645.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x565.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x565.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x565.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x595.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x595.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x595.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x596.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x596.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x596.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x611.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x611.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x611.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x613.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x613.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x613.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x614.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x614.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x614.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x645.rc b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x645.rc new file mode 100644 index 0000000..e393b73 --- /dev/null +++ b/airootfs/root/.config/xfce4/desktop/icons.screen0-1344x645.rc @@ -0,0 +1,11 @@ +[xfdesktop-version-4.10.3+-rcfile_format] +4.10.3+=true + +[/] +row=0 +col=0 + +[/root] +row=1 +col=0 + diff --git a/airootfs/root/.config/xfce4/panel/launcher-2/15481894471.desktop b/airootfs/root/.config/xfce4/panel/launcher-2/15481894471.desktop new file mode 100644 index 0000000..e3f3068 --- /dev/null +++ b/airootfs/root/.config/xfce4/panel/launcher-2/15481894471.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Name=Xfce Terminal +Comment=Terminal Emulator +GenericName=Terminal Emulator +Exec=xfce4-terminal +Icon=utilities-terminal +Terminal=false +Type=Application +Categories=GTK;System;TerminalEmulator; +StartupNotify=true +X-XFCE-Source=file:///usr/share/applications/xfce4-terminal.desktop diff --git a/airootfs/root/.config/xfce4/panel/launcher-3/15481895012.desktop b/airootfs/root/.config/xfce4/panel/launcher-3/15481895012.desktop new file mode 100644 index 0000000..e95a3f3 --- /dev/null +++ b/airootfs/root/.config/xfce4/panel/launcher-3/15481895012.desktop @@ -0,0 +1,26 @@ +[Desktop Entry] +Version=1.0 +Name=Firefox +GenericName=Web Browser +Comment=Browse the Web +Exec=/usr/lib/firefox/firefox %u +Icon=firefox +Terminal=false +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; +StartupNotify=true +StartupWMClass=Firefox +Categories=Network;WebBrowser; +Keywords=web;browser;internet; +Actions=new-window;new-private-window; +X-XFCE-Source=file:///usr/share/applications/firefox.desktop + +[Desktop Action new-window] +Name=New Window +Name[en_US]=New Window +Exec=/usr/lib/firefox/firefox --new-window %u + +[Desktop Action new-private-window] +Name=New Private Window +Name[en_US]=New Private Window +Exec=/usr/lib/firefox/firefox --private-window %u diff --git a/airootfs/root/.config/xfce4/panel/launcher-4/15481895083.desktop b/airootfs/root/.config/xfce4/panel/launcher-4/15481895083.desktop new file mode 100644 index 0000000..1c2d5f1 --- /dev/null +++ b/airootfs/root/.config/xfce4/panel/launcher-4/15481895083.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Name=GParted +GenericName=Partition Editor +X-GNOME-FullName=GParted Partition Editor +Comment=Create, reorganize, and delete partitions +Exec=/usr/bin/gparted %f +Icon=gparted +Terminal=false +Type=Application +Categories=GNOME;System;Filesystem; +Keywords=Partition; +StartupNotify=true +X-XFCE-Source=file:///usr/share/applications/gparted.desktop diff --git a/airootfs/root/.config/xfce4/panel/launcher-5/15481895254.desktop b/airootfs/root/.config/xfce4/panel/launcher-5/15481895254.desktop new file mode 100644 index 0000000..5d375ae --- /dev/null +++ b/airootfs/root/.config/xfce4/panel/launcher-5/15481895254.desktop @@ -0,0 +1,24 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Notepadqq +GenericName=Notepadqq source code editor +Comment=Edit source code files +Exec=notepadqq --allow-root %U +Terminal=false +Type=Application +StartupNotify=false +MimeType=text/plain;text/html;text/x-php;text/x-c;text/x-shellscript; +Icon=notepadqq +Categories=Development;Utility;TextEditor; +Actions=Window;Document; +X-XFCE-Source=file:///usr/share/applications/notepadqq.desktop + +[Desktop Action Window] +Name=Open a New Window +Exec=notepadqq --allow-root --new-window +OnlyShowIn=Unity; + +[Desktop Action Document] +Name=Open a New Document +Exec=notepadqq --allow-root +OnlyShowIn=Unity; diff --git a/airootfs/root/.config/xfce4/terminal/terminalrc b/airootfs/root/.config/xfce4/terminal/terminalrc new file mode 100644 index 0000000..820a067 --- /dev/null +++ b/airootfs/root/.config/xfce4/terminal/terminalrc @@ -0,0 +1,87 @@ +[Configuration] +AccelNewTab=t +AccelNewWindow=n +AccelDetachTab=d +AccelCloseTab=w +AccelCloseWindow=q +AccelCopy=c +AccelPaste=v +AccelPreferences=Disabled +AccelShowMenubar=Disabled +AccelShowToolbars=Disabled +AccelShowBorders=Disabled +AccelFullscreen=F11 +AccelSetTitle=Disabled +AccelReset=Disabled +AccelResetAndClear=Disabled +AccelPrevTab=Page_Up +AccelNextTab=Page_Down +AccelSwitchToTab1=1 +AccelSwitchToTab2=2 +AccelSwitchToTab3=3 +AccelSwitchToTab4=4 +AccelSwitchToTab5=5 +AccelSwitchToTab6=6 +AccelSwitchToTab7=7 +AccelSwitchToTab8=8 +AccelSwitchToTab9=9 +AccelContents=F1 +BackgroundMode=TERMINAL_BACKGROUND_SOLID +BackgroundImageFile= +BackgroundImageStyle=TERMINAL_BACKGROUND_STYLE_TILED +BackgroundDarkness=0.500000 +BindingBackspace=TERMINAL_ERASE_BINDING_AUTO +BindingDelete=TERMINAL_ERASE_BINDING_AUTO +ColorForeground=#000000000000 +ColorBackground=#f3bcf9999333 +ColorCursor=#000000000000 +ColorSelection=White +ColorSelectionUseDefault=TRUE +ColorPalette1=#000000000000 +ColorPalette2=#aaaa00000000 +ColorPalette3=#0000aaaa0000 +ColorPalette4=#aaaa55550000 +ColorPalette5=#00000000aaaa +ColorPalette6=#aaaa0000aaaa +ColorPalette7=#0000aaaaaaaa +ColorPalette8=#aaaaaaaaaaaa +ColorPalette9=#555555555555 +ColorPalette10=#ffff55555555 +ColorPalette11=#5555ffff5555 +ColorPalette12=#ffffffff5555 +ColorPalette13=#55555555ffff +ColorPalette14=#ffff5555ffff +ColorPalette15=#5555ffffffff +ColorPalette16=#ffffffffffff +CommandUpdateRecords=TRUE +CommandLoginShell=FALSE +FontAllowBold=TRUE +FontAntiAlias=TRUE +FontName=Monospace 10 +MiscAlwaysShowTabs=FALSE +MiscBell=FALSE +MiscBordersDefault=TRUE +MiscCursorBlinks=FALSE +MiscDefaultGeometry=80x24 +MiscInheritGeometry=FALSE +MiscMenubarDefault=TRUE +MiscMouseAutohide=FALSE +MiscToolbarsDefault=TRUE +MiscConfirmClose=TRUE +MiscCycleTabs=TRUE +MiscTabCloseButtons=TRUE +MiscTabPosition=GTK_POS_TOP +MiscHighlightUrls=TRUE +ScrollingBar=TERMINAL_SCROLLBAR_RIGHT +ScrollingLines=32768 +ScrollingOnOutput=TRUE +ScrollingOnKeystroke=TRUE +ScrollingSingleLine=TRUE +ShortcutsNoMenukey=TRUE +ShortcutsNoMnemonics=FALSE +TitleInitial=Terminal +TitleMode=TERMINAL_TITLE_APPEND +Term=xterm +VteWorkaroundTitleBug=TRUE +WordChars=-A-Za-z0-9,./?%&#:_~ + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml new file mode 100644 index 0000000..9ddc443 --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml new file mode 100644 index 0000000..c3d5d2a --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml new file mode 100644 index 0000000..8dd67fe --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml new file mode 100644 index 0000000..a0fb1d0 --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml new file mode 100644 index 0000000..942edf0 --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml new file mode 100644 index 0000000..276b7ec --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml new file mode 100644 index 0000000..0074c3c --- /dev/null +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin new file mode 100644 index 0000000..f598e43 --- /dev/null +++ b/airootfs/root/.zlogin @@ -0,0 +1 @@ +~/.automated_script.sh diff --git a/airootfs/root/customize_airootfs.sh b/airootfs/root/customize_airootfs.sh new file mode 100755 index 0000000..80b80b3 --- /dev/null +++ b/airootfs/root/customize_airootfs.sh @@ -0,0 +1,40 @@ +#!/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 + +cp -aT /etc/skel/ /root/ +chmod 700 /root +chown root:root /root -R + +# Configuration +sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config +sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist +sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf + +sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf +sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf +sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf + +# Services +systemctl enable NetworkManager +systemctl enable pacman-init.service choose-mirror.service +systemctl set-default multi-user.target + +# Cleanup +find /usr/lib -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete + +# Fix desktop +sed -i -e 's!Exec=notepadqq!Exec=notepadqq --allow-root!g' /usr/share/applications/notepadqq.desktop + +# Customizations +/usr/bin/updatedb + +# Packages +pacman -Qe > /root/packages-list.txt +pacman -Qi | egrep '^(Name|Installed)' | cut -f2 -d':' | paste - - | column -t | sort -nrk 2 | grep MiB > /root/packages-size.txt + diff --git a/airootfs/usr/bin/bashlogin b/airootfs/usr/bin/bashlogin new file mode 100755 index 0000000..8603393 --- /dev/null +++ b/airootfs/usr/bin/bashlogin @@ -0,0 +1,58 @@ +#!/bin/sh +cd /root + +# Environment variables +export LANG=en_US.utf8 +export HOME=/root +export SHELL=/bin/bash +export PATH=/sbin:/bin:/usr/sbin:/usr/bin +export path="/sbin /bin /usr/sbin /usr/bin" +export USER=root + +# Process setkmap option if it was passed on the boot command line +for curopt in $(cat /proc/cmdline) +do + case "${curopt}" in + setkmap\=*) + SETKMAP=$(echo "${curopt}" | cut -f2 -d=) + /sbin/loadkeys ${SETKMAP} + mkdir -p /etc/sysconfig + echo "XKEYBOARD=${SETKMAP}" > /etc/sysconfig/keyboard + ;; + esac +done + +# Colors +lc1='\e[01;31m' # light red +dc1='\e[00;31m' # dark red +lc2='\e[01;37m' # white +dc2='\e[00;37m' # gray + +# Fix broken console with utf8 in the alternative-kernels +echo -n -e '\033%G' +kbd_mode -u + +LINES=$(stty size|cut -d" " -f1) +fbecho() +{ + [ $LINES -ge 28 ] && echo +} + +fbecho +echo -e "${lc1} =========== ${lc2}SystemRescue-Cd${lc1} ----- ${lc2}%ISO_VERSION%${lc1} =========== ${lc2}$(basename $(tty))${dc2}/6 ${lc1}==" +echo -e " ${dc1}http://www.system-rescue-cd.org/" +echo +echo -e "${dc1}*${lc1} Console environment${dc2} : " +echo -e " Run ${lc2}setkmap${dc2} to choose the keyboard layout" +echo +echo -e "${dc1}*${lc1} Graphical environment${dc2} : " +echo -e " Type ${lc2}startx${dc2} to run the graphical environment" +echo -e " X.Org comes with the XFCE environment and several graphical tools:" +echo -e " ${dc1}-${dc2} Partition manager:..${lc2}gparted${dc2}" +echo -e " ${dc1}-${dc2} Web browser:........${lc2}firefox${dc2}" +echo -e " ${dc1}-${dc2} Text editor:........${lc2}notepadqq${dc2}" +echo +fbecho + +# ============ SHELL PROMPT ============================ +exec $SHELL --login diff --git a/airootfs/usr/bin/setkmap b/airootfs/usr/bin/setkmap new file mode 100755 index 0000000..f31526a --- /dev/null +++ b/airootfs/usr/bin/setkmap @@ -0,0 +1,19 @@ +#!/bin/bash + +# Pass the name of the keyboard layout to load it directly (eg: "setkmap us") +# Pass no argument to display a menu a choose the keyboard layout from the list + +keymaps=$(localectl list-keymaps) + +if test -n "${1}" && localectl list-keymaps | grep -q "${1}" +then + keymap="${1}" +else + exec 3>&1 + keymap=$(/sbin/dialog --title "Keyboard layout" --menu "Choose a keyboard layout" 25 50 20 $(for item in ${keymaps[@]}; do echo ${item} "-" ; done) 2>&1 1>&3) || exit 1 + exec 3>&- +fi + +/sbin/loadkeys ${keymap} +mkdir -p /etc/sysconfig +echo "XKEYBOARD=${keymap}" > /etc/sysconfig/keyboard diff --git a/airootfs/usr/lib/firefox/defaults/pref/local-settings.js b/airootfs/usr/lib/firefox/defaults/pref/local-settings.js new file mode 100644 index 0000000..e19b1d4 --- /dev/null +++ b/airootfs/usr/lib/firefox/defaults/pref/local-settings.js @@ -0,0 +1,2 @@ +pref("general.config.filename", "sysresccd.js"); +pref("general.config.obscure_value", 0); diff --git a/airootfs/usr/lib/firefox/sysresccd.js b/airootfs/usr/lib/firefox/sysresccd.js new file mode 100644 index 0000000..2770a85 --- /dev/null +++ b/airootfs/usr/lib/firefox/sysresccd.js @@ -0,0 +1,13 @@ +// Ensure preference can't be changed by users +lockPref("app.update.auto", false); +lockPref("app.update.enabled", false); +lockPref("intl.locale.matchOS", true); +// Allow user to change based on needs +defaultPref("browser.display.use_system_colors", true); +defaultPref("spellchecker.dictionary_path", "/usr/share/myspell"); +defaultPref("browser.shell.checkDefaultBrowser", false); +// Preferences that should be reset every session +pref("browser.EULA.override", true); +// SystemRescueCd settings +pref("browser.startup.homepage_override.mstone", "ignore"); +pref("browser.startup.homepage", "http://www.system-rescue-cd.org/"); diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..503a985 --- /dev/null +++ b/build.sh @@ -0,0 +1,256 @@ +#!/bin/bash + +set -e -u + +script_path=$(readlink -f ${0%/*}) +version_file="${script_path}/VERSION" + +iso_name=systemrescuecd +iso_version="$(<${version_file})" +iso_label="SYSRESCCD-${iso_version}" +iso_publisher="SystemRescueCd " +iso_application="SystemRescueCd" +install_dir=sysresccd +work_dir=work +out_dir=out +gpg_key= + +verbose="" + +umask 0022 + +_usage () +{ + echo "usage ${0} [options]" + echo + echo " General options:" + echo " -N Set an iso filename (prefix)" + echo " Default: ${iso_name}" + echo " -V Set an iso version (in filename)" + echo " Default: ${iso_version}" + echo " -L Set an iso label (disk label)" + echo " Default: ${iso_label}" + echo " -P Set a publisher for the disk" + echo " Default: '${iso_publisher}'" + echo " -A Set an application name for the disk" + echo " Default: '${iso_application}'" + echo " -D Set an install_dir (directory inside iso)" + echo " Default: ${install_dir}" + echo " -w Set the working directory" + echo " Default: ${work_dir}" + echo " -o 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} ]]; then + $1 + touch ${work_dir}/build.${1} + 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 > ${work_dir}/pacman.conf +} + +# Base installation, plus needed packages (airootfs) +make_basefs() { + #mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" init + mkdir -p ${work_dir}/x86_64/airootfs + pacstrap -C "/etc/pacman.conf" -c -G -M "${work_dir}/x86_64/airootfs" $(pacman -Sqg base | sed 's/^linux$/linux-lts/' | uniq ; echo syslinux) + mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "haveged intel-ucode amd-ucode memtest86+ mkinitcpio-nfs-utils nbd zsh efitools" install +} + +# Additional packages (airootfs) +make_packages() { + mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.x86_64)" install +} + +# Copy mkinitcpio archiso hooks and build initramfs (airootfs) +make_setup_mkinitcpio() { + local _hook + mkdir -p ${work_dir}/x86_64/airootfs/etc/initcpio/hooks + mkdir -p ${work_dir}/x86_64/airootfs/etc/initcpio/install + for _hook in archiso archiso_shutdown archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_loop_mnt; do + cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/x86_64/airootfs/etc/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/x86_64/airootfs/etc/initcpio/install + done + sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" ${work_dir}/x86_64/airootfs/etc/initcpio/install/archiso_shutdown + cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/x86_64/airootfs/etc/initcpio/install + cp /usr/lib/initcpio/archiso_shutdown ${work_dir}/x86_64/airootfs/etc/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/x86_64/airootfs/etc/mkinitcpio-archiso.conf + gnupg_fd= + if [[ ${gpg_key} ]]; then + gpg --export ${gpg_key} >${work_dir}/gpgkey + exec 17<>${work_dir}/gpgkey + fi + ARCHISO_GNUPG_FD=${gpg_key:+17} mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux-lts -g /boot/sysresccd.img' run + if [[ ${gpg_key} ]]; then + exec 17<&- + fi +} + +# Customize installation (airootfs) +make_customize_airootfs() { + cp -af ${script_path}/airootfs ${work_dir}/x86_64 + + cp ${script_path}/pacman.conf ${work_dir}/x86_64/airootfs/etc + + cp ${version_file} ${work_dir}/x86_64/airootfs/root/version + + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%ISO_VERSION%|${iso_version}|g; + s|%INSTALL_DIR%|${install_dir}|g" \ + ${script_path}/airootfs/usr/bin/bashlogin > ${work_dir}/x86_64/airootfs/usr/bin/bashlogin + + curl -o ${work_dir}/x86_64/airootfs/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on' + + mkarchiso ${verbose} -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run + rm ${work_dir}/x86_64/airootfs/root/customize_airootfs.sh +} + +# Prepare kernel/initramfs ${install_dir}/boot/ +make_boot() { + mkdir -p ${work_dir}/iso/${install_dir}/boot/x86_64 + cp ${work_dir}/x86_64/airootfs/boot/sysresccd.img ${work_dir}/iso/${install_dir}/boot/x86_64/sysresccd.img + cp ${work_dir}/x86_64/airootfs/boot/vmlinuz-linux-lts ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz +} + +# Add other aditional/extra files to ${install_dir}/boot/ +make_boot_extra() { + cp ${work_dir}/x86_64/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest + cp ${work_dir}/x86_64/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING + cp ${work_dir}/x86_64/airootfs/boot/intel-ucode.img ${work_dir}/iso/${install_dir}/boot/intel_ucode.img + cp ${work_dir}/x86_64/airootfs/usr/share/licenses/intel-ucode/LICENSE ${work_dir}/iso/${install_dir}/boot/intel_ucode.LICENSE + cp ${work_dir}/x86_64/airootfs/boot/amd-ucode.img ${work_dir}/iso/${install_dir}/boot/amd_ucode.img + cp ${work_dir}/x86_64/airootfs/usr/share/licenses/amd-ucode/LICENSE ${work_dir}/iso/${install_dir}/boot/amd_ucode.LICENSE +} + +# Prepare /${install_dir}/boot/syslinux +make_syslinux() { + _uname_r=$(file -b ${work_dir}/x86_64/airootfs/boot/vmlinuz-linux-lts| awk 'f{print;f=0} /version/{f=1}' RS=' ') + mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux + for _cfg in ${script_path}/syslinux/*.cfg; do + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%ISO_VERSION%|${iso_version}|g; + s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/} + done + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux + mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt + gzip -c -9 ${work_dir}/x86_64/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz + gzip -c -9 ${work_dir}/x86_64/airootfs/usr/lib/modules/${_uname_r}/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}/x86_64/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ +} + +# Prepare /EFI +make_efi() { + rm -rf ${work_dir}/iso/EFI + rm -rf ${work_dir}/iso/boot + mkdir -p ${work_dir}/iso/EFI/boot + mkdir -p ${work_dir}/iso/boot/grub + cp -a /usr/lib/grub/x86_64-efi ${work_dir}/iso/boot/grub/ + cp ${script_path}/efiboot/grub/font.pf2 ${work_dir}/iso/boot/grub/ + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%ISO_VERSION%|${iso_version}|g; + s|%INSTALL_DIR%|${install_dir}|g" \ + ${script_path}/efiboot/grub/grubsrcd.cfg > ${work_dir}/iso/boot/grub/grubsrcd.cfg +} + +# Prepare efiboot.img::/EFI for "El Torito" EFI boot mode +make_efiboot() { + + rm -rf ${work_dir}/memdisk + mkdir -p "${work_dir}/memdisk" + mkdir -p "${work_dir}/memdisk/boot/grub" + cp -a ${script_path}/efiboot/grub/grubinit.cfg "${work_dir}/memdisk/boot/grub/grub.cfg" + tar -c -C "${work_dir}/memdisk" -f ${work_dir}/memdisk.img boot + + rm -rf ${work_dir}/efitemp + mkdir -p ${work_dir}/efitemp/efi/boot + + grub-mkimage -m "${work_dir}/memdisk.img" -o "${work_dir}/iso/EFI/boot/bootx64.efi" \ + --prefix='(memdisk)/boot/grub' -d /usr/lib64/grub/x86_64-efi -C xz -O x86_64-efi \ + search iso9660 configfile normal memdisk tar boot linux part_msdos part_gpt \ + part_apple configfile help loadenv ls reboot chain search_fs_uuid multiboot \ + fat iso9660 udf ext2 btrfs ntfs reiserfs xfs lvm ata + + cp -a "${work_dir}/iso/EFI/boot/bootx64.efi" "${work_dir}/efitemp/efi/boot/bootx64.efi" + + mkdir -p ${work_dir}/iso/EFI/archiso + rm -f "${work_dir}/iso/EFI/archiso/efiboot.img" + mformat -C -f 1440 -L 16 -i "${work_dir}/iso/EFI/archiso/efiboot.img" :: + mcopy -s -i "${work_dir}/iso/EFI/archiso/efiboot.img" "${work_dir}/efitemp/efi" ::/ +} + +# Build airootfs filesystem image +make_prepare() { + cp -a -l -f ${work_dir}/x86_64/airootfs ${work_dir} + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare + rm -rf ${work_dir}/airootfs + # rm -rf ${work_dir}/x86_64/airootfs (if low space, this helps) +} + +# Build ISO +make_iso() { + cp ${version_file} ${work_dir}/iso/${install_dir}/ + mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -P "${iso_publisher}" -A "${iso_application}" -o "${out_dir}" iso "${iso_name}-${iso_version}.iso" +} + +if [[ ${EUID} -ne 0 ]]; then + echo "This script must be run as root." + _usage 1 +fi + +while getopts 'N:V:L:P:A:D:w:o:g:vh' arg; do + case "${arg}" in + N) iso_name="${OPTARG}" ;; + V) iso_version="${OPTARG}" ;; + L) iso_label="${OPTARG}" ;; + P) iso_publisher="${OPTARG}" ;; + A) iso_application="${OPTARG}" ;; + D) install_dir="${OPTARG}" ;; + w) work_dir="${OPTARG}" ;; + o) out_dir="${OPTARG}" ;; + g) gpg_key="${OPTARG}" ;; + v) verbose="-v" ;; + h) _usage 0 ;; + *) + echo "Invalid argument '${arg}'" + _usage 1 + ;; + esac +done + +mkdir -p ${work_dir} + +run_once make_pacman_conf +run_once make_basefs +run_once make_packages +run_once make_setup_mkinitcpio +run_once make_customize_airootfs +run_once make_boot +run_once make_boot_extra +run_once make_syslinux +run_once make_isolinux +run_once make_efi +run_once make_efiboot +run_once make_prepare +run_once make_iso diff --git a/efiboot/grub/font.pf2 b/efiboot/grub/font.pf2 new file mode 100644 index 0000000000000000000000000000000000000000..1eb3edcffa6a30b1431c09c443ad1da33af8a06b GIT binary patch literal 4987 zcma)?1-c!c z$Amh$$%k8F>Xxvz*0%xe?9Tn&&jt1g{ziF|rrF%)-+`tPet;G~S&u+62&#WrTl17`|La^cw{3;2{D>JWN;tVPbNtAj=8d zMLB`#_7L_#XqVduSxGnnSw%Ptd6e)=$YX>{kjDvsgj5jz3aKRg8}bCMJZ5G!fni%i z;8y5C9_Ls~U|7}>n0GJXI}n+`_^c<4LRf5hj57!1{R~n|h(PKHA44_}ZbG=XJch-G zD_?{(5a`B60%OxipbJd|*3TxwZpdcB_aN-e4?|iAuR>Z0Z$tcq-$Lkj{#D2p!k;1E zB>V%i6_=H(ZzHf0wiCEIgKp)%zeV8m-zKy}b`rWFPZ9y6+<_1}r2z46qZb0L6qx0PCy})#P48*jppF$q9UL z7-G%D91?ax$mquz-7hq>e9^q4<;sulw)yXtE%&mlJQZtQv1_!o>r`^&|F&FxKI-xm zkGQ(rdX~Mg3>M?kwG93)Rv+@k>VqSCbB3B?t-b!(wa{igOV9auX~+{V^_|zVJn&Im zQm)VREPEy|2|dvXM=+{qSvx)9JtR+fYh*o3c{(ca>O*es=IP!!;+!?|TV6?b&OXk^ zd3EQknv6>FWYkerptt%OSXLGsm3k)iEUTs?-U@lh8=Tg&?5>PE8gLzWN6)frByMjo z$HlH6>RO(T8(}H^pO(dOW7lcjIgiG38y3V%x{m5u`c8e(_U!f>e`xUQS+4TO&UhA% z*t!b!EPLOxW5gfkox-bgu8@fXTrBgsMkJ+aU~|OgE8_~;FwPLf0(Z-$ zR{TVzJ0!=3X#;-K445dBj$ea=G{wBL=rt%WHY3X`t=z)l860*zoA;%HTH0Y_20!KerZN%Nb}9+G5p1kPn+KZwKB8n8JTv8hM<;kh~Kxi~!R7!)y?31-OI ztRT!PcQd%JLD4Zh+^=0q7G*)ZcxCb4H_zB|vyEd=9^I4^|Bo8e{RIlKdgnqiGU z;j+^AEUr+60D6ZeP4UZ(qkso_TY7$8pUl1Rf4(_r<+qDpp{QkiiNKT8c`W z&+hpBlwI|jR`suIV}_lzw{xbn+jI2VC`t}>7}iQImo_?*WpUMy7X6pe#ZPW)=MEQ* zmrsnNM;&IeEg76YH|k7MDwt22k&b`mbB#Z*E)IK#Y%nIDJ!NM%$9=9T7_j2Zg6Jvb zgNSE~gXhqji2}0-qEb*iFi>D2X;;|(DaIf;$%1?2GD>ApKf3Ok*pZ1RRTHDM^EmeX zxL0d(m?oyXvlNS)Um0?;su^=UEbbX~9{&HF4=@n01QQdo2Nt4=Es)Rejob-7IiXNbIMGZ8{3?@`-V%?T{TGZaL+bb1l;qQ4N&ZU}RHXh3&1rrMXB*s(nQ9@}kC| zXbcA%+9|JCSu17J=c>glq9d+D8dFDaw|hxzIr5f|`oK04v&t>y7@j!SP{Z0)4j)16 zSXO?o7ihjfZsd#P{Flh&VT1$OX}#*e7PC+{nK)!GtY<)YP@yF)kMSW--E*3^O4u3G zXo4pR*hnd_66i&dDjxEcKe>Oz<%T-o#tn7A?GH5rtWyc4hM61j0x-40PueiRntU#9 z-9oQ5dA82tgP#&}a_yO6o}TGuLTU2oRlJ$=jCI%}@Hf>?OsCuYFNrvVjG~BnUuh>; zotpN{Wlo^EpKS97(nxo)+KJ@ij0sy)1OyK^X?wpiHj|x7b4IzXY?U>=PPwfFRB38% N+hKoLy{$B7{sWMYf~5ce literal 0 HcmV?d00001 diff --git a/efiboot/grub/grubinit.cfg b/efiboot/grub/grubinit.cfg new file mode 100644 index 0000000..f1b245a --- /dev/null +++ b/efiboot/grub/grubinit.cfg @@ -0,0 +1,3 @@ +search --file --no-floppy --set=root /boot/grub/grubsrcd.cfg +set prefix=/boot/grub +source (${root})/boot/grub/grubsrcd.cfg diff --git a/efiboot/grub/grubsrcd.cfg b/efiboot/grub/grubsrcd.cfg new file mode 100644 index 0000000..a1d05d8 --- /dev/null +++ b/efiboot/grub/grubsrcd.cfg @@ -0,0 +1,29 @@ +# Global options +set timeout=90 +set default=0 +set fallback=1 +set pager=1 + +# Display settings +if loadfont /boot/grub/font.pf2 ; then + set gfxmode=auto + insmod efi_gop + insmod efi_uga + insmod gfxterm + insmod all_video + insmod videotest + insmod videoinfo + terminal_output gfxterm +fi + +menuentry "Boot SystemRescueCd using default options" { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% + initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/x86_64/sysresccd.img +} + +menuentry "Boot SystemRescueCd and copy system to RAM" { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram + initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/x86_64/sysresccd.img +} diff --git a/isolinux/isolinux.cfg b/isolinux/isolinux.cfg new file mode 100644 index 0000000..9109375 --- /dev/null +++ b/isolinux/isolinux.cfg @@ -0,0 +1,6 @@ +PATH /%INSTALL_DIR%/boot/syslinux/ +DEFAULT loadconfig + +LABEL loadconfig + CONFIG /%INSTALL_DIR%/boot/syslinux/sysresccd.cfg + APPEND /%INSTALL_DIR%/ diff --git a/mkinitcpio.conf b/mkinitcpio.conf new file mode 100644 index 0000000..c04f1dc --- /dev/null +++ b/mkinitcpio.conf @@ -0,0 +1,2 @@ +HOOKS=(base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard) +COMPRESSION="xz" diff --git a/packages.x86_64 b/packages.x86_64 new file mode 100644 index 0000000..dd47ca2 --- /dev/null +++ b/packages.x86_64 @@ -0,0 +1,118 @@ +arch-install-scripts +atop +b43-fwcutter +btrfs-progs +chntpw +cifs-utils +clonezilla +cpio +crda +darkhttpd +ddrescue +dhclient +dialog +dmidecode +dmraid +dnsmasq +dnsutils +dosfstools +elinks +ethtool +exfat-utils +f2fs-tools +firefox +fsarchiver +geany +git +gnu-netcat +gparted +gpm +gptfdisk +grml-zsh-config +grub +hdparm +htop +iftop +iotop +ipw2100-fw +ipw2200-fw +irssi +keepassxc +lftp +lightdm +linux-atm +linux-lts-headers +lsof +lsscsi +lzip +mc +memtester +mlocate +mtools +ncdu +ndisc6 +network-manager-applet +networkmanager-openvpn +networkmanager-vpnc +nfs-utils +nilfs-utils +nmap +notepadqq +ntfs-3g +ntp +nvme-cli +openconnect +openssh +openvpn +p7zip +partclone +parted +partimage +ppp +pptpclient +pv +rdesktop +refind-efi +rp-pppoe +rsync +ruby +screen +sdparm +sg3_utils +smartmontools +sudo +sysstat +tcpdump +testdisk +tigervnc +tmux +traceroute +ttf-dejavu +ttf-droid +unrar +unzip +usb_modeswitch +vim-minimal +vpnc +wipe +wget +wireless-regdb +wireless_tools +wpa_actiond +wvdial +xarchiver +xfce4 +xfce4-battery-plugin +xfce4-taskmanager +xfsdump +xkbsel +xkeyboard-config +xl2tpd +xorg-apps +xorg-drivers +xorg-server +xorg-xinit +yubikey-manager-qt +yubikey-personalization-gui +zile +zip diff --git a/pacman.conf b/pacman.conf new file mode 100644 index 0000000..3a6ef08 --- /dev/null +++ b/pacman.conf @@ -0,0 +1,89 @@ +# +# /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/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -C - -f %u > %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +#Color +#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 = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# 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. + +#[archrepo] +#Server = http://archrepo.system-rescue-cd.org/archpkgs/ +#SigLevel = Optional TrustAll + +[custompkgs] +Server = http://archrepo.system-rescue-cd.org/custompkgs/ +SigLevel = Optional TrustAll + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist + diff --git a/syslinux/syslinux.cfg b/syslinux/syslinux.cfg new file mode 100644 index 0000000..1bfdefc --- /dev/null +++ b/syslinux/syslinux.cfg @@ -0,0 +1,5 @@ +DEFAULT loadconfig + +LABEL loadconfig + CONFIG sysresccd.cfg + APPEND ../../ diff --git a/syslinux/sysresccd.cfg b/syslinux/sysresccd.cfg new file mode 100644 index 0000000..cebadfc --- /dev/null +++ b/syslinux/sysresccd.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/sysresccd_pxe.cfg + +LABEL sys +CONFIG boot/syslinux/sysresccd_sys.cfg diff --git a/syslinux/sysresccd_head.cfg b/syslinux/sysresccd_head.cfg new file mode 100644 index 0000000..cf9c472 --- /dev/null +++ b/syslinux/sysresccd_head.cfg @@ -0,0 +1,24 @@ +SERIAL 0 38400 +UI boot/syslinux/vesamenu.c32 +MENU TITLE SYSTEM-RESCUE-CD %ISO_VERSION% (www.system-rescue-cd.org) +MENU BACKGROUND #c00090f0 + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 15 +MENU TABMSGROW 22 +MENU CMDLINEROW 22 +MENU HELPMSGROW 24 +MENU HELPMSGENDROW 37 + +# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU color title 1;31;40 #FFFF0000 #00000000 std +MENU color sel 7;37;40 #FF000000 #FFC0C0C0 all +MENU color unsel 37;44 #FF000000 #00000000 none +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 1;31;40 #FFFFFF00 #00000000 std diff --git a/syslinux/sysresccd_pxe.cfg b/syslinux/sysresccd_pxe.cfg new file mode 100644 index 0000000..ea3b46c --- /dev/null +++ b/syslinux/sysresccd_pxe.cfg @@ -0,0 +1,36 @@ +INCLUDE boot/syslinux/sysresccd_head.cfg + +LABEL sysresccd_nbd +TEXT HELP +Boot the SystemRescueCd live medium (Using NBD). +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot SystemRescueCd (NBD) +LINUX boot/x86_64/vmlinuz +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/sysresccd.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} +SYSAPPEND 3 + +LABEL sysresccd_nfs +TEXT HELP +Boot the SystemRescueCd live medium (Using NFS). +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot SystemRescueCd (NFS) +LINUX boot/x86_64/vmlinuz +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/sysresccd.img +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/sysresccd/bootmnt +SYSAPPEND 3 + +LABEL sysresccd_http +TEXT HELP +Boot the SystemRescueCd live medium (Using HTTP). +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Boot SystemRescueCd (HTTP) +LINUX boot/x86_64/vmlinuz +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/sysresccd.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ +SYSAPPEND 3 + +INCLUDE boot/syslinux/sysresccd_tail.cfg diff --git a/syslinux/sysresccd_sys.cfg b/syslinux/sysresccd_sys.cfg new file mode 100644 index 0000000..b2eef90 --- /dev/null +++ b/syslinux/sysresccd_sys.cfg @@ -0,0 +1,21 @@ +INCLUDE boot/syslinux/sysresccd_head.cfg + +LABEL sysresccd +TEXT HELP +Boot the SystemRescueCd live medium. +ENDTEXT +MENU LABEL Boot SystemRescueCd using default options +LINUX boot/x86_64/vmlinuz +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/sysresccd.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% + +LABEL sysresccd_copytoram +TEXT HELP +Boot the SystemRescueCd live medium and copy system to RAM +ENDTEXT +MENU LABEL Boot SystemRescueCd and copy system to RAM +LINUX boot/x86_64/vmlinuz +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/sysresccd.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram + +INCLUDE boot/syslinux/sysresccd_tail.cfg diff --git a/syslinux/sysresccd_tail.cfg b/syslinux/sysresccd_tail.cfg new file mode 100644 index 0000000..605c2e6 --- /dev/null +++ b/syslinux/sysresccd_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 +COM32 boot/syslinux/poweroff.c32