[archiso] Use dm-snapshot instead of aufs2 (A.K.A. "The Big Commit")
* Use device mapper + snapshot module, instead union layer filesystem. * A block-level approach vs vfs-level. * No more unofficial (Linux) things. * More memory is needed. * Refactor mkarchiso. * Refactor hooks/archiso. * Fix install/archiso_pxe_nbd (due recent change in mkinitcpio-0.6.15 on checked_modules()/all_modules()) [Thanks Dave for the improved workaround] * New configs/releng to build official images. * Works with a Bash script instead of Makefile. (better control and easy to maintain) * Remove configs/syslinux-iso. * Remove archiso2dual script. Integrate functionality in configs/releng. * New configs/baseline to build the most basic live medium or use as template. * New README (draft). [Thanks Dieter for fixing english grammar] Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
This commit is contained in:
commit
c22344d2ed
|
@ -0,0 +1,6 @@
|
|||
# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
|
||||
root-image / %ARCH% xz ext4 50%
|
||||
lib-modules /lib/modules %ARCH% xz ext4 10%
|
||||
usr-share /usr/share any xz ext4 50%
|
||||
core-pkgs /repo/pkg %ARCH% xz none 0
|
||||
core-any-pkgs /repo/any any xz none 0
|
|
@ -0,0 +1,4 @@
|
|||
# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
|
||||
root-image / %ARCH% xz ext4 50%
|
||||
lib-modules /lib/modules %ARCH% xz ext4 10%
|
||||
usr-share /usr/share any xz ext4 50%
|
|
@ -0,0 +1,284 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e -u
|
||||
|
||||
name=archlinux
|
||||
iso_label="ARCH_$(date +%Y%m)"
|
||||
version=$(date +%Y.%m.%d)
|
||||
install_dir=arch
|
||||
arch=$(uname -m)
|
||||
work_dir=work
|
||||
verbose="n"
|
||||
|
||||
# This function can be called after make_basefs()
|
||||
get_linux_ver() {
|
||||
local ALL_kver
|
||||
eval $(grep ^ALL_kver ${work_dir}/root-image/etc/mkinitcpio.d/kernel26.kver)
|
||||
echo ${ALL_kver}
|
||||
}
|
||||
|
||||
# Base installation (root-image)
|
||||
make_basefs() {
|
||||
mkarchiso ${verbose} -D "${install_dir}" -p "base" create "${work_dir}"
|
||||
mkarchiso ${verbose} -D "${install_dir}" -p "memtest86+ syslinux" create "${work_dir}"
|
||||
}
|
||||
|
||||
# Additional packages (root-image)
|
||||
make_packages() {
|
||||
mkarchiso ${verbose} -D "${install_dir}" -p "$(grep -v ^# packages.${arch})" create "${work_dir}"
|
||||
}
|
||||
|
||||
# Customize installation (root-image)
|
||||
make_customize_root_image() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
cp -af root-image ${work_dir}
|
||||
chmod 750 ${work_dir}/root-image/etc/sudoers.d
|
||||
chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel
|
||||
if [[ ! -L ${work_dir}/root-image/etc/mtab ]]; then
|
||||
rm -f ${work_dir}/root-image/etc/mtab
|
||||
fi
|
||||
mkdir -p ${work_dir}/root-image/etc/pacman.d
|
||||
wget -O ${work_dir}/root-image/etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/all/
|
||||
sed -i "s/#Server/Server/g" ${work_dir}/root-image/etc/pacman.d/mirrorlist
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Prepare ${install_dir}/boot/
|
||||
make_boot() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
local _src=${work_dir}/root-image
|
||||
local _dst_boot=${work_dir}/iso/${install_dir}/boot
|
||||
mkdir -p ${_dst_boot}/${arch}
|
||||
cp ${_src}/boot/vmlinuz26 ${_dst_boot}/${arch}
|
||||
mkinitcpio -c ./mkinitcpio.conf -b ${_src} -k $(get_linux_ver) -g ${_dst_boot}/${arch}/archiso.img
|
||||
cp ${_src}/boot/memtest86+/memtest.bin ${_dst_boot}/memtest
|
||||
cp ${_src}/usr/share/licenses/common/GPL2/license.txt ${_dst_boot}/memtest.COPYING
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Prepare /${install_dir}/boot/syslinux
|
||||
make_syslinux() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
local _src_syslinux=${work_dir}/root-image/usr/lib/syslinux
|
||||
local _dst_syslinux=${work_dir}/iso/${install_dir}/boot/syslinux
|
||||
mkdir -p ${_dst_syslinux}
|
||||
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
|
||||
s|%INSTALL_DIR%|${install_dir}|g;
|
||||
s|%ARCH%|${arch}|g" syslinux/syslinux.cfg > ${_dst_syslinux}/syslinux.cfg
|
||||
cp syslinux/splash.png ${_dst_syslinux}
|
||||
cp ${_src_syslinux}/*.c32 ${_dst_syslinux}
|
||||
cp ${_src_syslinux}/*.com ${_dst_syslinux}
|
||||
cp ${_src_syslinux}/*.0 ${_dst_syslinux}
|
||||
cp ${_src_syslinux}/memdisk ${_dst_syslinux}
|
||||
mkdir -p ${_dst_syslinux}/hdt
|
||||
wget -O - http://pciids.sourceforge.net/v2.2/pci.ids | gzip -9 > ${_dst_syslinux}/hdt/pciids.gz
|
||||
cat ${work_dir}/root-image/lib/modules/$(get_linux_ver)/modules.alias | gzip -9 > ${_dst_syslinux}/hdt/modalias.gz
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Prepare /isolinux
|
||||
make_isolinux() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
mkdir -p ${work_dir}/iso/isolinux
|
||||
sed "s|%INSTALL_DIR%|${install_dir}|g" isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg
|
||||
cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Split out /lib/modules from root-image (makes more "dual-iso" friendly)
|
||||
make_lib_modules() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
mv ${work_dir}/root-image/lib/modules ${work_dir}/lib-modules
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Split out /usr/share from root-image (makes more "dual-iso" friendly)
|
||||
make_usr_share() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
mv ${work_dir}/root-image/usr/share ${work_dir}/usr-share
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Make [core] repository, keep "any" pkgs in a separate fs (makes more "dual-iso" friendly)
|
||||
make_core_repo() {
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
|
||||
local _url _urls _pkg_name _cached_pkg _dst
|
||||
mkdir -p ${work_dir}/core-any-pkgs
|
||||
mkdir -p ${work_dir}/core-pkgs
|
||||
pacman -Sy
|
||||
_urls=$(pacman -Sddp $(comm -2 -3 <(pacman -Sql core | sort ) <(grep -v ^# core.exclude.${arch} | sort)))
|
||||
for _url in ${_urls}; do
|
||||
_pkg_name=${_url##*/}
|
||||
_cached_pkg=/var/cache/pacman/pkg/${_pkg_name}
|
||||
_dst=${work_dir}/core-pkgs/${_pkg_name}
|
||||
if [[ ! -e ${_dst} ]]; then
|
||||
if [[ -e ${_cached_pkg} ]]; then
|
||||
cp -v "${_cached_pkg}" "${_dst}"
|
||||
else
|
||||
wget -nv "${_url}" -O "${_dst}"
|
||||
fi
|
||||
fi
|
||||
repo-add -q ${work_dir}/core-pkgs/core.db.tar.gz ${work_dir}/core-pkgs/${_pkg_name}
|
||||
if [[ ${_pkg_name} =~ any.pkg ]]; then
|
||||
mv "${_dst}" ${work_dir}/core-any-pkgs/${_pkg_name}
|
||||
ln -sf ../any/${_pkg_name} ${work_dir}/core-pkgs/${_pkg_name}
|
||||
fi
|
||||
done
|
||||
: > ${work_dir}/build.${FUNCNAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Process aitab
|
||||
# args: $1 (core | netinstall)
|
||||
make_aitab() {
|
||||
local _iso_type=${1}
|
||||
if [[ ! -e ${work_dir}/build.${FUNCNAME}_${_iso_type} ]]; then
|
||||
sed "s|%ARCH%|${arch}|g" aitab.${_iso_type} > ${work_dir}/iso/${install_dir}/aitab
|
||||
: > ${work_dir}/build.${FUNCNAME}_${_iso_type}
|
||||
fi
|
||||
}
|
||||
|
||||
# Build all filesystem images specified in aitab (.fs .fs.sfs .sfs)
|
||||
make_prepare() {
|
||||
mkarchiso ${verbose} -D "${install_dir}" prepare "${work_dir}"
|
||||
}
|
||||
|
||||
# Build ISO
|
||||
# args: $1 (core | netinstall)
|
||||
make_iso() {
|
||||
local _iso_type=${1}
|
||||
mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}" "${name}-${version}-${_iso_type}-${arch}.iso"
|
||||
}
|
||||
|
||||
# Build dual-iso images from ${work_dir}/i686/iso and ${work_dir}/x86_64/iso
|
||||
# args: $1 (core | netinstall)
|
||||
make_dual() {
|
||||
local _iso_type=${1}
|
||||
if [[ ! -e ${work_dir}/dual/build.${FUNCNAME}_${_iso_type} ]]; then
|
||||
if [[ ! -d ${work_dir}/i686/iso || ! -d ${work_dir}/x86_64/iso ]]; then
|
||||
echo "ERROR: i686 or x86_64 builds does not exist."
|
||||
_usage 1
|
||||
fi
|
||||
local _src_one _src_two _cfg
|
||||
if [[ ${arch} == "i686" ]]; then
|
||||
_src_one=${work_dir}/i686/iso
|
||||
_src_two=${work_dir}/x86_64/iso
|
||||
else
|
||||
_src_one=${work_dir}/x86_64/iso
|
||||
_src_two=${work_dir}/i686/iso
|
||||
fi
|
||||
mkdir -p ${work_dir}/dual/iso
|
||||
cp -a -l -f ${_src_one} ${work_dir}/dual
|
||||
cp -a -l -n ${_src_two} ${work_dir}/dual
|
||||
rm -f ${work_dir}/dual/iso/${install_dir}/aitab
|
||||
rm -f ${work_dir}/dual/iso/${install_dir}/boot/syslinux/syslinux.cfg
|
||||
if [[ ${_iso_type} == "core" ]]; then
|
||||
if [[ ! -e ${work_dir}/dual/iso/${install_dir}/any/core-any-pkgs.sfs ||
|
||||
! -e ${work_dir}/dual/iso/${install_dir}/i686/core-pkgs.sfs ||
|
||||
! -e ${work_dir}/dual/iso/${install_dir}/x86_64/core-pkgs.sfs ]]; then
|
||||
echo "ERROR: core_iso_single build is not found."
|
||||
_usage 1
|
||||
fi
|
||||
else
|
||||
rm -f ${work_dir}/dual/iso/${install_dir}/any/core-any-pkgs.sfs
|
||||
rm -f ${work_dir}/dual/iso/${install_dir}/i686/core-pkgs.sfs
|
||||
rm -f ${work_dir}/dual/iso/${install_dir}/x86_64/core-pkgs.sfs
|
||||
fi
|
||||
paste -d"\n" <(sed "s|%ARCH%|i686|g" aitab.${_iso_type}) \
|
||||
<(sed "s|%ARCH%|x86_64|g" aitab.${_iso_type}) | uniq > ${work_dir}/dual/iso/${install_dir}/aitab
|
||||
for _cfg in syslinux.dual/*.cfg; do
|
||||
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
|
||||
s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/dual/iso/${install_dir}/boot/syslinux/${_cfg##*/}
|
||||
done
|
||||
mkarchiso ${verbose} -D "${install_dir}" -L "${iso_label}" iso "${work_dir}/dual" "${name}-${version}-${_iso_type}-dual.iso"
|
||||
: > ${work_dir}/dual/build.${FUNCNAME}_${_iso_type}
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
_usage ()
|
||||
{
|
||||
echo "usage ${0##*/} net_iso_single | core_iso_single | all_iso_single | clean_single"
|
||||
echo " net_iso_dual | core_iso_dual | all_iso_dual | clean_dual"
|
||||
echo
|
||||
exit ${1}
|
||||
}
|
||||
|
||||
if [[ ${EUID} -ne 0 ]]; then
|
||||
echo "This script must be run as root."
|
||||
_usage 1
|
||||
fi
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "No command specified"
|
||||
_usage 1
|
||||
fi
|
||||
command_name="${1}"
|
||||
|
||||
if [[ ${verbose} == "y" ]]; then
|
||||
verbose="-v"
|
||||
else
|
||||
verbose=""
|
||||
fi
|
||||
|
||||
if [[ ${command_name} =~ single ]]; then
|
||||
work_dir=${work_dir}/${arch}
|
||||
fi
|
||||
|
||||
make_common_single() {
|
||||
make_basefs
|
||||
make_packages
|
||||
make_customize_root_image
|
||||
make_boot
|
||||
make_syslinux
|
||||
make_isolinux
|
||||
make_lib_modules
|
||||
make_usr_share
|
||||
make_aitab $1
|
||||
make_prepare $1
|
||||
make_iso $1
|
||||
}
|
||||
|
||||
case "${command_name}" in
|
||||
net_iso_single)
|
||||
make_common_single netinstall
|
||||
;;
|
||||
core_iso_single)
|
||||
make_core_repo
|
||||
make_common_single core
|
||||
;;
|
||||
all_iso_single)
|
||||
make_common_single netinstall
|
||||
make_core_repo
|
||||
make_common_single core
|
||||
;;
|
||||
net_iso_dual)
|
||||
make_dual netinstall
|
||||
;;
|
||||
core_iso_dual)
|
||||
make_dual core
|
||||
;;
|
||||
all_iso_dual)
|
||||
make_dual netinstall
|
||||
make_dual core
|
||||
;;
|
||||
clean_single)
|
||||
rm -rf ${work_dir}
|
||||
rm -f ${name}-${version}-*-${arch}.iso
|
||||
;;
|
||||
clean_dual)
|
||||
rm -rf ${work_dir}/dual
|
||||
rm -f ${name}-${version}-*-dual.iso
|
||||
;;
|
||||
*)
|
||||
echo "Invalid command name '${command_name}'"
|
||||
_usage 1
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,4 @@
|
|||
gcc-ada
|
||||
gcc-fortran
|
||||
gcc-go
|
||||
gcc-objc
|
|
@ -0,0 +1,4 @@
|
|||
gcc-ada
|
||||
gcc-fortran
|
||||
gcc-go
|
||||
gcc-objc
|
|
@ -0,0 +1,5 @@
|
|||
DEFAULT loadconfig
|
||||
|
||||
LABEL loadconfig
|
||||
CONFIG /%INSTALL_DIR%/boot/syslinux/syslinux.cfg
|
||||
APPEND /%INSTALL_DIR%/boot/syslinux/
|
|
@ -0,0 +1,2 @@
|
|||
HOOKS="base udev memdisk archiso archiso_pxe_nbd archiso_loop_mnt pata scsi sata usb fw pcmcia filesystems usbinput"
|
||||
COMPRESSION="xz"
|
|
@ -0,0 +1,38 @@
|
|||
aif
|
||||
b43-fwcutter
|
||||
btrfs-progs-unstable
|
||||
crda
|
||||
curl
|
||||
ddrescue
|
||||
dhclient
|
||||
dialog
|
||||
dmraid
|
||||
dnsutils
|
||||
dosfstools
|
||||
elinks
|
||||
gnu-netcat
|
||||
hdparm
|
||||
inetutils
|
||||
ipw2100-fw
|
||||
ipw2200-fw
|
||||
lftp
|
||||
lilo
|
||||
nbd
|
||||
netcfg
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
nmap
|
||||
ntfs-3g
|
||||
ntfsprogs
|
||||
ntp
|
||||
openssh
|
||||
openvpn
|
||||
parted
|
||||
pptpclient
|
||||
rsync
|
||||
speedtouch
|
||||
tcpdump
|
||||
tiacx-firmware
|
||||
wireless_tools
|
||||
wpa_actiond
|
||||
zd1211-firmware
|
|
@ -0,0 +1,38 @@
|
|||
aif
|
||||
b43-fwcutter
|
||||
btrfs-progs-unstable
|
||||
crda
|
||||
curl
|
||||
ddrescue
|
||||
dhclient
|
||||
dialog
|
||||
dmraid
|
||||
dnsutils
|
||||
dosfstools
|
||||
elinks
|
||||
gnu-netcat
|
||||
hdparm
|
||||
inetutils
|
||||
ipw2100-fw
|
||||
ipw2200-fw
|
||||
lftp
|
||||
lilo
|
||||
nbd
|
||||
netcfg
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
nmap
|
||||
ntfs-3g
|
||||
ntfsprogs
|
||||
ntp
|
||||
openssh
|
||||
openvpn
|
||||
parted
|
||||
pptpclient
|
||||
rsync
|
||||
speedtouch
|
||||
tcpdump
|
||||
tiacx-firmware
|
||||
wireless_tools
|
||||
wpa_actiond
|
||||
zd1211-firmware
|
|
@ -0,0 +1 @@
|
|||
aif-report-issues.sh
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
aif -p interactive -d -l
|
|
@ -0,0 +1 @@
|
|||
Arch Linux Live ISO
|
|
@ -0,0 +1,20 @@
|
|||
# vim: set ft=sh:
|
||||
|
||||
# kernel_cmdline <param> <default>
|
||||
# Looks for a parameter on the kernel's boot-time command line.
|
||||
#
|
||||
# returns: 0 if param was found. Also prints its value if it was a K=V param.
|
||||
# 1 if it was not. Also prints value passed as <default>
|
||||
#
|
||||
kernel_cmdline ()
|
||||
{
|
||||
for param in $(/bin/cat /proc/cmdline); do
|
||||
case "${param}" in
|
||||
$1=*) echo "${param##*=}"; return 0 ;;
|
||||
$1) return 0 ;;
|
||||
*) continue ;;
|
||||
esac
|
||||
done
|
||||
[ -n "${2}" ] && echo "${2}"
|
||||
return 1
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
#
|
||||
# /etc/fstab: static file system information
|
||||
#
|
||||
# <file system> <dir> <type> <options> <dump> <pass>
|
||||
/dev/mapper/root-image / auto defaults 0 0
|
|
@ -0,0 +1,9 @@
|
|||
#
|
||||
# /etc/hosts: static lookup table for host names
|
||||
#
|
||||
|
||||
#<ip-address> <hostname.domain.org> <hostname>
|
||||
127.0.0.1 localhost.localdomain localhost archiso
|
||||
::1 localhost.localdomain localhost archiso
|
||||
|
||||
# End of file
|
|
@ -0,0 +1,48 @@
|
|||
#
|
||||
# /etc/inittab
|
||||
#
|
||||
|
||||
# Runlevels:
|
||||
# 0 Halt
|
||||
# 1(S) Single-user
|
||||
# 2 Not used
|
||||
# 3 Multi-user
|
||||
# 4 Not used
|
||||
# 5 X11
|
||||
# 6 Reboot
|
||||
|
||||
## Only one of the following two lines can be uncommented!
|
||||
# Boot to console
|
||||
id:3:initdefault:
|
||||
# Boot to X11
|
||||
#id:5:initdefault:
|
||||
|
||||
rc::sysinit:/etc/rc.sysinit
|
||||
rs:S1:wait:/etc/rc.single
|
||||
rm:2345:wait:/etc/rc.multi
|
||||
rh:06:wait:/etc/rc.shutdown
|
||||
su:S:wait:/sbin/sulogin -p
|
||||
|
||||
# -8 options fixes umlauts problem on login
|
||||
c1:2345:respawn:/sbin/agetty -8 -s -n -l /usr/bin/autologin 38400 tty1 linux
|
||||
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
|
||||
c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
|
||||
c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
|
||||
c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
|
||||
c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux
|
||||
|
||||
# Serial Virtual Console for KVM and others VMs
|
||||
#s0:2345:respawn:/sbin/agetty -8 -s 9600 ttyS0 linux
|
||||
|
||||
# Hypervisor Virtual Console for Xen and KVM
|
||||
#h0:2345:respawn:/sbin/agetty -8 -s 38400 hvc0 linux
|
||||
|
||||
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
|
||||
|
||||
# Example lines for starting a login manager
|
||||
x:5:respawn:/usr/bin/xdm -nodaemon
|
||||
#x:5:respawn:/usr/sbin/gdm -nodaemon
|
||||
#x:5:respawn:/usr/bin/kdm -nodaemon
|
||||
#x:5:respawn:/usr/bin/slim >/dev/null 2>&1
|
||||
|
||||
# End of file
|
|
@ -0,0 +1,5 @@
|
|||
[H[2J
|
||||
Arch Linux Live ISO (\l)
|
||||
\s-\r \m.
|
||||
Default logins "root" and "arch" have no password.
|
||||
To begin installation, login as root.
|
|
@ -0,0 +1,16 @@
|
|||
**************************************************************
|
||||
* To begin installation, run /arch/setup *
|
||||
* You can find documentation at *
|
||||
* /usr/share/aif/docs/official_installation_guide_en *
|
||||
* *
|
||||
* i18n: Use the 'km' utility to change your keyboard layout *
|
||||
* and console font. *
|
||||
* *
|
||||
* If you encounter issues and want to report them or *
|
||||
* seek help, run /arch/report-issues *
|
||||
* *
|
||||
* If you are looking to install Arch on something more *
|
||||
* exotic, such as your kerosene-powered cheese grater, *
|
||||
* please consult http://wiki.archlinux.org. *
|
||||
* *
|
||||
**************************************************************
|
|
@ -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
|
|
@ -0,0 +1,35 @@
|
|||
#
|
||||
# /etc/rc.conf - Main Configuration for Arch Linux
|
||||
|
||||
. /etc/archiso/functions
|
||||
|
||||
LOCALE_DEFAULT="en_US.UTF-8"
|
||||
DAEMON_LOCALE_DEFAULT="no"
|
||||
CLOCK_DEFAULT="UTC"
|
||||
TIMEZONE_DEFAULT="Canada/Pacific"
|
||||
KEYMAP_DEFAULT="us"
|
||||
CONSOLEFONT_DEFAULT=
|
||||
CONSOLEMAP_DEFAULT=
|
||||
USECOLOR_DEFAULT="yes"
|
||||
VERBOSE_DEFAULT="3"
|
||||
|
||||
LOCALE="$(kernel_cmdline locale ${LOCALE_DEFAULT})"
|
||||
DAEMON_LOCALE="$(kernel_cmdline daemon_locale ${DAEMON_LOCALE_DEFAULT})"
|
||||
HARDWARECLOCK="$(kernel_cmdline clock ${CLOCK_DEFAULT})"
|
||||
TIMEZONE="$(kernel_cmdline timezone ${TIMEZONE_DEFAULT})"
|
||||
KEYMAP="$(kernel_cmdline keymap ${KEYMAP_DEFAULT})"
|
||||
CONSOLEFONT="$(kernel_cmdline consolefont ${CONSOLEFONT_DEFAULT})"
|
||||
CONSOLEMAP="$(kernel_cmdline consolemap ${CONSOLEMAP_DEFAULT})"
|
||||
USECOLOR="$(kernel_cmdline usecolor ${USECOLOR_DEFAULT})"
|
||||
VERBOSE="$(kernel_cmdline verbose ${VERBOSE_DEFAULT})"
|
||||
|
||||
MODULES=()
|
||||
|
||||
UDEV_TIMEOUT=30
|
||||
USEDMRAID="no"
|
||||
USEBTRFS="no"
|
||||
USELVM="no"
|
||||
|
||||
HOSTNAME="archiso"
|
||||
|
||||
DAEMONS=(hwclock syslog-ng archiso)
|
|
@ -0,0 +1,48 @@
|
|||
# vim: set ft=sh:
|
||||
. /etc/rc.conf
|
||||
. /etc/rc.d/functions
|
||||
|
||||
do_makeuser ()
|
||||
{
|
||||
stat_busy "Making the default user arch"
|
||||
addgroups="audio,disk,optical,wheel"
|
||||
useradd -m -p "" -g users -G $addgroups arch
|
||||
stat_done
|
||||
}
|
||||
|
||||
do_locale_gen ()
|
||||
{
|
||||
stat_busy "Generating locales..."
|
||||
sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen
|
||||
/usr/sbin/locale-gen > /dev/null
|
||||
stat_done
|
||||
}
|
||||
|
||||
# If an alternate console was specified on the kernel command line,
|
||||
# start agetty on it too.
|
||||
do_special_console()
|
||||
{
|
||||
cmdline_console="$(kernel_cmdline console)"
|
||||
[ $? -ne 0 ] && return
|
||||
|
||||
dev="${cmdline_console%%,*}"
|
||||
args="${cmdline_console##*,}"
|
||||
baud="${args%%[neo]*}" && baud="${baud:-"9600"}"
|
||||
[ "x${args}" != "x${args%%r}" ] && rts="-h"
|
||||
|
||||
|
||||
stat_busy "Starting agetty on console: ${cmdline_console}"
|
||||
echo "${dev}" >> /etc/securetty
|
||||
echo "z0:2345:respawn:/sbin/agetty ${rts} ${baud} ${dev} linux" >> /etc/inittab
|
||||
/sbin/telinit q
|
||||
stat_done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
do_locale_gen
|
||||
do_makeuser
|
||||
do_special_console
|
||||
;;
|
||||
esac
|
||||
exit 0
|
|
@ -0,0 +1,25 @@
|
|||
. /etc/archiso/functions
|
||||
|
||||
automated_script ()
|
||||
{
|
||||
script="$(kernel_cmdline script)"
|
||||
if [[ -n "$script" ]]; then
|
||||
stat_busy "Configuring $script"
|
||||
if [[ "$script" =~ ^http:// || "$script" =~ ^ftp:// ]]; then
|
||||
wget "$script" -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
|
||||
echo -e '\nif [ $(tty) = "/dev/tty1" ]; then\n /tmp/startup_script\nfi\n' >> /root/.bash_profile
|
||||
stat_done
|
||||
else
|
||||
stat_fail
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
add_hook multi_end automated_script
|
|
@ -0,0 +1 @@
|
|||
%wheel ALL=(ALL) NOPASSWD: ALL
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
/bin/login -f root
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
aif -p partial-keymap
|
|
@ -0,0 +1,12 @@
|
|||
DEFAULT choose
|
||||
PROMPT 0
|
||||
|
||||
LABEL choose
|
||||
KERNEL ifcpu64.c32
|
||||
APPEND have64 -- nohave64
|
||||
|
||||
LABEL have64
|
||||
CONFIG syslinux_both.cfg
|
||||
|
||||
LABEL nohave64
|
||||
CONFIG syslinux_32only.cfg
|
|
@ -0,0 +1,3 @@
|
|||
INCLUDE syslinux_head.cfg
|
||||
INCLUDE syslinux_arch32.cfg
|
||||
INCLUDE syslinux_tail.cfg
|
|
@ -0,0 +1,11 @@
|
|||
LABEL arch32
|
||||
TEXT HELP
|
||||
Boot the Arch Linux (i686) live medium. It allows you to install Arch Linux or
|
||||
perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL Boot Arch Linux (i686)
|
||||
LINUX /%INSTALL_DIR%/boot/i686/vmlinuz26
|
||||
INITRD /%INSTALL_DIR%/boot/i686/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
|
||||
# Next line should be uncommented when prepare enviroment to boot from PXE.
|
||||
#IPAPPEND 3
|
|
@ -0,0 +1,11 @@
|
|||
LABEL arch64
|
||||
TEXT HELP
|
||||
Boot the Arch Linux (x86_64) live medium. It allows you to install Arch Linux or
|
||||
perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL Boot Arch Linux (x86_64)
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz26
|
||||
INITRD /%INSTALL_DIR%/boot/x86_64/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
|
||||
# Next line should be uncommented when prepare enviroment to boot from PXE.
|
||||
#IPAPPEND 3
|
|
@ -0,0 +1,4 @@
|
|||
INCLUDE syslinux_head.cfg
|
||||
INCLUDE syslinux_arch32.cfg
|
||||
INCLUDE syslinux_arch64.cfg
|
||||
INCLUDE syslinux_tail.cfg
|
|
@ -0,0 +1,27 @@
|
|||
DEFAULT vesamenu.c32
|
||||
PROMPT 0
|
||||
MENU TITLE Arch Linux
|
||||
MENU BACKGROUND splash.png
|
||||
TIMEOUT 3000
|
||||
|
||||
MENU WIDTH 78
|
||||
MENU MARGIN 4
|
||||
MENU ROWS 7
|
||||
MENU VSHIFT 10
|
||||
MENU TIMEOUTROW 13
|
||||
MENU TABMSGROW 11
|
||||
MENU CMDLINEROW 11
|
||||
MENU HELPMSGROW 16
|
||||
MENU HELPMSGENDROW 29
|
||||
|
||||
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
|
||||
|
||||
MENU COLOR border 30;44 #40ffffff #a0000000 std
|
||||
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
|
||||
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
|
||||
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
|
||||
MENU COLOR help 37;40 #c0ffffff #a0000000 std
|
||||
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
|
||||
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
|
||||
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
|
||||
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
|
|
@ -0,0 +1,29 @@
|
|||
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 chain.c32
|
||||
APPEND hd0 0
|
||||
|
||||
# http://www.memtest.org/
|
||||
LABEL memtest
|
||||
MENU LABEL Run Memtest86+ (RAM test)
|
||||
LINUX /%INSTALL_DIR%/boot/memtest
|
||||
|
||||
# http://hdt-project.org/
|
||||
LABEL hdt
|
||||
MENU LABEL Hardware Information (HDT)
|
||||
COM32 hdt.c32
|
||||
APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
|
||||
|
||||
LABEL reboot
|
||||
MENU LABEL Reboot
|
||||
COM32 reboot.c32
|
||||
|
||||
LABEL poweroff
|
||||
MENU LABEL Power Off
|
||||
COMBOOT poweroff.com
|
||||
|
||||
ONTIMEOUT arch32
|
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
|
@ -0,0 +1,70 @@
|
|||
SERIAL 0 38400
|
||||
DEFAULT vesamenu.c32
|
||||
PROMPT 0
|
||||
MENU TITLE Arch Linux
|
||||
MENU BACKGROUND splash.png
|
||||
TIMEOUT 3000
|
||||
|
||||
MENU WIDTH 78
|
||||
MENU MARGIN 4
|
||||
MENU ROWS 6
|
||||
MENU VSHIFT 10
|
||||
MENU TIMEOUTROW 13
|
||||
MENU TABMSGROW 11
|
||||
MENU CMDLINEROW 11
|
||||
MENU HELPMSGROW 16
|
||||
MENU HELPMSGENDROW 29
|
||||
|
||||
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
|
||||
|
||||
MENU COLOR border 30;44 #40ffffff #a0000000 std
|
||||
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
|
||||
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
|
||||
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
|
||||
MENU COLOR help 37;40 #c0ffffff #a0000000 std
|
||||
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
|
||||
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
|
||||
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
|
||||
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
|
||||
|
||||
LABEL arch
|
||||
TEXT HELP
|
||||
Boot the Arch Linux live medium. It allows you to install Arch Linux or
|
||||
perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL Boot Arch Linux
|
||||
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz26
|
||||
INITRD /%INSTALL_DIR%/boot/%ARCH%/archiso.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
|
||||
# Next line should be uncommented when prepare enviroment to boot from PXE.
|
||||
#IPAPPEND 3
|
||||
|
||||
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 chain.c32
|
||||
APPEND hd0 0
|
||||
|
||||
# http://www.memtest.org/
|
||||
LABEL memtest
|
||||
MENU LABEL Run Memtest86+ (RAM test)
|
||||
LINUX /%INSTALL_DIR%/boot/memtest
|
||||
|
||||
# http://hdt-project.org/
|
||||
LABEL hdt
|
||||
MENU LABEL Hardware Information (HDT)
|
||||
COM32 hdt.c32
|
||||
APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
|
||||
|
||||
LABEL reboot
|
||||
MENU LABEL Reboot
|
||||
COM32 reboot.c32
|
||||
|
||||
LABEL poweroff
|
||||
MENU LABEL Power Off
|
||||
COMBOOT poweroff.com
|
||||
|
||||
ONTIMEOUT arch
|
Loading…
Reference in New Issue