archboot/usr/lib/initcpio/install/arch_base

237 lines
11 KiB
Text
Raw Normal View History

2012-05-26 11:50:43 +02:00
#!/bin/bash
2007-02-22 23:46:50 +01:00
# Created by Tobias Powalowski <tpowa@archlinux.org>
build ()
2007-02-22 23:46:50 +01:00
{
### setting up base structure
add_dir "/mnt"
add_dir "/media"
add_dir "/install"
2007-02-22 23:46:50 +01:00
add_dir "/var/log"
add_dir "/addons"
add_dir "/home"
2012-06-24 10:04:54 +02:00
add_symlink /var/run ../run
2012-06-24 10:18:32 +02:00
add_symlink /var/lock ../run/lock
2012-06-18 14:36:34 +02:00
apps="/usr/bin/getent /sbin/agetty /bin/mount /bin/umount /usr/bin/basename /usr/bin/du /usr/bin/clear \
2012-08-24 16:27:39 +02:00
/usr/bin/env /usr/bin/head /usr/bin/id /usr/bin/md5sum /usr/bin/nano /usr/bin/printf /usr/bin/tail \
2012-09-10 19:01:45 +02:00
/usr/bin/tee /usr/bin/test /usr/bin/tr /usr/bin/tty /usr/bin/uptime /usr/bin/w /usr/bin/who /usr/bin/wc \
/usr/bin/which /usr/bin/whoami /usr/bin/xargs /usr/bin/yes /sbin/killall5 \
/bin/bash /sbin/swapon /usr/bin/uniq /usr/bin/cut /usr/bin/seq /usr/bin/snarf \
/usr/bin/find /usr/bin/sort /sbin/fdisk /sbin/sfdisk /sbin/cfdisk /usr/sbin/parted /usr/sbin/partprobe \
/usr/bin/gawk /bin/cp /bin/mv /usr/bin/free /bin/ls /bin/rm /bin/sed /usr/bin/less /bin/chgrp \
/bin/chmod /bin/chown /bin/date /bin/df /usr/bin/dialog /bin/dmesg /usr/bin/egrep /usr/bin/fgrep /usr/bin/grep \
/bin/kill /usr/bin/killall /bin/more /bin/ps /bin/pwd /bin/rmdir /bin/stty \
2012-09-11 12:57:34 +02:00
/bin/sync /bin/tar /usr/bin/bsdtar /usr/bin/bsdcpio /usr/bin/touch /bin/uname /sbin/hdparm \
2012-09-10 19:01:45 +02:00
/bin/true /usr/bin/mktemp /usr/bin/chroot /usr/bin/dirname /usr/bin/expr /usr/bin/bzip2 /sbin/hwclock \
/bin/su /bin/cat /bin/cpio /bin/dd /usr/bin/gzip /usr/bin/wget /usr/bin/top /usr/bin/sdparm /usr/bin/tput \
/sbin/ifconfig /bin/ln /sbin/losetup /bin/mkdir /usr/bin/mkfifo /bin/mknod /usr/bin/readlink /bin/echo \
/usr/bin/dir /usr/bin/lzmadec /usr/bin/xz /usr/bin/last /usr/bin/wall /usr/bin/mesg /usr/bin/utmpdump \
/usr/bin/xzdec /sbin/switch_root /bin/false /sbin/pivot_root /usr/bin/sleep /sbin/chcpu \
/sbin/ctrlaltdel /sbin/raw /usr/bin/gdisk /usr/bin/sgdisk /usr/bin/cgdisk /usr/bin/fixparts /bin/findmnt \
/bin/lsblk /sbin/swaplabel /usr/bin/cal /usr/bin/chrt /usr/bin/col /usr/bin/colcrt /usr/bin/colrm \
/usr/bin/column /usr/bin/cytune /usr/bin/fallocate /usr/bin/flock /usr/bin/getopt /usr/bin/hexdump \
2013-01-21 16:17:52 +01:00
/usr/bin/ionice /usr/bin/ipcmk /usr/bin/ipcrm /usr/bin/ipcs /usr/bin/isosize /sbin/swapoff \
2012-09-10 19:01:45 +02:00
/usr/bin/logger /usr/bin/look /usr/bin/lscpu /usr/bin/mcookie /usr/bin/namei /usr/bin/pg \
/usr/bin/prlimit /usr/bin/rename /usr/bin/renice /usr/bin/rev /usr/bin/script /usr/bin/scriptreplay \
/usr/bin/setarch /usr/bin/setsid /usr/bin/setterm /usr/bin/tailf /usr/bin/taskset /usr/bin/ul /usr/bin/unshare \
/usr/bin/uuidgen /usr/bin/whereis /usr/bin/write /usr/sbin/addpart /usr/sbin/delpart /usr/sbin/fdformat \
/usr/sbin/ldattach /usr/sbin/partx /usr/sbin/readprofile /usr/sbin/rtcwake /usr/sbin/tunelp /usr/sbin/uuidd \
/sbin/sysctl /usr/bin/pgrep /usr/bin/pkill /usr/bin/pmap /usr/bin/pwdx /usr/bin/slabtop /usr/bin/tload \
/usr/bin/vmstat /usr/bin/watch /usr/bin/file /usr/bin/eject /bin/keyctl /sbin/request-key \
/usr/bin/kmod /bin/zsh /usr/bin/hostname /usr/bin/tac /sbin/sulogin /sbin/bootlogd \
/usr/sbin/resizepart /usr/bin/lslocks /bin/wdctl /sbin/fstab-decode /usr/bin/zless /usr/bin/zgrep /usr/bin/fold"
2012-05-27 22:28:05 +02:00
for i in $apps; do
add_binary "$i"
done
2012-08-24 16:27:39 +02:00
appfiles="/usr/lib/libkmod.so /usr/bin/gunzip /usr/bin/zcat"
2012-05-27 22:28:05 +02:00
for i in $appfiles; do
add_file "$i"
done
2012-08-31 09:55:03 +02:00
symlinks="/sbin/depmod /bin/pidof /usr/bin/awk /sbin/halt /sbin/telinit /sbin/shutdown /sbin/runlevel /sbin/reboot \
2012-08-24 17:25:44 +02:00
/sbin/poweroff /sbin/init /usr/bin/insmod /usr/bin/i386 /usr/bin/linux32 /usr/bin/linux64 \
2012-08-24 16:27:39 +02:00
/usr/bin/lsmod /usr/bin/lzcat /usr/bin/lzcmp /usr/bin/lzdiff /usr/bin/lzegrep /usr/bin/lzfgrep \
/usr/bin/lzgrep /usr/bin/lzegrep /usr/bin/lzfgrep /usr/bin/lzgrep /usr/bin/lzless /usr/bin/lzmore \
2012-09-05 15:44:31 +02:00
/usr/bin/lzma /usr/bin/modinfo /sbin/modprobe /usr/bin/nc /usr/bin/reset /usr/bin/rmmod \
2012-08-31 10:00:03 +02:00
/usr/bin/unlzma /usr/bin/unxz /usr/bin/xzcat /usr/bin/lastb"
2012-08-24 16:27:39 +02:00
for i in $symlinks; do
add_binary "$(which $(basename $(readlink "$i")))"
add_symlink "$i" "$(which $(basename $(readlink "$i")))"
done
### add zsh
add_full_dir "/etc/zsh"
add_full_dir "/usr/share/zsh"
add_full_dir "/usr/lib/zsh"
2012-10-08 10:38:58 +02:00
### add en_US.utf8 locale
add_file "/usr/lib/locale/locale-archive"
### adding needed files from running system
2011-11-24 09:14:23 +01:00
add_symlink "/etc/mtab" "/proc/self/mounts"
2007-02-22 23:46:50 +01:00
add_file "/usr/share/terminfo/l/linux"
2009-05-24 15:47:17 +02:00
add_file "/usr/share/archboot/base/init" "/init"
2012-03-27 16:56:00 +02:00
add_file "/usr/lib/initcpio/init_functions" "/init_functions"
add_full_dir "/etc/profile.d"
systemfiles="bash.bashrc bash.bash_logout crypttab fstab host.conf hosts inputrc mke2fs.conf \
nanorc nsswitch.conf protocols request-key.conf resolv.conf securetty \
2012-09-11 12:57:34 +02:00
services sysctl.conf"
for i in $systemfiles; do
add_file "/etc/$i"
done
2009-05-24 15:47:17 +02:00
2007-02-22 23:46:50 +01:00
### adding config files of installation system
2011-02-04 21:04:11 +01:00
for i in $(find /usr/share/archboot/base/etc/* ! -type d); do
2011-02-16 14:37:20 +01:00
add_file "$i" "$(echo $i | sed -e 's#/usr/share/archboot/base##g')"
2007-02-22 23:46:50 +01:00
done
2009-05-24 15:47:17 +02:00
2012-01-09 13:54:09 +01:00
### add kmod related config file(s)
2012-04-04 11:30:21 +02:00
add_file "/usr/lib/depmod.d/search.conf"
2012-01-09 13:54:09 +01:00
2007-02-22 23:46:50 +01:00
### fixing network support
add_file "/lib/libnss_files.so.2"
add_file "/lib/libnss_dns.so.2"
2009-05-24 15:47:17 +02:00
### add copy-mountpoint.sh
add_file "/usr/bin/copy-mountpoint.sh"
2009-05-24 15:47:17 +02:00
2012-09-10 19:01:45 +02:00
### add pam
add_binary "/sbin/pam_tally"
add_binary "/sbin/unix_chkpwd"
add_full_dir "/etc/security"
add_full_dir "/etc/default"
add_full_dir "/etc/pam.d"
add_file "/etc/environment"
add_full_dir "/usr/lib/security"
#fix cracklib support!
add_file /usr/lib/libcrack.so.2
### add shadow
apps="/bin/groups /bin/login /sbin/nologin /usr/bin/chage /usr/bin/chfn /usr/bin/chsh \
/usr/bin/expiry /usr/bin/faillog /usr/bin/gpasswd /usr/bin/lastlog /usr/bin/passwd \
/usr/sbin/chgpasswd /usr/sbin/chpasswd /usr/sbin/groupadd /usr/sbin/groupdel /usr/sbin/groupmems \
2013-01-21 16:17:52 +01:00
/usr/sbin/groupmod /usr/sbin/grpck /usr/sbin/grpconv /usr/sbin/grpunconv \
2012-09-10 19:01:45 +02:00
/usr/sbin/newusers /usr/sbin/pwck /usr/sbin/pwconv /usr/sbin/pwunconv /usr/sbin/useradd \
/usr/sbin/userdel /usr/sbin/usermod /usr/bin/sg"
for i in $apps; do
add_binary "$i"
done
symlinks="/usr/sbin/vigr"
for i in $symlinks; do
add_binary "$(which $(basename $(readlink "$i")))"
add_symlink "$i" "$(which $(basename $(readlink "$i")))"
done
add_file "/etc/login.defs"
### add systemd
2012-09-11 12:57:34 +02:00
# add systemd kernel modules
add_checked_modules 'nfs|autofs4|loop'
apps="/sbin/mount.nfs /usr/bin/setfont /usr/bin/loadkeys"
for i in $apps; do
add_binary "$i"
done
2013-01-21 16:17:52 +01:00
#dbus files
2012-09-10 19:01:45 +02:00
apps="/usr/bin/dbus-cleanup-sockets /usr/bin/dbus-daemon /usr/bin/dbus-monitor /usr/bin/dbus-send /usr/bin/dbus-uuidgen"
for i in $apps; do
add_binary "$i"
done
add_binary "/usr/lib/dbus-1.0/dbus-daemon-launch-helper"
add_dir "/var/lib/dbus"
add_full_dir "/etc/dbus-1"
add_dir "/etc/dbus-1/session.d"
add_dir "/etc/dbus-1/systemd.d"
add_full_dir "/usr/share/dbus-1"
#systemd files
apps="/usr/bin/systemd-ask-password /usr/bin/systemd-tmpfiles /usr/bin/systemd-tty-ask-password-agent \
/usr/bin/systemd-delta /usr/bin/systemd-detect-virt /bin/systemd /usr/bin/journalctl \
2012-09-10 22:09:52 +02:00
/usr/bin/loginctl /usr/bin/systemctl /usr/bin/systemd-analyze /usr/bin/systemd-cat \
/usr/bin/systemd-cgls /usr/bin/systemd-cgtop /usr/bin/systemd-inhibit /usr/bin/systemd-machine-id-setup \
/usr/bin/systemd-notify /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge"
2012-09-10 19:01:45 +02:00
for i in $apps; do
add_binary "$i"
done
add_symlink "/bin/systemd" "../lib/systemd/systemd"
add_dir "/etc/tmpfiles.d"
add_dir "/etc/modules-load.d"
add_dir "/etc/binfmt.d/"
add_dir "/etc/sysctl.d/"
add_file "/etc/os-release"
add_full_dir "/etc/systemd"
add_full_dir "/etc/xdg"
add_full_dir "/usr/lib/systemd"
add_full_dir "/usr/share/systemd"
add_full_dir "/usr/share/polkit-1"
add_full_dir "/usr/lib/tmpfiles.d"
add_full_dir "/usr/lib/modules-load.d"
for i in /usr/lib/libsystemd*; do
add_file "$i"
done
add_dir "/var/lib/systemd"
add_file "/usr/share/archboot/base/etc/locale.conf" "/etc/locale.conf"
add_file "/usr/share/archboot/base/etc/timezone.conf" "/etc/timezone.conf"
add_file "/usr/share/archboot/base/etc/vconsole.conf" "/etc/vconsole.conf"
add_file "/usr/share/archboot/base/etc/systemd/system/getty@.service" "/etc/systemd/system/getty@.service"
add_file "/usr/share/archboot/base/etc/systemd/system/serial-getty@.service" "/etc/systemd/system/serial-getty@.service"
add_file "/usr/share/archboot/base/etc/systemd/system/autovt@.service" "/etc/systemd/system/autovt@.service"
add_file "/usr/share/archboot/base/etc/systemd/system/getty.target.wants/getty@tty1.service" \
"/etc/systemd/system/getty.target.wants/getty@tty1.service"
2012-09-10 21:59:22 +02:00
### add udev
add_binary "/usr/bin/logger"
add_binary "/usr/bin/udevadm"
add_file "/etc/udev/udev.conf"
add_file "/usr/lib/modprobe.d/usb-load-ehci-first.conf"
add_symlink "/usr/bin/udevd" "../lib/systemd/systemd-udevd"
# add rule files
2012-09-13 08:44:13 +02:00
add_full_dir "/usr/lib/udev"
2012-09-10 21:59:22 +02:00
### add pacman
apps="/usr/bin/pacman /usr/bin/pacman-db-upgrade /usr/bin/pacman-key /usr/bin/pacsort \
/usr/bin/pactree /usr/bin/cleanupdelta /usr/bin/makepkg /usr/bin/pacman-optimize /usr/bin/pkgdelta \
/usr/bin/rankmirrors /usr/bin/repo-add /usr/bin/testdb \
/usr/bin/testpkg /usr/bin/vercmp /usr/bin/curl /usr/bin/gpg-agent /usr/sbin/haveged"
for i in $apps; do
add_binary "$i"
done
symlinks="/usr/bin/gpg /usr/bin/repo-elephant /usr/bin/repo-remove"
for i in $symlinks; do
add_binary "$(which $(basename $(readlink "$i")))"
add_symlink "$i" "$(which $(basename $(readlink "$i")))"
done
2012-09-12 17:58:27 +02:00
add_dir "/var/cache/pacman/pkg"
add_dir "/var/lib/pacman"
add_file "/usr/share/archboot/pacman/etc/pacman.conf" "/etc/pacman.conf"
[ "$(uname -m)" = "x86_64" ] && add_file "/usr/share/archboot/pacman/etc/makepkg.conf.x86_64" "/etc/makepkg.conf"
[ "$(uname -m)" = "i686" ] && add_file "/usr/share/archboot/pacman/etc/makepkg.conf.i686" "/etc/makepkg.conf"
add_file "/usr/share/archboot/pacman/etc/pacman.d/mirrorlist" "/etc/pacman.d/mirrorlist"
add_full_dir "/usr/share/pacman/keyrings"
2012-04-20 16:20:18 +02:00
### fix file
2013-02-01 14:50:26 +01:00
add_file "/usr/share/file/misc/magic.mgc"
2012-04-20 16:20:18 +02:00
2009-05-24 15:47:17 +02:00
### fix licenses
2012-04-20 16:20:18 +02:00
add_file "/usr/share/licenses/file/COPYING"
2009-05-08 08:05:45 +02:00
add_file "/usr/share/licenses/bzip2/LICENSE"
add_file "/usr/share/licenses/hdparm/LICENSE.TXT"
add_file "/usr/share/licenses/ncurses/license.txt"
add_file "/usr/share/licenses/pcre/LICENSE"
2011-07-25 22:17:37 +02:00
add_file "/usr/share/licenses/shadow/LICENSE"
2013-01-21 16:17:52 +01:00
add_file "/usr/share/licenses/sdparm/LICENSE"
2010-02-07 23:43:45 +01:00
add_file "/usr/share/licenses/zlib/LICENSE"
2010-07-25 21:53:03 +02:00
add_file "/usr/share/licenses/iana-etc/LICENSE"
2013-01-21 16:17:52 +01:00
add_file "/usr/share/licenses/dbus/COPYING"
2012-05-26 11:50:43 +02:00
add_runscript
2007-02-22 23:46:50 +01:00
}
help ()
{
cat <<HELPEOF
2012-01-09 13:54:09 +01:00
This hook sets up all initial directories and installs base, kmod,
pam, pacman, shadow, systemd, udev utilities and libraries
for a arch boot image.
2007-02-22 23:46:50 +01:00
DO NOT remove this one unless you know what you're doing.
HELPEOF
}