Arch Linux
PXE
If you already have a PXE server, create a new entry that boots their iPXE kernel:
cd /tftpboot/images/ArchLinux/ wget https://releng.archlinux.org/pxeboot/ipxe.lkrn
The default config (or the config your computer boots off of) should contain:
LABEL ArchLinux
MENU LABEL ArchLinux
kernel /images/ArchLinux/ipxe.lkrn
You can customize the kernel to automate installs.
Installation
The PXE rom that you can download from ArchLinux's website points iPXE to fetch PXE data from a remote HTTP server, http://releng.archlinux.org/pxeboot/boot/cfg/. The PXE configs will then boot the live image from one of the many available mirrors that is selected in the boot menu.
Remastering
Side Note: You may alter the iPXE script to use a different server by recompiling the iPXE kernel and automate the install process by appending to the airoot customize script.
pacman -S archiso cp -r /usr/share/archiso/configs/releng /root # edit relang/airootfs/root/custom* ./build.sh -v
mkarchiso -w work/x86_64 -C work/pacman.conf -D arch init arch-chroot work/x86_64/airootfs mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img mksquashfs work/airootfs.img work/iso/arch/x86_64/airootfs.sfs -noappend -comp xz -no-progress
Steps
After booting into the live image, you need to:
- Read the install.txt file
- Create a file system
- Mount the file system to /mnt
- Run
pacstrap /mnt/base - Generate fstab
genfstab -p /mnt >> /mnt/etc/fstab - Chroot into the new system
arch-chroot /mnt - Set the hostname
echo "hostname" >> /etc/hostname - Set the timezone
ln -sf /usr/share/zoneinfo/America/Edmonton /etc/localtime - Locales
- Comment out any locales you want in
/etc/locale.gen - Run
locale-gen
- Comment out any locales you want in
- Set the default locale
echo LANG=\"en_US.UTF-8\" > /etc/locale.conf - Set up networking configs ??
- Console font
/etc/vconsole.conf- echo KEYMAP=\"us\" > /etc/vconsole.conf
- echo FONT=\"latarcyrheb-sun16\" >> /etc/vconsole.conf
- Rebuild ram disk
mkinitcpio -p linux - Set the root password
passwd - Install a bootloader
- pacman -Sy grub
grub-install --target=i386-pc --recheck /dev/sdagrub-mkconfig -o /boot/grub/grub.cfg
Reboot and hope it works.
Networking
You may use systemd to configure the network
/etc/systemd/network
Create a file named wired.network with:
[Match]
Name=eno1
[Network]
DHCP=v4
You may need to get a list of all network interfaces using:
networkctl list | tail -n+2 | head -n+2 | grep -v loopback | awk '{print $2}'
Building Packages
Install the base-devel package group.
To build packages, create a PKGBUILD script. Run this as a non-root user.
makepkg -p buildscript.pkgbuild
'Converting' RPM to an ArchLinux package
Install the rpmextract package.
Use the spec to pkgbuild script to convert the RPM SPEC files to a packagebuild script.
Creating a repository
Creating a repository is very simple and comprises of making a directory which contains a database file with a bunch of packages.
- Create a new directory
- Copy all packages to the directory
- Run:
repo-add reponame.db.tar.gz *.xz
Use the URL to the directory as the repository location. Make sure that the reponame matches that of the database.
Package List
gnome-desktop nvidia-304xx-libgl
lightdm lightdm-gtk-greeter
qt
dmidecode
accountsservices
salt-zmq
Mirroring
rsync -rtlH --delete-after --exclude='*i686*' --delay-updates --copy-links --safe-links --max-delete=1000 --progress rsync://mirror.csclub.uwaterloo.ca/archlinux/community .