1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 | # 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
|