Alternative Installationsmethoden

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Installation alternatives and the translation is 74% complete.
Outdated translations are marked like this.
This article has some todo items:
  • Verify & validate these methods
  • A few more details and references would be helpful
  • Better wording


Diese Anleitung ist als Quelle für alternative Gentoo-Installationsmethoden gedacht, für jene mit speziellen Anforderungen, z.B. wenn keine CD-ROM verfügbar ist oder der Computer nicht von CDs booten kann.

Wenn die Standard-Installationsmethode Boote-von-der-CD nicht funktioniert (oder unmöglich zu benutzen ist, oder einfach nicht erwünscht ist), kann hier Hilfe gefunden werden. Diese Anleitung stellt eine Sammlung von alternativen Gentoo Linux-Installationsmethoden bereit für diejenigen welche sie benötigen. Oder diese dient, wenn bevorzugt, als Platz für schrullige Installationswege. Wenn es einen Installationsweg gibt, der als nützlich befunden wurde, oder der Leser einen amüsierenden Weg entwickelt hat Gentoo Linux zu installieren, bitte nicht zögern hier etwas zu schreiben, in diesem Artikel.

Installation von Non-Gentoo LiveCDs aus

Wichtig
Die Gentoo-Entwickler können keinen Support anbieten wenn etwas mit einer non-Gentoo LiveCD fehl schlägt, da es nicht möglich ist, jede Eigenart jeder LiveCD „da draußen“ zu dokumentieren oder ihre Probleme zu beheben. Nur die Gentoo LiveCDs sind offiziell unterstützt. Bitte die Gentoo Forums für Community-Hilfe bei Problemen mit alternativen Installationsmedien aufsuchen.

Benutzer können andere LiveCDs neben den von Gentoo bereitgestellten LiveCDs booten. Unabhängig davon stellen diese LiveCDs eine funktionierende Umgebung zum Benutzen während dem Kompilieren und Installieren von Gentoo. Die hier bereitgestellten Instruktionen sollten im Prinzip mit jeder anderen LiveCD funktionieren.

Es gibt zu viele LiveCDs um alle aufzulisten, aber eine Option ist Knoppix auszuprobieren. Es bietet einen kompletten graphischen Desktop, mit Büro-Applikationen, Web-Browsern und Spielen zur Beschäftigung. Knoppix ist nur für x86-Benutzer verfügbar, demnach wird den Anforderungen des Nutzers gemäß eine andere LiveCD oder Methode benötigt sein.

Warnung
Es sei gewarnt dass alles was während dem Warten auf die Installation des Gentoo-Systems im /home-Verzeichnis gespeichert wurde nicht mehr beim Neustarten in Gentoo verfügbar sein wird. Wichtige Dateien sind am besten auf der Festplatte oder einem anderen Computer zu sichern!

Von der LiveCD booten, dann ein Terminal öffnen und den Befehl su - ausführen damit das Passwort geändert werden kann. Dies erlaubt das Root-Passwort für die CD zu setzen. Der sshd-Daemon kann nun konfiguriert werden, sollte eine Remote-Anmeldung benötigt sein. Als nächstes muss der /mnt/gentoo-Mountpunkt erstellt werden.

root #mkdir /mnt/gentoo

Ab diesem Punkt kann die Standard-Installations-Dokumentation befolgt werden, unter Vorbereiten der Festplatte(n). Wenn nach dem Mounten des /proc-Dateisystems gefragt wird, stattdessen folgenden Befehl benutzen :

root #mount -o bind /proc /mnt/gentoo/proc

Beim Entpacken des stage tarball in Stage Tarball entpacken entpacken, stellen Sie sicher, dass Sie die folgenden tar Befehlsoptionen verwenden, um sicherzustellen, dass die richtigen Gruppen-IDs auf dem entpackten stage durchgesetzt werden:

root #tar --numeric-owner --xattrs -xvJpf stage3-*.tar.xz -C /mnt/gentoo

Wenn Ubuntu genutzt wird, ist zu beachten dass /dev/shm ein symbolischer Link zu /run/shm ist. Es muss bind-gemountet sein oder ein tmpfs-Mountpunkt muss an dieser Stelle (innerhalb des chroot-Pfades) gesetzt werden. Um diese Stelle zu bind-mounten, folgenden Befehl (vor dem Chrooten) benutzen :

Sobald es möglich ist in die entpackte Stage zu chrooten, siehe Installation des Gentoo Basissystems, muss eine andere chroot-Kommandosequenz benutzt werden. Dies ist dafür um sicherzustellen dass die Umgebungsvariablen richtig gesetzt sind.

Hinweis
Manche LiveCDs benutzen ein seltsames Environment-Setup, deshalb die env -i Option um es auf einen vernünftigen Zustand zu setzen.
root #chroot /mnt/gentoo /bin/env -i TERM=$TERM /bin/bash
root #env-update
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Zuletzt ist es wichtig zu wissen dass manche Portage FEATURES nicht mit der LiveCD funktionieren. Hingewiesen sei vor allem auf die userpriv und usersandbox Werte. Sollten Fehler auftauchen, kann die Deaktivierung mancher oder aller optionalen FEATURES die Lösung sein.

Festplattenlose Installation mittels PXE und dem Kernel/initrd/squashfs von der LiveCD

Diese Methode ist einfacher zu konfigurieren als PXE-Boot basierend auf iSCSI oder NFS. Mehrere Maschinen können von demselben Image-Set verteilt via TFTP booten und leicht darauf erweitert werden, über HTTP oder andere Protokolle zu funktionieren.

Eine Möglichkeit, TFTP und DHCP zu zentralisieren, ist die Verwendung eines Routers, der eine quelloffene Firmware wie LEDE, den Nachfolger von OpenWRT, unterstützt. Das Online-Bringen der Firmware kann jedoch recht aufwändig sein.

Manche anderen Distributionen, Fedora inklusive, vertreiben Images zum Erstellen von Live oder Installations-CDs. Bei Gentoo ist dies nicht der Fall. Stattdessen müssen Nutzer

root #emerge --ask --oneshot app-cdr/cdrtools
CODE Prepare Gentoo in tftproot
mkdir -p /tftpboot/gentoo/
cd /tftpboot/gentoo/
isoname=/tftpboot/ISO-IMAGES/install-amd64-minimal-20210725T170534Z.iso
isoinfo -R -i ${isoname} -X -find -path /boot/gentoo && mv boot/gentoo kernel && rmdir boot
isoinfo -R -i ${isoname} -X -find -path /image.squashfs
# combine initrd + squashfs
(isoinfo -R -i ${isoname} -x /boot/gentoo.igz; (echo image.squashfs | cpio -H newc -o)) > network.igz
rm image.squashfs
ls -lhF kernel network.igz

These instructions may be sufficient for more experienced users. See below for more directions, depending on the PXE flavor in use. There are different PXE boot-codes, but all of them require a kernel and eventually a ramdisk.

Please take a look at PXE page for details on the alternatives, then come back here.

TFTP

Dies wird in Verbindung mit einem DHCP-Server für die meisten PCs benötigt, die mit PXE-Boot ausgestattet sind. Beachten Sie jedoch, dass Sie iPXE zum Booten ohne TFTP- oder DHCP-Server verwenden können! Unter ipxe.org finden Sie Informationen über das Einbinden von Skripten, Chainloading und manuelles Booten. Es gibt immer noch Vorteile des TFTP-Boots, wie z.B. die Unterstützung einer großen Anzahl von Geräten, also lassen Sie uns TFTP bedienen!

Die net-ftp/tftp-hpa installieren, sicherstellen dass es den Pfad /tftproot bereitstellt und es starten.

Der TFTP-Bootdienst ist bereit, nun ist der nächste Schritt einen DHCP-Dienst zu konfigurieren.

DHCP

Einen DHCP-Server auf derselben Maschine aufzusetzen ist möglich - es ist nur sicherzustellen, dass die zu bootenden Maschinen mit ihr verbunden sind. Oder einfach die Konfiguration eines existierenden Routers anpassen.

Eine Beispielkonfiguration für einen OpenWRT DHCP-Dienst folgt:

DATEI /etc/config/dhcp
config boot linux                   
        option filename boot/grub/i386-pc/core.0
        option servername boot
        option serveraddress 84.246.161.86

Ab hier ändern sich die Anweisungen je nach PXE-Variante (z.B. GRUB, iPXE).

SYSLINUX

DATEI /tftproot/pxelinux.cfg/default
label gentoo install (squashfs/http)
  kernel gentoo/kernel
  initrd gentoo/network.igz
  append root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot net.ifnames=0

GRUB

DATEI /tftproot/boot/grub/grub.cfg
menuentry "gentoo install" {
    linux /gentoo/kernel root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot net.ifnames=0
    initrd /gentoo/network.igz

iPXE

DATEI /tftproot/gentoo.ipxe
#!ipxe                                                                    
menu PXE                                                 
item --gap LAN
item gentoo gentoo install (squashfs/http)
 
:gentoo
kernel kernel root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot net.ifnames=0 initrd=network.igz
initrd network.igz
boot

Disklose Installation mittels PXE Boot und NFS

Anforderungen

PXE (Preboot eXecution Environment) ist eine Methode um Computer über ein PXE-fähiges Netzwerkinterface zu booten (mit einem PXE-unterstützenden BIOS). Sollte das System ein Starten vom Netzwerkinterface oder BIOS nicht unterstützen, kann PXE auch als Bootmethode von Blockgeräten (wie CDs oder USB-Sticks) genutzt werden. In diesen Fällen kann eine minimale Boot-Umgebung eine PXE-unterstützende Netzwerkkarte nachahmen (siehe Etherboot/gPXE).

Server Grundsetup

Verzeichnisse erstellen : Das erste was zu tun ist, ist die Verzeichnisse zu erstellen wo das disklose System gespeichert wird. Das Verzeichnis /diskless erstellen welches ein Verzeichnis für jeden disklosen Klienten beheimatet. Für den Rest dieses Howto's wird der Klient an welchem gearbeitet wird, 'eta' genannt.

root #mkdir -p /diskless/eta

DHCP und TFTP-Setup : Der Klient erhält Boot-Informationen via DHCP und lädt alle benötigten Dateien mit TFTP runter.

Für dhcpd, einfach emerge dhcp (oder einen anderen DHCP-Server) ausführen. Es ist sicherzustellen dass das richtige Interface in /etc/conf.d/dhcpd ausgewählt und es richtig konfiguriert ist. Dann folgendes zu /etc/conf.d/dhcpd hinzufügen :

Hinweis
Dies stellt hier, pxegrub, eine statische IP-Adresse für den Klienten und den Pfad eines PXE-Boot-Images bereit. Die MAC-Adresse der Ethernet-Karte im Beispiel sollte durch die richtige MAC-Adresse ersetzt werden, ebenso das Verzeichnis wo die Klienten-Dateien gespeichert werden.
DATEI dhcpd.conf
option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}

Als nächstes das Interface in /etc/conf.d/net konfigurieren damit es nicht beim Booten geleert wird. Siehe /usr/share/doc/openrc-*/net.example.bz2 für mehr Informationen.

DATEI /etc/conf.d/netSicherstellen dass das Interface (hier eth0 als Beispiel) nicht beim Booten rekonfiguriert wird
config_eth0="noop"

Für TFTP, net-ftp/tftp-hpa emergen. In /etc/conf.d/in.tftpd das folgende einfügen :

DATEI in.tftpd
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

Emergen Sie GRUB:

root #emerge --ask sys-boot/grub

Sobald GRUB kompiliert ist, das Boot-Verzeichnis des disklosen Klienten erstellen :

root #grub2-mknetdir --net-directory=/diskless/eta

Der usrprüngliche Weg war das PXE-Image zum disklosen Klienten zu kopieren, aber dieser Pfad existiert nicht mehr.

root #mkdir /diskless/eta/boot
root #cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub

Dann seine grub.lst-Konfigurationsdatei editieren.

root #nano -w /diskless/eta/boot/grub.lst
DATEI grub.lst
default 0
timeout 30
  
title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta
  
# Für die nfsroot-Option ist die IP-Adresse diejenige des Servers und das Verzeichnis jenes wo die Dateien für den disklosen Klienten (auf dem Server) gespeichert sind.

NFS ist recht leicht zu konfigurieren. Das einzige was zu tun ist, ist eine Zeile zur /etc/exports-Konfigurationsdatei hinzuzufügen :

DATEI /etc/exports
/diskless/eta eta(rw,sync,no_root_squash)

Eine wichtige Sache die nun zu tun ist, ist die /etc/hosts-Datei zu modifizieren um sich den Anforderungen anzupassen.

DATEI /etc/hosts
127.0.0.1 localhost
192.168.1.10 eta.example.com eta
192.168.1.20 sigma.example.com sigma

Das System auf dem Server erstellen

Ein nächster Schritt ist den Server mit einer Gentoo Installations-CD zu rebooten (obwohl erfahrene Administratoren auch ohne sie fortfahren können sofern sie sich ausreichend gut in Gentoo Installationen auskennen). Danach ist der Standard-Installationsprozedur im Gentoo Handbuch zu folgen ABER mit dem folgenden Unterschied : wenn die Dateisysteme gemountet werden, den nächsten Schritt ausführen (wobei sdaX die Partition ist wo das /diskless-Verzeichnis erstellt wurde).

root #mount /dev/sdaX /mnt/gentoo

Andere Partitionen zu mounten wird nicht benötigt da alle Dateien im /diskless/eta-Verzeichnis liegen.

Dieses Beispiel nutzt einen stage3-Tarball. /proc in das Verzeichnis des disklosen Klienten mounten und in dieses chrooten um mit der Installation fortzufahren. Dann dem Installations-Handbuch bis zur Kernel-Konfiguration folgen.

Warnung
Vorsicht mit dem Extrahieren des Stage-Tarballs zu seinem Ziel, um nicht über eine existierende Installation zu extrahieren.
root #cd /mnt/gentoo/diskless/eta/
root #tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2
root #mount -t proc /proc /mnt/gentoo/diskless/eta/proc
root #cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
root #chroot /mnt/gentoo/diskless/eta/ /bin/bash
root #env-update
root #source /etc/profile

Beim make menuconfig der Kernelkonfiguration die folgenden Optionen mit den anderen im Installationshandbuch empfohlenen nicht vergessen.

KERNEL Necessary options for diskless installations
- The network card device support
(In the kernel, *not* as a module!)
  
-*- Networking support --->  
  Networking options --->
    [*] TCP/IP networking
    [*] IP: kernel level autoconfiguration
    [*] IP: DHCP support
    [*] IP: BOOTP support
  
File systems --->
  [*] Network File Systems --->
    <*> NFS file system support
    [*] Provide NFSv3 client support
    [*] Root file system on NFS

Den Kernel im gechrooteten / (nicht in /boot) den vorhergehend definierten pxegrub Einstellungen folgend, speichern. Als nächstes /etc/fstab des disklosen Klienten konfigurieren.

DATEI /etc/fstab
'"`UNIQ--pre-0000001B-QINU`"'

Um nun den Klienten daran zu hindern einen Dateisystemcheck auszuführen :

root #touch /fastboot
root #echo "touch /fastboot" >> /etc/conf.d/local.start

net-fs/nfs-utils installieren da der Klient sehr stark davon abhängen wird :

root #emerge --ask net-fs/nfs-utils

Keinen anderen Bootloader installieren da bereits einer vorhanden ist - pxegrub. Ohne weiteres die Installation abschließen und den Server neustarten. Die Services, welche zum Booten des neuen Klienten benötigt werden, starten : DHCP, TFTPD, und NFS.

root #service dhcp start
root #service in.tftpd start
root #service nfs start

Den neuen Klienten booten

Damit der neue Klient korrekt booten kann, muss das BIOS und die Netzwerkkarte als erste Bootmethode konfiguriert sein - vor der CD-ROM oder Diskette. Bei Fragen dazu die Hardware-Handbücher oder die Herstellerwebseite konsultieren. Die Netzwerkkarte sollte eine IP mittels DHCP erhalten und das GRUB PXE Abbild mittels TFTP herunterladen. Dann sollte ein nettes schwarz-weißes GRUB-Bootmenü erscheinen in welchem Benutzer den zu bootenden Kernel auswählen und die Return-Taste (Enter) drücken können. Wenn alles in Ordnung ist sollte der Kernel booten, das Wurzelverzeichnis mittels NFS einhängen und eine Login-Zeile anzeigen.

Gentoo von einer bestehenden Linux-Distribution installieren

Wichtig
The only fully guaranteed method for installing Gentoo is with the Minimal Install CD. That said, installing from another, recent, Linux environment will usually work just as well. Support will often still be forthcoming using this method, but be ready to revert to the Minimal Install CD, if needed. Of course, in case of issues with other distributions, users will be refered to other channels for help.

Anforderungen

Um Gentoo von einer existierenden Linux-Distribution zu installieren braucht sie das chroot-Kommando, und eine Kopie der Gentoo-Installation oder des ISOs, welche/s installiert werden soll. Eine Netzwerkverbindung ist höchst empfehlenswert da die Installation sonst nur mit den Dateien im Installationsmedium arbeiten kann. Übrigens, ein Tarball ist nur eine Datei die auf .tbz oder .tar.gz endet. Los geht's !

Übersicht

Zuerst Gentoo eine Partition durch Ändern der Größe einer bestehenden Linux-Partition zuweisen, die Partition einhängen, den Tarball auf die jene Partition entpacken, in das Pseudo-System chrooten und mit dem Bauen anfangen. Sobald der Bootstrap-Prozess fertig ist, einige Konfigurationen am System vornehmen damit es bootet, dann neustarten und Gentoo benutzen.

Wie für Gentoo Platz schaffen ?

Die Wurzelpartition ist das unter / eingehängte Dateisystem. Das erste Beispiel zeigt die Ausgabe von mount auf einem System. Das zweite Beispiel nutzt df (disk free) um zu sehen wie viel Platz vorhanden ist und wie die Größe davon geändert wird. Die Größe der Wurzelpartition zu ändern ist nicht erforderlich ! Alles andere das vom Partitionerer unterstützt wird, kann geändert werden, mehr dazu aber später.

root #mount
/dev/sdb2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
root #df -h
Dateisystem          Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sdb2            4.0G     1.9G  2.4G   82% /
none                  38M        0   38M    0% /dev/shm

Wie zu sehen ist, sind auf der Partition, die als / mit Namen /dev/sdb2 eingehängt ist, 2.4 GB frei. In diesem Fall wurde entschieden, die Größe zu ändern um 400 MB Platz frei zu lassen, um somit 2 GB für Gentoo zu allozieren. Nicht schlecht, es könnte einiges installiert haben. 1 GB wird dennoch als genug für die meisten Benutzer angenommen. Partitionieren wir dies nun !

Parted zur Größenänderung der Partition verwenden

sys-block/parted ist äußert nützlich für die Größenänderung von Partitionen. Es ist auf der Minimal-Installation-CD enthalten.

Hinweis
Es gibt andere Tools für das Ändern von Partitionsgrößen, aber eine ausführliche Beschreibung dieser liegt außerhalb des Rahmens dieser Anleitung.

Schauen Sie auf dieser Seite nach, welche Art von Dateisystem verkleinert werden soll und ob parted das kann. Wenn nicht, müssen vielleicht einige Partitionen zerstört werden, um Platz für Gentoo zu schaffen. Fahren Sie mit dem Herunterladen der Software fort und installieren Sie sie. Im nächsten Schritt tritt ein Problem auf: Die Linux-Root-Partition muss verkleinert werden, daher muss ein Bootmedium mit einem minimalen Linux-System gebootet werden, um die Größe von / zu ändern. Wenn die Partition ausgehängt werden kann, während sie noch unter Linux läuft, sind die folgenden Schritte nicht erforderlich. Installieren Sie einfach sys-block/parted und führen Sie es auf einer ausgewählten ausgehängten Partition aus, um die Größe zu ändern. Hier sehen Sie, wie es auf diesem System gemacht wurde.

Wichtig
Sicher gehen dass die für das Partitionieren erforderlichen Operationen von parted unterstützt werden !
Hinweis
Angemerkt sei, dass Linux ein Synonym für „Es gibt mehr als einen Weg es zu tun“ ist. Das Ziel ist es, parted auf einer nicht eingehängten Partition zu nutzen damit es seine Arbeit tun kann. Dieser Schritt könnte an sich nicht als zu tun erforderlich sein: Es könnte nur nötig sein, das Dateisystem auszuhängen um es in der Linux-Sitzung zu repartitionieren und parted darauf laufen zu lassen.

Es ist Zeit, neu zu starten und die Größe der Partition zu ändern. Tun Sie dies nur, nachdem Sie einen kurzen Blick in die parted-Dokumentation auf der GNU-Website geworfen haben. Die Größenänderung kann bei großen Festplatten lange dauern, seien Sie geduldig. Starten Sie das System mit der Minimal-Installation-CD neu. Starten Sie parted, um die Größe der Partition zu ändern. Sobald dieser langwierige Prozess abgeschlossen ist, fahren Sie mit der Installation von Gentoo fort. Starten Sie jetzt wieder das alte Linux-System. Das Laufwerk, auf dem Sie arbeiten müssen, ist das Laufwerk, das die Partition enthält, deren Größe geändert werden soll. Wenn die zu verkleinernde Partition zum Beispiel /dev/sda3 ist, ist das Laufwerk /dev/sda.

root #parted
(parted)print
Disk geometry for /dev/sdb: 0.000-9787.148 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031   2953.125  primary   ntfs
3       2953.125   3133.265  primary   linux-swap
2       3133.266   5633.085  primary   ext3
4       5633.086   9787.148  extended
5       5633.117   6633.210  logical
6       6633.242   9787.148  logical   ext3
(parted)help resizepart
  resizepart NUMBER END                    resize partition NUMBER

        NUMBER ist die von Linux verwendete Partitionsnummer. Auf MS-DOS-Plattenlabels sind die primären Partitionen
        von 1 bis 4 nummeriert, logische Partitionen von 5 an.
        END ist die Position auf der Festplatte, z.B. 4GB oder 10%.  Negative Werte zählen ab dem Ende der Festplatte.
        Zum Beispiel gibt -1s genau den letzten Sektor an.
(parted)resizepart 2 3133.266 4000.000
Wichtig
Geduld! Der Computer arbeitet ! Zum Prüfen der Festplattenaktivität auf die Festplatten-LED auf dem Gehäuse schauen. Dies sollte zwischen 2 und 30 Minuten dauern.

Sobald die Größenänderung fertig ist, wie beschrieben zurück in das alte Linux booten. Dann zu Gentoo Handbuch: Vorbereiten der Festplatte(n) gehen und den Anweisungen folgen.

Chrooten

Wenn Sie chrooten, verwenden Sie den folgenden Befehl, um die Umgebung zu flushen:

root #env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash
root #/usr/sbin/env-update
root #source /etc/profile

Der Rest der Anleitung ist die gleiche wie im Gentoo Handbuch. Viel Spaß!

Siehe auch


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Gerald Normandin Jr., Travis Tilley, Oleg Raisky, Alex Garbutt, Alexandre Georges, Magnus Backanda, Faust A. Tanasescu, Daniel Ahlberg, Ken Nowack, Tiemo Kieft, Benny Chuang, Jonathan Smith, and
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.