Compare commits

..

4 commits

40 changed files with 1133 additions and 1 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
temp
temp.sh
test
Scripts-*

View file

@ -0,0 +1,3 @@
#
# /etc/bash.bash_logout
#

24
factory/etc/bash.bashrc Normal file
View file

@ -0,0 +1,24 @@
#
# /etc/bash.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
[[ $DISPLAY ]] && shopt -s checkwinsize
PS1='[\u@\h \W]\$ '
case ${TERM} in
Eterm*|alacritty*|aterm*|foot*|gnome*|konsole*|kterm*|putty*|rxvt*|tmux*|xterm*)
PROMPT_COMMAND+=('printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"')
;;
screen*)
PROMPT_COMMAND+=('printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"')
;;
esac
if [[ -r /usr/share/bash-completion/bash_completion ]]; then
. /usr/share/bash-completion/bash_completion
fi

View file

@ -0,0 +1,44 @@
667 B
# Default values for useradd(8)
#
# The SHELL variable specifies the default login shell on your
# system.
SHELL=/bin/bash
# The default group for users
GROUP=users
# The default home directory.
HOME=/home
# The number of days after a password expires until the account is permanently
# disabled
INACTIVE=-1
# The default expire date
EXPIRE=
# The SKEL variable specifies the directory containing "skeletal" user files;
# in other words, files such as a sample .profile that will be copied to the
# new user's home directory when it is created.
SKEL=/etc/skel
# Defines whether the mail spool should be created while
# creating the account
CREATE_MAIL_SPOOL=no

11
factory/etc/gai.conf Normal file
View file

@ -0,0 +1,11 @@
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
###########################
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20
precedence ::ffff:0:0/96 10

View file

@ -0,0 +1,6 @@
#
# subpath mappings from mount point for pinning
#
#3 tracing
#4 foo/bar
#5 tc/cls1

View file

@ -0,0 +1,8 @@
# lookup table for ematch kinds
1 cmp
2 nbyte
3 u32
4 meta
7 canid
8 ipset
9 ipt

View file

@ -0,0 +1,2 @@
# device group names
0 default

View file

@ -0,0 +1,23 @@
# Netlink protocol names mapping
0 rtnl
1 unused
2 usersock
3 fw
4 tcpdiag
5 nflog
6 xfrm
7 selinux
8 iscsi
9 audit
10 fiblookup
11 connector
12 nft
13 ip6fw
14 dec-rt
15 uevent
16 genl
18 scsi-trans
19 ecryptfs
20 rdma
21 crypto

View file

@ -0,0 +1,26 @@
# Differentiated field values
# These include the DSCP and unused bits
0x0 default
# Newer RFC2597 values
0x28 AF11
0x30 AF12
0x38 AF13
0x48 AF21
0x50 AF22
0x58 AF23
0x68 AF31
0x70 AF32
0x78 AF33
0x88 AF41
0x90 AF42
0x98 AF43
# Older values RFC2474
0x20 CS1
0x40 CS2
0x60 CS3
0x80 CS4
0xA0 CS5
0xC0 CS6
0xE0 CS7
# RFC 2598
0xB8 EF

View file

@ -0,0 +1,25 @@
#
# Reserved protocols.
#
0 unspec
1 redirect
2 kernel
3 boot
4 static
8 gated
9 ra
10 mrt
11 zebra
12 bird
13 dnrouted
14 xorp
15 ntk
16 dhcp
18 keepalived
42 babel
99 openr
186 bgp
187 isis
188 ospf
189 rip
192 eigrp

View file

@ -0,0 +1,13 @@
#
# reserved values
#
0 cosmos
#
# local
#
#1 inr.ac
#2 inr.ruhep
#3 freenet
#4 radio-msu
#5 russia
#6 internet

View file

@ -0,0 +1,11 @@
#
# reserved values
#
0 global
255 nowhere
254 host
253 link
#
# pseudo-reserved
#
200 site

View file

@ -0,0 +1,11 @@
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep

View file

@ -0,0 +1 @@
/usr/lib32

1
factory/etc/locale.gen Normal file
View file

@ -0,0 +1 @@
# aus installation kopieren

159
factory/etc/makepkg.conf Normal file
View file

@ -0,0 +1,159 @@
#!/hint/bash
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'fossil::fossil'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
LTOFLAGS="-flto=auto"
#RUSTFLAGS="-C opt-level=2"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
#DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -z -q -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'
#########################################################################
# OTHER
#########################################################################
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()

98
factory/etc/pacman.conf Normal file
View file

@ -0,0 +1,98 @@
#
# /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 -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5
ILoveCandy
# 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.
#[core-testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[multilib]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

9
factory/etc/pam.d/other Normal file
View file

@ -0,0 +1,9 @@
#%PAM-1.0
auth required pam_deny.so
auth required pam_warn.so
account required pam_deny.so
account required pam_warn.so
password required pam_deny.so
password required pam_warn.so
session required pam_deny.so
session required pam_warn.so

View file

@ -0,0 +1,27 @@
#%PAM-1.0
auth required pam_faillock.so preauth
# Optionally use requisite above if you do not want to prompt for the password
# on locked accounts.
-auth [success=2 default=ignore] pam_systemd_home.so
auth [success=1 default=bad] pam_unix.so try_first_pass nullok
auth [default=die] pam_faillock.so authfail
auth optional pam_permit.so
auth required pam_env.so
auth required pam_faillock.so authsucc
# If you drop the above call to pam_faillock.so the lock will be done also
# on non-consecutive authentication failures.
-account [success=1 default=ignore] pam_systemd_home.so
account required pam_unix.so
account optional pam_permit.so
account required pam_time.so
-password [success=1 default=ignore] pam_systemd_home.so
password required pam_unix.so try_first_pass nullok shadow sha512
password optional pam_permit.so
-session optional pam_systemd_home.so
session required pam_limits.so
session required pam_unix.so
session optional pam_permit.so

View file

@ -0,0 +1,6 @@
#%PAM-1.0
auth include system-login
account include system-login
password include system-login
session include system-login

View file

@ -0,0 +1,19 @@
#%PAM-1.0
auth required pam_shells.so
auth requisite pam_nologin.so
auth include system-auth
account required pam_access.so
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_loginuid.so
session optional pam_keyinit.so force revoke
session include system-auth
session optional pam_motd.so
session optional pam_mail.so dir=/var/spool/mail standard quiet
-session optional pam_systemd.so
session required pam_env.so

View file

@ -0,0 +1,6 @@
#%PAM-1.0
auth include system-login
account include system-login
password include system-login
session include system-login

View file

@ -0,0 +1,11 @@
#%PAM-1.0
auth sufficient pam_permit.so
account include system-auth
session optional pam_loginuid.so
session required pam_limits.so
session required pam_unix.so
session optional pam_permit.so
session required pam_env.so

View file

@ -0,0 +1,11 @@
alias gawkpath_default 'unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`'
alias gawkpath_prepend 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "\!*"":$AWKPATH"'
alias gawkpath_append 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "$AWKPATH"":\!*"'
alias gawklibpath_default 'unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`'
alias gawklibpath_prepend 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "\!*"":$AWKLIBPATH"'
alias gawklibpath_append 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "$AWKLIBPATH"":\!*"'

View file

@ -0,0 +1,31 @@
gawkpath_default () {
unset AWKPATH
export AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
}
gawkpath_prepend () {
[ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
export AWKPATH="$*:$AWKPATH"
}
gawkpath_append () {
[ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
export AWKPATH="$AWKPATH:$*"
}
gawklibpath_default () {
unset AWKLIBPATH
export AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
}
gawklibpath_prepend () {
[ -z "$AWKLIBPATH" ] && \
AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
export AWKLIBPATH="$*:$AWKLIBPATH"
}
gawklibpath_append () {
[ -z "$AWKLIBPATH" ] && \
AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
export AWKLIBPATH="$AWKLIBPATH:$*"
}

View file

@ -0,0 +1,3 @@
#
# ~/.bash_logout
#

View file

@ -0,0 +1,5 @@
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc

10
factory/etc/skel/.bashrc Normal file
View file

@ -0,0 +1,10 @@
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '

1
factory/etc/xattr.conf Normal file
View file

@ -0,0 +1 @@
#aus installation kopieren

156
install.uefi Normal file
View file

@ -0,0 +1,156 @@
#!/bin/bash
####################
# Einfache Version #
####################
# processor manufacturer: amd
MICROCODE="amd-ucode"
# kernel: linux
KERNEL="linux"
# hostname: arch
HOSTNAME_NEW="arch"
# rootpassword: testen
ROOTPASSWORD="testen"
# username: eichehome
USERNAME="eichehome"
# userpassword: testen
USERPASSWORD="testen"
# graphics card: amd
GRAPHICS_CARD="amd"
# timezone: Europe/Berlin
TIMEZONE="Europe/Berlin"
# language: de_DE.UTF-8
LANG="de_DE.UTF-8"
# Drive: /dev/vda
DRIVE="/dev/vda"
# disklayout: ESP (512MiB), Root (100% - 512MiB)
###########################
#Discoverable Partitions Specification
sgdisk -og "${DRIVE}"
sgdisk -n 0:0:+512M -t 0:C12A7328-F81F-11D2-BA4B-00A0C93EC93B -c 0:efi "${DRIVE}"
#sgdisk -n 0:0:+512M -t 0:ef00 -c 0:ESP "${DRIVE}"
sgdisk -n 0:0:0 -t 0:4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 -c 0:root "${DRIVE}"
mkfs.vfat -n EFI -F 32 /dev/vda1
mkfs.ext4 -L root /dev/vda2
mount /dev/vda2 /mnt
mkdir -p /mnt/efi
mount /dev/vda1 /mnt/efi
#ln -sf /run/systemd/resolve/stub-resolv.conf /mnt/etc/resolv.conf # tmpfiles.d macht das
pacstrap /mnt base linux-firmware vim git "${KERNEL}" "${MICROCODE}" #dracut
arch-chroot /mnt
# ln -sf "/usr/share/zoneinfo/${TIMEZONE}" /etc/localtime -> L /etc/localtime - - - - "/usr/share/zoneinfo/${TIMEZONE}"
ln -sf "/usr/share/zoneinfo/${TIMEZONE}" /etc/localtime
sed -i 's/#\(Color\)/\1/' /etc/pacman.conf
# Umbruch notwendug
sed -i 's/#\(ParallelDownloads\s=\s5\)/\1\
ILoveCandy/' /etc/pacman.conf
sed -i "s/#\(${LANG}\)/\1/" /etc/locale.gen
locale-gen
echo "LANG=${LANG}" > /etc/locale.conf
echo "KEYMAP=${KEYMAP}" > /etc/vconsole.conf
echo "${HOSTNAME_NEW}" > /etc/hostname
cat > /etc/hosts << EOF
127.0.0.1 localhost
::1 localhost
127.0.1.1 ${HOSTNAME_NEW}.localedomain ${HOSTNAME_NEW}
EOF
#echo "127.0.0.1 localhost" > /etc/hosts
#echo "::1 localhost" >> /etc/hosts
#echo "127.0.1.1 ${HOSTNAME_NEW}.localedomain ${HOSTNAME_NEW}" >> /etc/hosts
echo root:"${ROOTPASSWORD}" | chpasswd
pacman -S base-devel "${KERNEL}-header"
pacman -S opendoas firewalld iptables-nft openssh bash-completion man-db man-pages reflector xdg-user-dirs
#pacman -S iwd dialog reflector xdg-user-dirs xdg-utils inetutils ldns bash-completion openssh rsync iptables-nft ipset firewalld lynx man-db man-pages texinfo opendoas pacman-contrib rebuild-detector
pacman -S efibootmgr mtools dosfstools
if [[ ${GRAPHICS_CARD} == "amd"]]; then
pacman -S xf86-video-amdgpu
elif [[ ${GRAPHICS_CARD} == "nvidia"]]; then
pacman -S nvidia nvidia-utils nvidia-settings
fi
# GNOME installieren
pacman -S gnome gnome-extras gdm avahi bluez bluez-utils pipewire pipewire-audio pipewire-alsa pipewire-pulse pipewire-jack pipewire-zeroconf pipewire-v4l2 pipewire-docs pipewire-roc helvum wireplumber gstreamer gst-plugin-pipewire gst-libav gst-plugins-good gst-plugins-base xdg-desktop-portal-gnome networkmanager modemmanager networkmanager-openconnect networkmanager-openvpn networkmanager-pptp networkmanager-vpnc power-profiles-daemon plymouth libreoffice-fresh-de
#################################################################
sed -i 's/#\(CHARACTER_SET:\).*/\1utf-8/' /etc/lynx.cfg
cat > /etc/xdg/reflector/reflector.conf << EOF
--save /etc/pacman.d/mirrorlist
--country Germany
--protocol https
--latest 5
EOF
cat > /etc/doas.conf << EOF
permit :wheel
permit persist eichehome as root
EOF
#echo "permit :wheel" > /etc/doas.conf
#echo "permit persist eichehome as root" >> /etc/doas.conf
#echo "" >> /etc/doas.conf
doas -C /etc/doas.conf && echo "config ok" || echo "config error"
sleep 1
cat > /etc/systemd/resolved.conf.d/disable-multicastDNS.conf << EOF
[Resolve]
MulticastDNS=no
EOF
systemctl enable systemd-resolved
systemctl enable systemd-timesyncd
systemctl enable reflector.timer
systemctl enable firewalld
systemctl enable fstrim.timer
systemctl enable gdm
systemctl enable avahi-daemon
systemctl enable bluetooth
if [[ ${GRAPHICS_CARD} == "amd" ]]; then
sed -i 's/MODULES=()/MODULES=(amdgpu)/' /etc/mkinitcpio.conf #AMD
elif [[ ${GRAPHICS_CARD} == "intel" ]]; then
sed -i 's/MODULES=()/MODULES=(i915)/' /etc/mkinitcpio.conf #Intel
elif [[ ${GRAPHICS_CARD} == "nvidia" ]]; then
sed -i 's/MODULES=()/MODULES=(nvidia)/' /etc/mkinitcpio.conf #Nvidia
fi
sed -i 's/^HOOKS=(.*)/HOOKS=(base systemd keyboard plymouth autodetect sd-vconsole modconf kms block filesystems fsck)/' /etc/mkinitcpio.conf
mkinitcpio -p "${KERNEL}"
bootctl install
cat > /efi/loader/loader.conf << EOF
timeout 5
console-mode max
editor yes
default *
EOF
cat > /efi/loader/entries/arch.conf << EOF
title Arch Linux
version 0.1
linux /vmlinuz-${KERNEL}
initrd /${MICROCODE}.img
initrd /initramfs-${KERNEL}.img
options quiet rw
EOF
useradd -mG wheel "${USERNAME}"
echo "${USERNAME}:${USERPASSWORD}" | chpasswd
exit(0)

327
script/archinstall.uefi Executable file
View file

@ -0,0 +1,327 @@
#!/bin/bash
# Archinstaller - UEFI
# Revision: 2023.07.03 -- by eichehome
# (GNU/General Public License version 3.0)
# ----------------------------------------
# Define Variables
# ----------------------------------------
MYTMZ="Europe/Berlin"
LCLST="de_DE"
# Format is language_COUNTRY where language is lower case two letter code
# and country is upper case two letter code, seperated with an underscore
KEYMP="de-latin1-nodeadkeys"
# ----------------------------------------
# Define Functions:
# ----------------------------------------
handlerr () {
clear
set -uo pipefail
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
clear
}
invalid () {
echo -e "\n"
echo "Invalid answer, Please try again"
sleep 2
}
welcome () {
clear
echo "====================================================="
echo "= ="
echo "= Welcome to the Archinstaller Script ="
echo "= ="
echo "= UEFI Edition ="
echo "= Revision: 2023.07.03 ="
echo "= ="
echo "= Brought to you by eichehome ="
echo "= https://git.sp-codes.de/eichehome/archinstall ="
echo "= ="
echo -e "===================================================== \n"
sleep 4
}
targetdrive () {
clear
echo -e "Check to see th available drives: \n"
/bin/lsblk
echo -e "\n"
read -p "Type your target device (e.g. sda), be exact and press Enter: " TARGETDDRIVE
[[ -z "$TARGETDDRIVE" ]] && targetdrive
clear
echo -e "\n"
echo "Target device set to "${TARGETDDRIVE}"..."
sleep 2
clear
}
makepartitions () {
clear
dd bs=512 if=/dev/zero of/dev/"${TARGETDDRIVE}" count=8192
dd bs=512 if=/dev/zero of/dev/"${TARGETDDRIVE}" count=8192 seek$((`blockdev getsz /dev/"${TARGETDDRIVE}"` - 8192))
sgdisk -og /dev/"${TARGETDDRIVE}" #Clear Patition Data and create GPT-Label
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TARGETDDRIVE}" # EFI System Partition
sgdisk -n 0:0:0 -t 0:8303 -c 0:root /dev/"${TARGETDDRIVE}" # Rest der
}
liveconf () {
clear
timedatectl set-ntp true
}
instStd () {
clear
echo "Installiere Standartpakete"
sleep 2
}
instLXC () {
clear
echo "Installiere LXC"
sleep 2
}
instVirt () {
clear
echo "Installiere Virtmanager"
sleep 2
}
instPodman () {
clear
echo "Installiere Podman"
sleep 2
}
instWeb () {
clear
echo "Installiere Webserver"
sleep 2
}
instKubern () {
clear
echo "Installiere Kubernetes"
sleep 2
}
server () { while true
do
clear
echo "---------------------------------"
echo " Server"
echo "---------------------------------"
echo ""
echo " 1) Standart (SSH-Server & Co)"
echo " 2) LXC"
echo " 3) Virtualisierung"
echo " 4) Podman"
echo " 5) Web"
echo " 6) Kubernetes"
echo ""
echo " X) Exit"
echo -e "\n"
read -p "Please enter your choise: " choise2
case $choise2 in
1 ) instStd;;
2 ) instLXC;;
3 ) instVirt;;
4 ) instPodman;;
5 ) instWeb;;
6 ) instKubern;;
x|X ) exit;;
* ) invalid;;
esac
done
}
instSound () {
clear
echo "Installiere Soundsystem"
sleep 2
}
instMultimedia () {
clear
echo "Installiere Mutimedia Software"
sleep 2
}
instDevel () {
clear
echo "Installiere Developmentumgebung"
sleep 2
}
instFonts () {
clear
echo "Installiere Fonts"
sleep 2
}
instMisc () {
clear
echo "Installiere Verschiedenes"
sleep 2
}
pakete () { while true
do
clear
echo "---------------------------------"
echo " Pakete"
echo "---------------------------------"
echo ""
echo " 1) Sound"
echo " 2) Multimedia"
echo " 3) Development"
echo " 4) Fonts"
echo " 5) Misc"
echo ""
echo " X) Back"
echo -e "\n"
read -p "Please enter your choise: " choise4
case $choise4 in
1 ) instSound;;
2 ) instMultimedia;;
3 ) instDevel;;
4 ) instFonts;;
5 ) instMisc;;
x|X ) client;;
* ) invalid;;
esac
done
}
instGNOME () {
clear
echo "Installiere GNOME"
sleep 2
}
instKDE () {
clear
echo "Installiere KDE"
sleep 2
}
instSway () {
clear
echo "Installiere Sway"
sleep 2
}
instWayfire () {
clear
echo "Installiere Wayfire"
sleep 2
}
desktops () { while true
do
clear
echo "---------------------------------"
echo " Desktops"
echo "---------------------------------"
echo ""
echo " 1) GNOME"
echo " 2) KDE"
echo " 3) Sway"
echo " 4) Wayfire"
echo ""
echo " X) Back"
echo -e "\n"
read -p "Please enter your choise: " choise4
case $choise4 in
1 ) instGNOME;;
2 ) instKDE;;
3 ) instSway;;
4 ) instWayfire;;
x|X ) client;;
* ) invalid;;
esac
done
}
client () { while true
do
clear
echo "---------------------------------"
echo " Client"
echo "---------------------------------"
echo ""
echo " 1) Pakete"
echo " 2) Desktops"
echo ""
echo " X) Exit"
echo -e "\n"
read -p "Please enter your choise: " choise3
case $choise3 in
1 ) pakete;;
2 ) desktops;;
x|X ) exit;;
* ) invalid;;
esac
done
}
configClient () {
clear
echo "Installiere Grundkonfiguration Client"
sleep 2
client
}
configServer () {
clear
echo "Installiere Grundkonfiguration Server"
sleep 2
server
}
ROOTUSER () {
if [[ "$EUID" = 0 ]]; then
continue
else
echo "Please run as Root"
sleep 2
exit
fi
}
start () { while true
do
clear
echo "---------------------------------"
echo " Archinstaller - UEFI Systems"
echo "---------------------------------"
echo ""
echo " 1) Server"
echo " 2) Client"
echo ""
echo " X) Exit"
echo -e "\n"
read -p "Enter your choise: " choise1
case $choise1 in
1 ) configServer;;
2 ) configClient;;
x|X ) exit;;
* ) invalid;;
esac
done
}
ROOTUSER
handlerr
welcome
#liveconf
start

2
tmpfiles.d/attr.conf Normal file
View file

@ -0,0 +1,2 @@
#Type Path Mode UID GID Age Argument
C /etc/xattr.conf - - - -

7
tmpfiles.d/bash.conf Normal file
View file

@ -0,0 +1,7 @@
#Type Path Mode UID GID Age Argument
C /etc/bash.bashrc 644 - - -
C /etc/bash.bash_logout 644 - - -
d /etc/skel 755 - - -
C /etc/skel/.bashrc 644 - - -
C /etc/skel/.bash_profile 644 - - -
C /etc/skel/.bash_logout 644 - - -

6
tmpfiles.d/gawk.conf Normal file
View file

@ -0,0 +1,6 @@
#Type Path Mode UID GID Age Argument
d /etc/profile.d 755 - - -
#f /etc/profile.d/gawk.csh 644 - - -
C /etc/profile.d/gawk.csh 644 - - -
#f /etc/profile.d/gawk.sh 644 - - -
C /etc/profile.d/gawk.sh 644 - - -

5
tmpfiles.d/glibc.conf Normal file
View file

@ -0,0 +1,5 @@
#Type Path Mode UID GID Age Argument
C /etc/locale.gen - - - - #header + aus /usr/share/i18n/SUPPORTED lesen
#getaddrinfo configuration file man:gai.conf(5)
C /etc/gai.conf - - - -
C /etc/ld.so.conf.d/lib32-glibc.conf

11
tmpfiles.d/iproute2.conf Normal file
View file

@ -0,0 +1,11 @@
#Type Path Mode UID GID Age Argument
C /etc/iproute2/bpf_pinning - - - -
C /etc/iproute2/ematch_map - - - -
C /etc/iproute2/group - - - -
C /etc/iproute2/nl_protos - - - -
C /etc/iproute2/rt_dsfield - - - -
C /etc/iproute2/rt_protos - - - -
C /etc/iproute2/rt_realms - - - -
C /etc/iproute2/rt_scopes - - - -
C /etc/iproute2/rt_tables - - - -
d /var/lib/arpd

3
tmpfiles.d/pacman.conf Normal file
View file

@ -0,0 +1,3 @@
#Type Path Mode UID GID Age Argument
C /etc/pacman.conf - - - -
C /etc/makepkg.conf - - - -

7
tmpfiles.d/pambase.conf Normal file
View file

@ -0,0 +1,7 @@
#Type Path Mode UID GID Age Argument
C /etc/pam.d/other - - - -
C /etc/pam.d/system-auth - - - -
C /etc/pam.d/system-local-login - - - -
C /etc/pam.d/system-login - - - -
C /etc/pam.d/system-remote-login - - - -
C /etc/pam.d/system-services - - - -

2
tmpfiles.d/shadow.conf Normal file
View file

@ -0,0 +1,2 @@
#Type Path Mode UID GID Age Argument
C /etc/default/useradd - - - -