[arch-releng] [PATCH 01/13] [archiso] Rename root-image to airootfs
Gerardo Exequiel Pozzi
vmlinuz386 at yahoo.com.ar
Fri Mar 28 23:40:15 EDT 2014
Two purposes:
* systemd filename friendly: "-" is used for "/" and must be escaped with "\x20"
* ISO9660 filename friendly: "-" is replaced with "_"
---
archiso/mkarchiso | 54 +++++++--------
configs/baseline/aitab | 2 +-
configs/baseline/build.sh | 26 ++++----
configs/releng/airootfs/etc/fstab | 0
configs/releng/airootfs/etc/hostname | 1 +
configs/releng/airootfs/etc/locale.conf | 1 +
configs/releng/airootfs/etc/pam.d/su | 6 ++
configs/releng/airootfs/etc/sudoers.d/g_wheel | 1 +
.../airootfs/etc/systemd/scripts/choose-mirror | 26 ++++++++
.../etc/systemd/system/choose-mirror.service | 10 +++
.../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 +++
.../system/getty at tty1.service.d/autologin.conf | 3 +
.../etc/systemd/system/pacman-init.service | 15 +++++
.../airootfs/etc/udev/rules.d/81-dhcpcd.rules | 1 +
configs/releng/airootfs/root/.automated_script.sh | 34 ++++++++++
configs/releng/airootfs/root/.zlogin | 1 +
configs/releng/airootfs/root/customize_airootfs.sh | 22 +++++++
configs/releng/airootfs/root/install.txt | 3 +
configs/releng/aitab | 4 +-
configs/releng/build.sh | 76 +++++++++++-----------
configs/releng/root-image/etc/fstab | 0
configs/releng/root-image/etc/hostname | 1 -
configs/releng/root-image/etc/locale.conf | 1 -
configs/releng/root-image/etc/pam.d/su | 6 --
configs/releng/root-image/etc/sudoers.d/g_wheel | 1 -
.../root-image/etc/systemd/scripts/choose-mirror | 26 --------
.../etc/systemd/system/choose-mirror.service | 10 ---
.../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 ---
.../system/getty at tty1.service.d/autologin.conf | 3 -
.../etc/systemd/system/pacman-init.service | 15 -----
.../root-image/etc/udev/rules.d/81-dhcpcd.rules | 1 -
.../releng/root-image/root/.automated_script.sh | 34 ----------
configs/releng/root-image/root/.zlogin | 1 -
.../releng/root-image/root/customize_root_image.sh | 22 -------
configs/releng/root-image/root/install.txt | 3 -
docs/README.build | 2 +-
36 files changed, 214 insertions(+), 214 deletions(-)
create mode 100644 configs/releng/airootfs/etc/fstab
create mode 100644 configs/releng/airootfs/etc/hostname
create mode 100644 configs/releng/airootfs/etc/locale.conf
create mode 100644 configs/releng/airootfs/etc/pam.d/su
create mode 100644 configs/releng/airootfs/etc/sudoers.d/g_wheel
create mode 100755 configs/releng/airootfs/etc/systemd/scripts/choose-mirror
create mode 100644 configs/releng/airootfs/etc/systemd/system/choose-mirror.service
create mode 100644 configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
create mode 100644 configs/releng/airootfs/etc/systemd/system/getty at tty1.service.d/autologin.conf
create mode 100644 configs/releng/airootfs/etc/systemd/system/pacman-init.service
create mode 100644 configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules
create mode 100755 configs/releng/airootfs/root/.automated_script.sh
create mode 100644 configs/releng/airootfs/root/.zlogin
create mode 100755 configs/releng/airootfs/root/customize_airootfs.sh
create mode 100644 configs/releng/airootfs/root/install.txt
delete mode 100644 configs/releng/root-image/etc/fstab
delete mode 100644 configs/releng/root-image/etc/hostname
delete mode 100644 configs/releng/root-image/etc/locale.conf
delete mode 100644 configs/releng/root-image/etc/pam.d/su
delete mode 100644 configs/releng/root-image/etc/sudoers.d/g_wheel
delete mode 100755 configs/releng/root-image/etc/systemd/scripts/choose-mirror
delete mode 100644 configs/releng/root-image/etc/systemd/system/choose-mirror.service
delete mode 100644 configs/releng/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
delete mode 100644 configs/releng/root-image/etc/systemd/system/getty at tty1.service.d/autologin.conf
delete mode 100644 configs/releng/root-image/etc/systemd/system/pacman-init.service
delete mode 100644 configs/releng/root-image/etc/udev/rules.d/81-dhcpcd.rules
delete mode 100755 configs/releng/root-image/root/.automated_script.sh
delete mode 100644 configs/releng/root-image/root/.zlogin
delete mode 100755 configs/releng/root-image/root/customize_root_image.sh
delete mode 100644 configs/releng/root-image/root/install.txt
diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index 9655167..26a82ee 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -51,14 +51,14 @@ _chroot_init() {
if [[ -f "${work_dir}/mkarchiso.init" ]]; then
_msg_info "Initial enviroment already installed, skipping."
else
- mkdir -p ${work_dir}/root-image
+ mkdir -p ${work_dir}/airootfs
_pacman "base syslinux"
: > "${work_dir}/mkarchiso.init"
fi
}
_chroot_run() {
- eval arch-chroot ${work_dir}/root-image "${run_cmd}"
+ eval arch-chroot ${work_dir}/airootfs "${run_cmd}"
}
# Mount a filesystem (trap signals in case of error for unmounting it
@@ -116,7 +116,7 @@ _usage ()
echo "usage ${app_name} [options] command <command options>"
echo " general options:"
echo " -p PACKAGE(S) Package(s) to install, can be used multiple times"
- echo " -r <command> Run <command> inside root-image"
+ echo " -r <command> Run <command> inside airootfs"
echo " -C <file> Config file for pacman."
echo " Default: '${pacman_conf}'"
echo " -L <label> Set a label for the disk"
@@ -146,7 +146,7 @@ _usage ()
echo " checksum"
echo " make a checksum.md5 for self-test"
echo " pkglist"
- echo " make a pkglist.txt of packages installed on root-image"
+ echo " make a pkglist.txt of packages installed on airootfs"
echo " iso <image name>"
echo " build an iso image from the working dir"
exit ${1}
@@ -189,51 +189,51 @@ _show_config () {
echo
}
-# Install desired packages to root-image
+# Install desired packages to airootfs
_pacman ()
{
- _msg_info "Installing packages to '${work_dir}/root-image/'..."
+ _msg_info "Installing packages to '${work_dir}/airootfs/'..."
if [[ "${quiet}" = "y" ]]; then
- pacstrap -C "${pacman_conf}" -c -d -G -M "${work_dir}/root-image" $* &> /dev/null
+ pacstrap -C "${pacman_conf}" -c -d -G -M "${work_dir}/airootfs" $* &> /dev/null
else
- pacstrap -C "${pacman_conf}" -c -d -G -M "${work_dir}/root-image" $*
+ pacstrap -C "${pacman_conf}" -c -d -G -M "${work_dir}/airootfs" $*
fi
_msg_info "Packages installed successfully!"
}
-# Cleanup root-image
+# Cleanup airootfs
_cleanup () {
- _msg_info "Cleaning up what we can on root-image..."
+ _msg_info "Cleaning up what we can on airootfs..."
# Delete initcpio image(s)
- if [[ -d "${work_dir}/root-image/boot" ]]; then
- find "${work_dir}/root-image/boot" -type f -name '*.img' -delete
+ if [[ -d "${work_dir}/airootfs/boot" ]]; then
+ find "${work_dir}/airootfs/boot" -type f -name '*.img' -delete
fi
# Delete kernel(s)
- if [[ -d "${work_dir}/root-image/boot" ]]; then
- find "${work_dir}/root-image/boot" -type f -name 'vmlinuz*' -delete
+ if [[ -d "${work_dir}/airootfs/boot" ]]; then
+ find "${work_dir}/airootfs/boot" -type f -name 'vmlinuz*' -delete
fi
# Delete pacman database sync cache files (*.tar.gz)
- if [[ -d "${work_dir}/root-image/var/lib/pacman" ]]; then
- find "${work_dir}/root-image/var/lib/pacman" -maxdepth 1 -type f -delete
+ if [[ -d "${work_dir}/airootfs/var/lib/pacman" ]]; then
+ find "${work_dir}/airootfs/var/lib/pacman" -maxdepth 1 -type f -delete
fi
# Delete pacman database sync cache
- if [[ -d "${work_dir}/root-image/var/lib/pacman/sync" ]]; then
- find "${work_dir}/root-image/var/lib/pacman/sync" -delete
+ if [[ -d "${work_dir}/airootfs/var/lib/pacman/sync" ]]; then
+ find "${work_dir}/airootfs/var/lib/pacman/sync" -delete
fi
# Delete pacman package cache
- if [[ -d "${work_dir}/root-image/var/cache/pacman/pkg" ]]; then
- find "${work_dir}/root-image/var/cache/pacman/pkg" -type f -delete
+ if [[ -d "${work_dir}/airootfs/var/cache/pacman/pkg" ]]; then
+ find "${work_dir}/airootfs/var/cache/pacman/pkg" -type f -delete
fi
# Delete all log files, keeps empty dirs.
- if [[ -d "${work_dir}/root-image/var/log" ]]; then
- find "${work_dir}/root-image/var/log" -type f -delete
+ if [[ -d "${work_dir}/airootfs/var/log" ]]; then
+ find "${work_dir}/airootfs/var/log" -type f -delete
fi
# Delete all temporary files and dirs
- if [[ -d "${work_dir}/root-image/var/tmp" ]]; then
- find "${work_dir}/root-image/var/tmp" -mindepth 1 -delete
+ if [[ -d "${work_dir}/airootfs/var/tmp" ]]; then
+ find "${work_dir}/airootfs/var/tmp" -mindepth 1 -delete
fi
# Delete package pacman related files.
find "${work_dir}" \( -name "*.pacnew" -o -name "*.pacsave" -o -name "*.pacorig" \) -delete
@@ -359,9 +359,9 @@ command_checksum () {
command_pkglist () {
_show_config pkglist
- if _is_directory_changed "${work_dir}/root-image/var/lib/pacman/local" "${work_dir}/iso/${install_dir}/pkglist.${arch}.txt"; then
+ if _is_directory_changed "${work_dir}/airootfs/var/lib/pacman/local" "${work_dir}/iso/${install_dir}/pkglist.${arch}.txt"; then
_msg_info "Creating a list of installed packages on live-enviroment..."
- pacman -Sl -r "${work_dir}/root-image" --config "${pacman_conf}" | \
+ pacman -Sl -r "${work_dir}/airootfs" --config "${pacman_conf}" | \
awk '/\[installed\]$/ {print $1 "/" $2 "-" $3}' > \
"${work_dir}/iso/${install_dir}/pkglist.${arch}.txt"
_msg_info "Done!"
@@ -450,7 +450,7 @@ command_prepare () {
done < "${work_dir}/iso/${install_dir}/aitab"
}
-# Install packages on root-image.
+# Install packages on airootfs.
# A basic check to avoid double execution/reinstallation is done via hashing package names.
command_install () {
if [[ ! -f "${pacman_conf}" ]]; then
diff --git a/configs/baseline/aitab b/configs/baseline/aitab
index 234f61c..9134d60 100644
--- a/configs/baseline/aitab
+++ b/configs/baseline/aitab
@@ -1,2 +1,2 @@
# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
-root-image / %ARCH% gzip ext4 50%
+airootfs / %ARCH% gzip ext4 50%
diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh
index ed65e17..19bc0c4 100755
--- a/configs/baseline/build.sh
+++ b/configs/baseline/build.sh
@@ -20,24 +20,24 @@ run_once() {
fi
}
-# Base installation (root-image)
+# Base installation (airootfs)
make_basefs() {
mkarchiso -v -w "${work_dir}" -D "${install_dir}" init
}
-# Copy mkinitcpio archiso hooks and build initramfs (root-image)
+# Copy mkinitcpio archiso hooks and build initramfs (airootfs)
make_setup_mkinitcpio() {
- cp /usr/lib/initcpio/hooks/archiso ${work_dir}/root-image/usr/lib/initcpio/hooks
- cp /usr/lib/initcpio/install/archiso ${work_dir}/root-image/usr/lib/initcpio/install
- cp ${script_path}/mkinitcpio.conf ${work_dir}/root-image/etc/mkinitcpio-archiso.conf
+ cp /usr/lib/initcpio/hooks/archiso ${work_dir}/airootfs/usr/lib/initcpio/hooks
+ cp /usr/lib/initcpio/install/archiso ${work_dir}/airootfs/usr/lib/initcpio/install
+ cp ${script_path}/mkinitcpio.conf ${work_dir}/airootfs/etc/mkinitcpio-archiso.conf
mkarchiso -v -w "${work_dir}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img' run
}
# Prepare ${install_dir}/boot/
make_boot() {
mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch}
- cp ${work_dir}/root-image/boot/archiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img
- cp ${work_dir}/root-image/boot/vmlinuz-linux ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz
+ cp ${work_dir}/airootfs/boot/archiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img
+ cp ${work_dir}/airootfs/boot/vmlinuz-linux ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz
}
# Prepare /${install_dir}/boot/syslinux
@@ -46,18 +46,18 @@ make_syslinux() {
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" ${script_path}/syslinux/syslinux.cfg > ${work_dir}/iso/${install_dir}/boot/syslinux/syslinux.cfg
- cp ${work_dir}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
- cp ${work_dir}/root-image/usr/lib/syslinux/bios/menu.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
- cp ${work_dir}/root-image/usr/lib/syslinux/bios/libutil.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
+ cp ${work_dir}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
+ cp ${work_dir}/airootfs/usr/lib/syslinux/bios/menu.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
+ cp ${work_dir}/airootfs/usr/lib/syslinux/bios/libutil.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
}
# 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}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/
- cp ${work_dir}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
- cp ${work_dir}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
+ cp ${work_dir}/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
}
# Process aitab
diff --git a/configs/releng/airootfs/etc/fstab b/configs/releng/airootfs/etc/fstab
new file mode 100644
index 0000000..e69de29
diff --git a/configs/releng/airootfs/etc/hostname b/configs/releng/airootfs/etc/hostname
new file mode 100644
index 0000000..2dbe21e
--- /dev/null
+++ b/configs/releng/airootfs/etc/hostname
@@ -0,0 +1 @@
+archiso
diff --git a/configs/releng/airootfs/etc/locale.conf b/configs/releng/airootfs/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/configs/releng/airootfs/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/configs/releng/airootfs/etc/pam.d/su b/configs/releng/airootfs/etc/pam.d/su
new file mode 100644
index 0000000..a291042
--- /dev/null
+++ b/configs/releng/airootfs/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/releng/airootfs/etc/sudoers.d/g_wheel b/configs/releng/airootfs/etc/sudoers.d/g_wheel
new file mode 100644
index 0000000..8c45359
--- /dev/null
+++ b/configs/releng/airootfs/etc/sudoers.d/g_wheel
@@ -0,0 +1 @@
+%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/configs/releng/airootfs/etc/systemd/scripts/choose-mirror b/configs/releng/airootfs/etc/systemd/scripts/choose-mirror
new file mode 100755
index 0000000..0ae0806
--- /dev/null
+++ b/configs/releng/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/configs/releng/airootfs/etc/systemd/system/choose-mirror.service b/configs/releng/airootfs/etc/systemd/system/choose-mirror.service
new file mode 100644
index 0000000..1e4d771
--- /dev/null
+++ b/configs/releng/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/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
new file mode 100644
index 0000000..4eab551
--- /dev/null
+++ b/configs/releng/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/configs/releng/airootfs/etc/systemd/system/getty at tty1.service.d/autologin.conf b/configs/releng/airootfs/etc/systemd/system/getty at tty1.service.d/autologin.conf
new file mode 100644
index 0000000..d1d8474
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/system/getty at tty1.service.d/autologin.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
diff --git a/configs/releng/airootfs/etc/systemd/system/pacman-init.service b/configs/releng/airootfs/etc/systemd/system/pacman-init.service
new file mode 100644
index 0000000..23b8144
--- /dev/null
+++ b/configs/releng/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/configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules b/configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules
new file mode 100644
index 0000000..1c4053c
--- /dev/null
+++ b/configs/releng/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/configs/releng/airootfs/root/.automated_script.sh b/configs/releng/airootfs/root/.automated_script.sh
new file mode 100755
index 0000000..fb106da
--- /dev/null
+++ b/configs/releng/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/configs/releng/airootfs/root/.zlogin b/configs/releng/airootfs/root/.zlogin
new file mode 100644
index 0000000..f598e43
--- /dev/null
+++ b/configs/releng/airootfs/root/.zlogin
@@ -0,0 +1 @@
+~/.automated_script.sh
diff --git a/configs/releng/airootfs/root/customize_airootfs.sh b/configs/releng/airootfs/root/customize_airootfs.sh
new file mode 100755
index 0000000..9c85453
--- /dev/null
+++ b/configs/releng/airootfs/root/customize_airootfs.sh
@@ -0,0 +1,22 @@
+#!/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 /usr/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 /usr/bin/zsh arch
+
+chmod 750 /etc/sudoers.d
+chmod 440 /etc/sudoers.d/g_wheel
+
+sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
+sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf
+
+systemctl enable pacman-init.service choose-mirror.service
+systemctl set-default multi-user.target
diff --git a/configs/releng/airootfs/root/install.txt b/configs/releng/airootfs/root/install.txt
new file mode 100644
index 0000000..3c8f171
--- /dev/null
+++ b/configs/releng/airootfs/root/install.txt
@@ -0,0 +1,3 @@
+View this installation guide online at
+https://wiki.archlinux.org/index.php/Installation_Guide
+
diff --git a/configs/releng/aitab b/configs/releng/aitab
index b7e9a17..f9b482d 100644
--- a/configs/releng/aitab
+++ b/configs/releng/aitab
@@ -1,3 +1,3 @@
# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
-root-image / i686 xz ext4 50%
-root-image / x86_64 xz ext4 50%
+airootfs / i686 xz ext4 50%
+airootfs / x86_64 xz ext4 50%
diff --git a/configs/releng/build.sh b/configs/releng/build.sh
index 63b7126..2438175 100755
--- a/configs/releng/build.sh
+++ b/configs/releng/build.sh
@@ -51,53 +51,53 @@ make_pacman_conf() {
sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf}
}
-# Base installation, plus needed packages (root-image)
+# Base installation, plus needed packages (airootfs)
make_basefs() {
setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init
setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install
}
-# Additional packages (root-image)
+# Additional packages (airootfs)
make_packages() {
setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install
}
-# Copy mkinitcpio archiso hooks and build initramfs (root-image)
+# Copy mkinitcpio archiso hooks and build initramfs (airootfs)
make_setup_mkinitcpio() {
local _hook
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}/${arch}/root-image/usr/lib/initcpio/hooks
- cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install
+ cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/${arch}/airootfs/usr/lib/initcpio/hooks
+ cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/airootfs/usr/lib/initcpio/install
done
- cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install
- cp /usr/lib/initcpio/archiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio
- cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-archiso.conf
+ cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/${arch}/airootfs/usr/lib/initcpio/install
+ cp /usr/lib/initcpio/archiso_shutdown ${work_dir}/${arch}/airootfs/usr/lib/initcpio
+ cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/airootfs/etc/mkinitcpio-archiso.conf
setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img' run
}
-# Customize installation (root-image)
-make_customize_root_image() {
- cp -af ${script_path}/root-image ${work_dir}/${arch}
+# Customize installation (airootfs)
+make_customize_airootfs() {
+ cp -af ${script_path}/airootfs ${work_dir}/${arch}
- curl -o ${work_dir}/${arch}/root-image/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on'
+ curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on'
- lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/root-image/root/install.txt
+ lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt
- setarch ${arch} mkarchiso ${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
+ setarch ${arch} mkarchiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_airootfs.sh' run
+ rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.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/archiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img
- cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz
+ cp ${work_dir}/${arch}/airootfs/boot/archiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img
+ cp ${work_dir}/${arch}/airootfs/boot/vmlinuz-linux ${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
+ cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest
+ cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING
}
# Prepare /${install_dir}/boot/syslinux
@@ -108,30 +108,30 @@ make_syslinux() {
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/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux
+ cp ${work_dir}/${arch}/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}/${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/*-ARCH/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz
+ gzip -c -9 ${work_dir}/${arch}/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz
+ gzip -c -9 ${work_dir}/${arch}/airootfs/usr/lib/modules/*-ARCH/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/bios/isolinux.bin ${work_dir}/iso/isolinux/
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
}
# Prepare /EFI
make_efi() {
mkdir -p ${work_dir}/iso/EFI/boot
- cp ${work_dir}/x86_64/root-image/usr/lib/prebootloader/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi
- cp ${work_dir}/x86_64/root-image/usr/lib/prebootloader/HashTool.efi ${work_dir}/iso/EFI/boot/
+ cp ${work_dir}/x86_64/airootfs/usr/lib/prebootloader/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi
+ cp ${work_dir}/x86_64/airootfs/usr/lib/prebootloader/HashTool.efi ${work_dir}/iso/EFI/boot/
- cp ${work_dir}/x86_64/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/loader.efi
+ cp ${work_dir}/x86_64/airootfs/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/iso/EFI/boot/loader.efi
mkdir -p ${work_dir}/iso/loader/entries
cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/
@@ -162,10 +162,10 @@ make_efiboot() {
cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/archiso/archiso.img
mkdir -p ${work_dir}/efiboot/EFI/boot
- cp ${work_dir}/x86_64/root-image/usr/lib/prebootloader/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi
- cp ${work_dir}/x86_64/root-image/usr/lib/prebootloader/HashTool.efi ${work_dir}/efiboot/EFI/boot/
+ cp ${work_dir}/x86_64/airootfs/usr/lib/prebootloader/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi
+ cp ${work_dir}/x86_64/airootfs/usr/lib/prebootloader/HashTool.efi ${work_dir}/efiboot/EFI/boot/
- cp ${work_dir}/x86_64/root-image/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/efiboot/EFI/boot/loader.efi
+ cp ${work_dir}/x86_64/airootfs/usr/lib/gummiboot/gummibootx64.efi ${work_dir}/efiboot/EFI/boot/loader.efi
mkdir -p ${work_dir}/efiboot/loader/entries
cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/
@@ -190,11 +190,11 @@ make_aitab() {
# Build all filesystem images specified in aitab (.fs.sfs .sfs)
make_prepare() {
- cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir}
+ cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir}
setarch ${arch} mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist
setarch ${arch} mkarchiso ${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)
+ rm -rf ${work_dir}/airootfs
+ # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps)
}
# Build ISO
@@ -234,12 +234,12 @@ mkdir -p ${work_dir}
run_once make_pacman_conf
-# Do all stuff for each root-image
+# Do all stuff for each airootfs
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
+ run_once make_customize_airootfs
done
for arch in i686 x86_64; do
diff --git a/configs/releng/root-image/etc/fstab b/configs/releng/root-image/etc/fstab
deleted file mode 100644
index e69de29..0000000
diff --git a/configs/releng/root-image/etc/hostname b/configs/releng/root-image/etc/hostname
deleted file mode 100644
index 2dbe21e..0000000
--- a/configs/releng/root-image/etc/hostname
+++ /dev/null
@@ -1 +0,0 @@
-archiso
diff --git a/configs/releng/root-image/etc/locale.conf b/configs/releng/root-image/etc/locale.conf
deleted file mode 100644
index 01ec548..0000000
--- a/configs/releng/root-image/etc/locale.conf
+++ /dev/null
@@ -1 +0,0 @@
-LANG=en_US.UTF-8
diff --git a/configs/releng/root-image/etc/pam.d/su b/configs/releng/root-image/etc/pam.d/su
deleted file mode 100644
index a291042..0000000
--- a/configs/releng/root-image/etc/pam.d/su
+++ /dev/null
@@ -1,6 +0,0 @@
-#%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/releng/root-image/etc/sudoers.d/g_wheel b/configs/releng/root-image/etc/sudoers.d/g_wheel
deleted file mode 100644
index 8c45359..0000000
--- a/configs/releng/root-image/etc/sudoers.d/g_wheel
+++ /dev/null
@@ -1 +0,0 @@
-%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/configs/releng/root-image/etc/systemd/scripts/choose-mirror b/configs/releng/root-image/etc/systemd/scripts/choose-mirror
deleted file mode 100755
index 0ae0806..0000000
--- a/configs/releng/root-image/etc/systemd/scripts/choose-mirror
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/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/configs/releng/root-image/etc/systemd/system/choose-mirror.service b/configs/releng/root-image/etc/systemd/system/choose-mirror.service
deleted file mode 100644
index 1e4d771..0000000
--- a/configs/releng/root-image/etc/systemd/system/choose-mirror.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[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/configs/releng/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/releng/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
deleted file mode 100644
index 4eab551..0000000
--- a/configs/releng/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
+++ /dev/null
@@ -1,8 +0,0 @@
-[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/releng/root-image/etc/systemd/system/getty at tty1.service.d/autologin.conf b/configs/releng/root-image/etc/systemd/system/getty at tty1.service.d/autologin.conf
deleted file mode 100644
index d1d8474..0000000
--- a/configs/releng/root-image/etc/systemd/system/getty at tty1.service.d/autologin.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[Service]
-ExecStart=
-ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
diff --git a/configs/releng/root-image/etc/systemd/system/pacman-init.service b/configs/releng/root-image/etc/systemd/system/pacman-init.service
deleted file mode 100644
index 23b8144..0000000
--- a/configs/releng/root-image/etc/systemd/system/pacman-init.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[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/configs/releng/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/releng/root-image/etc/udev/rules.d/81-dhcpcd.rules
deleted file mode 100644
index 1c4053c..0000000
--- a/configs/releng/root-image/etc/udev/rules.d/81-dhcpcd.rules
+++ /dev/null
@@ -1 +0,0 @@
-ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="en*|eth*", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service"
diff --git a/configs/releng/root-image/root/.automated_script.sh b/configs/releng/root-image/root/.automated_script.sh
deleted file mode 100755
index fb106da..0000000
--- a/configs/releng/root-image/root/.automated_script.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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/releng/root-image/root/.zlogin b/configs/releng/root-image/root/.zlogin
deleted file mode 100644
index f598e43..0000000
--- a/configs/releng/root-image/root/.zlogin
+++ /dev/null
@@ -1 +0,0 @@
-~/.automated_script.sh
diff --git a/configs/releng/root-image/root/customize_root_image.sh b/configs/releng/root-image/root/customize_root_image.sh
deleted file mode 100755
index 9c85453..0000000
--- a/configs/releng/root-image/root/customize_root_image.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/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 /usr/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 /usr/bin/zsh arch
-
-chmod 750 /etc/sudoers.d
-chmod 440 /etc/sudoers.d/g_wheel
-
-sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
-sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf
-
-systemctl enable pacman-init.service choose-mirror.service
-systemctl set-default multi-user.target
diff --git a/configs/releng/root-image/root/install.txt b/configs/releng/root-image/root/install.txt
deleted file mode 100644
index 3c8f171..0000000
--- a/configs/releng/root-image/root/install.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-View this installation guide online at
-https://wiki.archlinux.org/index.php/Installation_Guide
-
diff --git a/docs/README.build b/docs/README.build
index e22ec65..1f2d703 100644
--- a/docs/README.build
+++ b/docs/README.build
@@ -22,7 +22,7 @@ INDEX
+ dosfstools for mkfs.vfat
+ lynx for fetching the latest installation guide
-** For these hooks needs these packages (on target root-image)
+** For these hooks needs these packages (on target airootfs)
* archiso
+ (none)
* archiso_loop_mnt
--
1.9.1
More information about the arch-releng
mailing list