# Notwendige Programme installieren pacman -S dosfstools squashfs-tools archiso # Grundsystem in Arbeitsordner work installieren mkarchiso -v init # Gewünschte Programme installieren mkarchiso -v -p "PROGRAMM1 PROGRAMM2 PROGRAMM3" install # Ins Arbeitssystem wechseln mkarchiso -v -r "bash" run # gewünschte Konfigurationsänderungen vornehmen # Livesession-User anlegen, praktischer Weise für diesen auch Autostarteintrag anlegen # ggfs. die sudoers für den Liveuser anpassen # Zeitzone festlegen ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime # hostname festlegen echo HOSTNAME > /etc/hostname # locale festlegen echo 'LANG="de_DE.UTF-8"' > /etc/locale.conf echo 'de_DE.UTF-8 UTF-8' >> /etc/locale.gen locale-gen # Keymap der virtuellen Konsole festlegen echo KEYMAP=de-latin1 > /etc/vconsole.conf # per systemd zu startende Dienste festlegen (Beispiele haveged, NetworkManger, Displaymanager) ln -s '/usr/lib/systemd/system/haveged.service' '/etc/systemd/system/multi-user.target.wants/haveged.service' ln -s '/usr/lib/systemd/system/NetworkManager.service' '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service' ln -s '/usr/lib/systemd/system/NetworkManager.service' '/etc/systemd/system/multi-user.target.wants/NetworkManager.service' ln -s '/usr/lib/systemd/system/lxdm.service' '/etc/systemd/system/display-manager.service' # Arbeitssystem verlassen exit # Hooks und initcpio vorbereiten (im Beispiel für ein x86_64-System) cp /usr/lib/initcpio/hooks/archiso work/root-image/usr/lib/initcpio/hooks cp /usr/lib/initcpio/install/archiso work/root-image/usr/lib/initcpio/install echo 'HOOKS="base udev archiso modconf block filesystems keyboard"' > work/root-image/etc/mkinitcpio-archiso.conf echo 'COMPRESSION="xz"' >> work/root-image/etc/mkinitcpio-archiso.conf mkdir work/root-image/boot/x86_64 # Kernelimage bauen mkarchiso -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/x86_64/archiso.img" run # Zum Booten notwendige Dateien ins passende Verzeichnis schieben mkdir -p work/iso/arch/boot/x86_64 mv work/root-image/boot/vmlinuz-linux work/iso/arch/boot/x86_64/vmlinuz mv work/root-image/boot/x86_64/archiso.img work/iso/arch/boot/x86_64/archiso.img # Verzeichnis für den Bootloader anlegen mkdir -p work/iso/arch/boot/syslinux # Konfigurationsdatei anlegen nano work/iso/arch/boot/syslinux/syslinux.cfg # Inhalt einfügen, nach eigenen Wünschen anpassen DEFAULT menu.c32 PROMPT 0 MENU TITLE GEWÜNSCHTER_NAME TIMEOUT 300 LABEL arch MENU LABEL GEWÜNSCHTER_NAME LINUX /arch/boot/x86_64/vmlinuz INITRD /arch/boot/x86_64/archiso.img APPEND archisolabel=GEWÜNSCHTER_NAME ONTIMEOUT arch # von Isolinux benötigte Daten kopieren cp work/root-image/usr/lib/syslinux/menu.c32 work/iso/arch/boot/syslinux/ mkdir work/iso/isolinux cp work/root-image/usr/lib/syslinux/isolinux.bin work/iso/isolinux/ cp work/root-image/usr/lib/syslinux/isohdpfx.bin work/iso/isolinux/ # Isolinux-Konfigurationsdatei anlegen nano work/iso/isolinux/isolinux.cfg # Inhalt einfügen DEFAULT loadconfig LABEL loadconfig CONFIG /arch/boot/syslinux/syslinux.cfg APPEND /arch/boot/syslinux/ # aitab anlegen echo 'root-image / x86_64 xz ext4 50%' > work/iso/arch/aitab # Kernelmodul loop laden modprobe loop # Image zur Erstellung vorbereiten mkarchiso -v prepare # ISO bauen mkarchiso -v -L "GEWÜNSCHTER_NAME" iso "GEWÜNSCHTER_NAME.iso" # Ergebnis liegt im Ordner out, Beispiele so erstellter ISOs unter http://arglinux.tomtomtom.org/ # auf USB-Stick bringen dd if=out/NAME_DES_ISOS.iso of=/dev/sdX