https://wiki.archlinux.de/api.php?action=feedcontributions&user=37.201.8.112&feedformat=atomwiki.archlinux.de - Benutzerbeiträge [de]2024-03-29T04:37:31ZBenutzerbeiträgeMediaWiki 1.41.0https://wiki.archlinux.de/index.php?title=Systemverschl%C3%BCsselung_mit_dm-crypt&diff=15059Systemverschlüsselung mit dm-crypt2013-03-09T21:52:21Z<p>37.201.8.112: /* System konfigurieren */</p>
<hr />
<div>Dieser Artikel behandelt die Installation eines ArchLinux-Grundsystems mit verschlüsseltem LVM und der kompletten Integration von Systemd. Die Anleitung wurde unter Verwendung der Installations-Medien 2013.01.04 (archlinux-2013.01.04-dual.iso) erstellt. Die Installation sollte aber auch mit zukünftigen Medien (zumindest vorerst) nicht großartig anders verlaufen.<br />
<br />
<br />
== Installationsmedium vorbereiten ==<br />
<br />
* Das Installations-Image von http://www.archlinux.org/download/ herunterladen.<br />
<br />
<br />
* Das Image auf CD brennen oder unter einem funktionierendem Linux-System (z. B. Live-CD) auf einen USB-Stick kopieren. Dies funktioniert wie folgt:<br />
# dd if=archlinux.iso of=/dev/sdx<br />
<br />
<br />
== Installation starten ==<br />
<br />
* Nun wird vom vorbereiteten Installations-Medium gebootet und das Setup für die entsprechende Systemarchitektur (i686 oder x86_64) gestartet.<br />
<br />
<br />
* Auf der Konsole angekommen, wird zuerst einmal das deutsche Tastatur-Layout geladen.<br />
root@archiso ~ # loadkeys de-latin1<br />
<br />
Da das Layout derzeit noch auf Englisch eingestellt ist, muss '''z''' anstatt '''y''' und '''ß''' anstatt '''-''' eingegeben werden.<br />
<br />
<br />
== Festplatte vorbereiten ==<br />
<br />
* Jetzt wird es Zeit, die Festplatten zu partitionieren. Dies kann z. B. mit '''cfdisk''' durchgeführt werden. Für unseren Zweck erstellen wir zwei Partitionen:<br />
'''sda1''' mit einer Größe von 100 MB und boot-Flag (dies wird später unsere Boot-Partition)<br />
<br />
'''sda2''', welche den Rest der Festplatte spendiert bekommt (hier wird unser verschlüsseltes LVM seinen Platz drauf finden)<br />
<br />
<br />
* Zur Sicherheit wird die Festplatte jetzt überschrieben:<br />
root@archiso ~ # shred -v /dev/sda2<br />
<br />
Standardmäßig wird dieser Vorgang drei Mal durchgeführt, wobei ein Durchgang bei einer ca. 2 TB großen Festplatte schon mal fünf bis sechs Stunden in Anspruch nehmen kann.<br />
<br />
<br />
* Wer deswegen den Vorgang nur einmal durchführen möchte, kann stattdessen folgenden Befehl ausführen:<br />
# shred -v -n 1 /dev/sda2<br />
<br />
<br />
== Verschlüsseltes LVM einrichten ==<br />
<br />
* Jetzt werden die benötigte Kernel-Modul für die Verschlüsselung geladen:<br />
root@archiso ~ # modprobe dm-crypt<br />
<br />
<br />
* Anschließend wird sda2 verschlüsselt:<br />
root@archiso ~ # cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2<br />
<br />
<br />
'''Hinweis:''' Für Volumes größer als 2 TiB sollte aes-xts-plain64 verwendet werden. Kernelunterstützung hierfür gibt es seit Kernel 2.6.33. Die Option aes-xts-plain64 kann auch für Volumes kleiner 2 TiB verwendet werden.<br />
<br />
<br />
* Die Eingabeaufforderung mit YES bestätigen und anschließend ein sicheres Passwort vergeben. Hierbei sollten schon 20 Zeichen inkl. Sonderzeichen und Zahlen verwendet werden.<br />
<br />
<br />
* Jetzt wird die verschlüsselte Partition geöffnet und das LVM eingerichtet:<br />
root@archiso ~ # cryptsetup luksOpen /dev/sda2 lvm<br />
root@archiso ~ # pvcreate /dev/mapper/lvm<br />
root@archiso ~ # vgcreate main /dev/mapper/lvm<br />
root@archiso ~ # lvcreate -L 200GB -n root main<br />
root@archiso ~ # lvcreate -L 8GB -n swap main<br />
root@archiso ~ # lvcreate -l 100%FREE -n home main<br />
<br />
'''Hinweis:''' Je nach Festplattengröße und/oder zukünftiger Erweiterung des Grundsystems kann auch eine geringere Größe für das root-Volume (-n root) festgelegt werden. Wenn das home-Volume (-n home) nicht den verbleibenden Platz komplett ausfüllt, können später LVM-Snapshots erstellt werden. Dazu kann - wie bei den anderen lvcreate-Befehlen - eine geringere Größe angegeben werden, zum Beispiel -L 50GB.<br />
<br />
<br />
* Mit mkfs wird nun das Dateisystem auf die Partitionen geschrieben.<br />
root@archiso ~ # mkfs.ext4 -L root /dev/mapper/main-root<br />
root@archiso ~ # mkfs.ext4 -L home /dev/mapper/main-home<br />
root@archiso ~ # mkfs.ext4 -L boot /dev/sda1<br />
root@archiso ~ # mkswap -L swap /dev/mapper/main-swap<br />
<br />
<br />
* Dann werden die Partitionen gemountet:<br />
root@archiso ~ # mount /dev/mapper/main-root /mnt<br />
root@archiso ~ # mkdir /mnt/home<br />
root@archiso ~ # mount /dev/mapper/main-home /mnt/home<br />
root@archiso ~ # mkdir /mnt/boot<br />
root@archiso ~ # mount /dev/sda1 /mnt/boot<br />
<br />
<br />
== Basissystem und Bootloader installieren ==<br />
<br />
* Bevor es jetzt los geht und wir das Basissystem installieren, testen wir erstmal die Internetverbindung:<br />
root@archiso ~ # ping -c 3 www.google.com<br />
<br />
<br />
* Besteht keine Verbindung, sollte folgender Befehl Abhilfe schaffen:<br />
root@archiso ~ # dhcpcd<br />
<br />
<br />
* Wir bearbeiten nun zuerst unsere Mirrorliste, und kommentieren alle weit entfernten Server mit '''#''' aus.<br />
root@archiso ~ # nano /etc/pacman.d/mirrorlist<br />
<br />
Dies kann bei der Installation Geschwindigkeitsvorteile von ca. 30 Minuten bringen.<br />
<br />
<br />
* Dann wird das Basissystem inkl. Bootloader (ich habe mich für syslinux entschieden) installiert.<br />
root@archiso ~ # pacstrap /mnt base base-devel syslinux<br />
<br />
<br />
* Nach der Basis-Installation wird syslinux in den MBR von sda geschrieben:<br />
root@archiso ~ # syslinux-install_update -i -a -m -c /mnt<br />
<br />
<br />
* Dann wird syslinux konfiguriert:<br />
root@archiso ~ # nano /mnt/boot/syslinux/syslinux.cfg<br />
<br />
<br />
* Die APPEND-Zeile muss bei beiden Einträgen (arch und archfallback angepasst werden:<br />
APPEND cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro lang=de locale=de_DE.UTF-8<br />
<br />
<br />
== System konfigurieren ==<br />
<br />
* Nun aktivieren wir die Swap-Partition:<br />
root@archiso ~ # swapon -L swap<br />
<br />
<br />
* Dann wird die fstab generiert:<br />
root@archiso ~ # genfstab -U -p /mnt >> /mnt/etc/fstab<br />
root@archiso ~ # nano /mnt/etc/fstab<br />
<br />
<br />
* Jetzt wechseln wir in die chroot-Umgebung:<br />
root@archiso ~ # arch-chroot /mnt<br />
<br />
<br />
* Spracheinstellungen in /etc/locale.conf festlegen:<br />
LANG="de_DE.UTF-8"<br />
<br />
# Keep the default sort order (e.g. files starting with a '.'<br />
# should appear at the start of a directory listing.)<br />
LC_COLLATE="C"<br />
<br />
LC_TIME="de_DE.UTF-8"<br />
<br />
* /etc/locale.gen editieren und locales generieren:<br />
sh-4.2# nano /etc/locale.gen<br />
<br />
<br />
* '''#''' vor folgenden locales entfernen:<br />
de_DE.UTF-8 UTF-8<br />
de_DE ISO-8859-1<br />
de_DE@euro ISO-8859-15<br />
<br />
<br />
* locales generieren:<br />
sh-4.2# locale-gen<br />
<br />
<br />
* Config-Dateien für systemd anpassen:<br />
sh-4.2# echo myhostname >> /etc/hostname<br />
sh-4.2# echo KEYMAP=de-latin1 >> /etc/vconsole.conf<br />
sh-4.2# echo FONT=lat9w-16 >> /etc/vconsole.conf<br />
sh-4.2# echo FONT_MAP=8859-1_to_uni >> /etc/vconsole.conf<br />
<br />
<br />
* Symlink für die Zeitzone erstellen:<br />
sh-4.2# ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime<br />
<br />
<br />
* /etc/mkinitcpio.conf anpassen:<br />
sh-4.2# nano /etc/mkinitcpio.conf<br />
<br />
<br />
* Die MODULES- und HOOKS-Werte entsprechend anpassen:<br />
MODULES="ext4"<br />
HOOKS="base udev autodetect block keyboard keymap encrypt lvm2 filesystems fsck shutdown"<br />
<br />
Die hier vorgegebenen Hooks sind für das Booten von einer S-ATA-Festplatte mit einer USB-Tastatur gedacht und müssen daher evtl. angepasst werden. Alle verfügbaren Hooks sind unteter https://wiki.archlinux.org/index.php/Mkinitcpio#HOOKS zu finden.<br />
<br />
== Kernel-Image erstellen und der erste Neustart ==<br />
<br />
* Damit es bei der Erstellung des Kernel-Images nicht zu dem Fehler bsdcpio: Failed to set default locale kommt, führen wir folgendes aus:<br />
sh-4.2# export LANG=de_DE.UTF-8<br />
<br />
<br />
* Dann erstellen wir das Kernel-Image:<br />
sh-4.2# mkinitcpio -p linux<br />
<br />
<br />
* Jetzt legen wir das Passwort für root an:<br />
sh-4.2# passwd<br />
<br />
<br />
* Damit per DHCP automatisch eine IP-Adresse beim Bootvorgang bezogen wird, aktivieren wir den entsprechenden Systemd-Dienst:<br />
sh-4.2# systemctl enable dhcpcd@.service<br />
<br />
<br />
* Anschließend verlassen wir die chroot-Umgebung und hängen die Partitionen aus:<br />
sh-4.2# exit<br />
root@archiso ~ # umount /mnt/{boot,home,}<br />
root@archiso ~ # reboot<br />
<br />
<br />
* Der PC startet nun neu und wir werden – sofern bisher alles gut gegangen ist – von unserem Bootloader gefolgt von der Eingabeaufforderung zur Entschlüsselung des cryptdevice begrüßt. Gebt das Passwort ein und meldet euch, nachdem der Bootvorgang abgeschlossen ist, als root an.<br />
<br />
<br />
== Systemd einrichten == <br />
<br />
* Sollte das Netzwerk nicht gestartet sein, folgenden Befehl ausführen:<br />
[root@myhostname ~]# dhcpcd<br />
<br />
<br />
* Welche IP-Adresse vergeben wurde, kann mittels ip-Programm festgestellt werden:<br />
[root@myhostname ~]# ip addr<br />
<br />
<br />
* Services für systemd einrichten:<br />
[root@myhostname ~]# systemctl enable cronie.service<br />
[root@myhostname ~]# systemctl enable lvm.service<br />
<br />
<br />
* Im Falle, dass ein x86_64 System installiert wurde, kann in der /etc/pacman.conf noch das multilib-repo aktiviert werden. Anschließend müssen pacman’s Paketlisten wieder auf den neusten Stand gebracht werden:<br />
[root@myhostname ~]# pacman -Syy<br />
<br />
<br />
* Ein letzer Reboot und wir können damit anfangen, unser frisch installiertes Arch an unsere Bedürfnisse anzupassen.<br />
[root@myhostname ~]# reboot<br />
<br />
<br />
<br />
Erstellt von [[Benutzer:Durag|Durag]] am 20. August 2012<br />
<br />
<br />
[[Kategorie:Installation]]<br />
[[en:dm-crypt with LUKS]]</div>37.201.8.112https://wiki.archlinux.de/index.php?title=Pacman&diff=15037Pacman2013-03-06T00:15:22Z<p>37.201.8.112: /* Pacman aus Versehen deinstalliert */</p>
<hr />
<div>Der zentrale Paketmanager '''Pacman''' ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format <code>.pkg.tar.xz</code> (bzw. <code>.pkg.tar.gz</code> bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositories stammen, oder vom Benutzer selbst über das [[Arch Build System]] (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über '''Pacman''' installiert werden, damit sie in der zentralen Datenbank erfasst werden.<br />
<br />
Mittels '''Pacman''' wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde '''Pacman''' als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden. <br />
<br />
== Installation ==<br />
'''Pacman''' ist bereits Bestandteil jeder Arch Linux-Installation.<br />
<br />
== Anwendung ==<br />
'''Pacman''' ist ein All-In-One-Paketmanager. Er kann Pakete<br />
<br />
* suchen,<br />
* herunterladen,<br />
* installieren und aktualisieren, sowohl vom Server als auch von lokalen Datenbanken,<br />
* überprüfen und<br />
* entfernen.<br />
<br />
Die wichtigsten Befehle sind hier aufgeführt. Bitte beachte, dass die Paketnamen immer klein geschrieben werden.<br />
<br />
{|border="1" style="width:100%"<br />
|style="width:30%;background-color:#E5E5E5"|'''Befehl''' <br />
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung''' <br />
|-<br />
|''pacman -Syu''<br />
|Führt eine komplette System-Aktualisierung aus<br />
|-<br />
|''pacman -S [paket1] [paket2]''<br />
|Eines oder mehrere Pakete installieren oder aktualisieren<br />
|-<br />
|''pacman -Sy''<br />
|Lokale Datenbank aktualisieren<br />
|-<br />
|''pacman -Su''<br />
|Alle installierten Pakete aktualisieren<br />
|-<br />
|''pacman -Syy''<br />
|Lokale Datenbank komplett neu aufbauen und aktualisieren<br />
|-<br />
|''pacman -Syuu''<br />
|Alle installierten Pakete downgraden (von Testing nach Core)<br />
|-<br />
|''pacman -Ss [paket]''<br />
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung<br />
|-<br />
|''pacman -Sg''<br />
|Sucht nach installierbaren Paketgruppen<br />
|-<br />
|''pacman -Sg [paketgruppe]''<br />
|Zeigt den Inhalt einer Paketgruppe<br />
|-<br />
|''pacman -Q''<br />
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an <br />
|-<br />
|''pacman -Qs [paket]''<br />
|Sucht nach bereits installierten Paketen<br />
|-<br />
|''pacman -R [paket]<br />
|Paket entfernen<br />
|-<br />
|''pacman -Rd [paket]<br />
|Paket entfernen '''ohne''' auf Abhängigkeiten zu achten. ACHTUNG: Das Paket wird auch entfernt, wenn es noch von anderen Paketen gebraucht wird!<br />
|-<br />
|''pacman -Rdd [paket]<br />
|Paket entfernen, wie oben, jedoch werden alle Abhängigkeitsprüfungen ausgeschaltet<br />
|-<br />
|''pacman -Rs [paket]<br />
|Paket mit allen benötigten Abhängigkeiten entfernen (wenn diese nicht von anderen installierten Paketen benötigt werden)<br />
|-<br />
|''pacman -Rss [paket]<br />
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen<br />
|-<br />
|''pacman -D [paket]''<br />
|Status eines installierten Programms ändern, ohne es "drüber zu installieren"<br />
|-<br />
|''pacman -Qi [paket]''<br />
|Informationen zu bereits installiertem Paket anzeigen<br />
|-<br />
|''pacman -Si [paket]<br />
|Informationen zu (noch) nicht installierten Paketen anzeigen<br />
|-<br />
|''pacman -Sw [paket]<br />
|Paket herunterladen, ohne es zu installieren<br />
|-<br />
|''pacman -S testing/[paket]<br />
|Paket aus einem spezifischen Repo (hier: testing) installieren<br />
|-<br />
|''pacman -U [paket-datei]<br />
|Ein lokales Paket installieren (nicht aus einem Repo) <br />
|-<br />
|''pacman -Runs [paket]''<br />
|Paket inklusive aller Abhängigkeiten entfernen<br />
|-<br />
|''pacman -Qdt''<br />
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden<br />
|-<br />
|''pacman -Qet''<br />
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden<br />
|-<br />
|''pacman -Scc''<br />
|Leert den lokalen Speicher von '''Pacman''' (/var/cache/pacman/pkg)<br />
|-<br />
|''pacman -Sc''<br />
|Löscht nicht mehr benötigte und veraltete Pakete aus (/var/cache/pacman/pkg) und unbenutzte Repositorien aus /var/lib/pacman/.<br />
|-<br />
|''pacman -Ql [paket]''<br />
|Zeigt alle installierten Dateien des Pakets im System<br />
|-<br />
|''pacman -Qm''<br />
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden<br />
|-<br />
|''pacman -Qo [/pfad/zur/datei]''<br />
|Zeigt das Paket an, welches die gesuchte Datei enthält<br />
|-<br />
|''pacman -Qu''<br />
|Zeigt an, für welche installierten Pakete Updates verfügbar sind<br />
|-<br />
|''pacman -Qk''<br />
|Überprüft alle Pakete auf fehlende Dateien. Einfachhalber pacman -Qk mit grep warning benutzen<br />
|-<br />
|''pacman-optimize''<br />
|'''Pacman'''-Datenbank optimieren durch Neuanordnung der Paketdateien im Dateisystem<br />
|-<br />
<br />
|}<br />
<br />
<br />
Es können auch mehrere Befehle kombiniert werden.<br />
<br />
Z.B. Alle verwaisten Pakete deinstallieren:<br />
<br />
pacman -Rcsn `pacman -Qdtq`<br />
<br />
== Konfiguration ==<br />
<br />
Die Einstellungen zu '''Pacman''' werden in der Datei <code>/etc/pacman.conf</code> gespeichert.<br />
<br />
=== Allgemeine Einstellungen ===<br />
<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
#GPGDir = /etc/pacman.d/gnupg/<br />
HoldPkg = pacman glibc<br />
SyncFirst = pacman<br />
#CleanMethod = KeepInstalled<br />
Architecture = auto<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
#NoUpgrade =<br />
#NoExtract =<br />
#UseSyslog<br />
#UseDelta<br />
#TotalDownload<br />
#CheckSpace<br />
#VerbosePkgLists<br />
<br />
Pakete, die durch '''HoldPkg''' markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.<br />
<br />
Pakete, die mit '''IgnorePkg''' markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.<br />
<br />
Dateien, die durch '''NoUpgrade''' markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format <code>datei.pacnew</code> an.<br />
<br />
=== Repositories und Spiegel-Server ===<br />
<br />
Offizielle Arch Linux-Pakete werden einem von vier verschiedenen Repositories zugeordnet:<br />
*[core] enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.<br />
*[extra] enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].<br />
*[testing] enthält neue Versionen, die noch nicht hinreichend getestet wurden - mit anderen Worten: Dinge, die etwas kaputt machen könnten.<br />
*[community] enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im [[AUR]] zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird von den "Trusted Users" betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.<br />
<br />
==== Repos festlegen ====<br />
<br />
Die Konfiguration der <code>/etc/pacman.conf</code> durch Auskommentierung oder zusätzliche Einträge ist weitgehend selbsterklärend.<br />
<br />
==== Inoffizielle Repositories verwenden ====<br />
<br />
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repositories findet sich im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki].<br />
<br />
==== Den richtigen Spiegel-Server finden ====<br />
<br />
Spiegel-Server unterscheiden sich durch ihre Aktualität (Siehe unterschiedliche Synchronisations-Raten mit dem Hauptserver), sowie durch ihre Zugänglichkeit vom eigenen Standort aus.<br />
<br />
* Es werden nur noch Server mit dem HTTP Protokoll unterstützt.<br />
* Die Wahl der Architektur wird durch entsprechende Variablen gesteuert.<br />
<br />
<pre><nowiki><br />
## Germany<br />
#Server = http://1favre.de/arch/$repo/os/$arch<br />
#Server = http://archlinux.limun.org/$repo/os/$arch<br />
#Server = http://artfiles.org/archlinux.org/$repo/os/$arch<br />
#Server = http://mirror.devnu11.net/archlinux/$repo/os/$arch<br />
#Server = http://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch<br />
#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch<br />
#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch<br />
#Server = http://mirror.de.leaseweb.net/archlinux/$repo/os/$arch<br />
#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch<br />
#Server = http://mirrors.mycraft.eu/archlinux/$repo/os/$arch<br />
#Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch<br />
#Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch<br />
#Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch<br />
#Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch<br />
#Server = http://ftp.tuxdroid.org/archlinux/$repo/os/$arch<br />
#Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch<br />
#Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch<br />
</nowiki></pre><br />
<br />
Die zahlreichen, weltweit verstreuten Spiegel des Hauptservers ftp.archlinux.org folgen alle dieser Struktur. Pacman legt für jedes Repo eine Standard-Liste der zur Verfügung stehenden Spiegel an. Diese nach Ländern und Kontinenten geordneten Listen werden in der Datei <code>/etc/pacman.d/mirrorlist</code> gespeichert. Da der Zugang zum Hauptserver inzwischen beschränkt werden musste, sollte man unbedingt auf einen Spiegel zurückgreifen.<br />
<br />
Um die Antwortzeiten der einzelnen Server zu testen, kann man das Skript '''rankmirrors''' verwenden:<br />
rankmirrors -n 0 -t -v /etc/pacman.d/mirrorlist<br />
<br />
==== Eigene mirrorlist ====<br />
<br />
Um sich das immer wiederkehrende Editieren der /etc/pacman.d/mirrorlist zu ersparen, wenn diese durch ein pacman-mirrorlist Update erneuert wird (bzw. eine mirrorlist.pacnew erstellt wird) kannst du folgendes tun:<br />
Erstelle dir eine Datei /etc/pacman.d/mymirrors und füge darin deine bevorzugten Spiegelserver ein. Dann ergänzt du die /etc/pacman.conf für die einzelnen Repos so:<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mymirrors<br />
Include = /etc/pacman.d/mirrorlist<br />
Somit bleibt die Original-Mirrorlist immer auf dem aktuellen Stand und du musst evtl. notwendige Änderungen nur in deiner Datei mymirrors vornehmen.<br />
<br />
=== Download beschränken ===<br />
<br />
Um die Download-Geschwindigkeit zu beschränken kann in der Zeile<br />
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
dem wget-Befehl die entsprechende Option hinzugefügt werden.<br />
XferCommand = /usr/bin/wget --passive-ftp '''--limit-rate=40k''' -c -O %o %u<br />
<br />
== Pacman aus Versehen deinstalliert ==<br />
Wie kann pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?<br />
Manuelle Variante (Ausführen als root):<br />
cd /<br />
bsdtar -x -f /var/cache/pacman/pkg/pacman-4.0.*.pkg.tar.xz<br />
Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.<br />
Danach pacman mittels des "neuen" pacman wieder installieren, damit der Datenbankeintrag für pacman selbst wieder angelegt wird.<br />
pacman -S pacman<br />
Per Installationsmedium:<br />
* Vom Installationsmedium booten<br />
loadkeys de<br />
* Partitionen einhängen:<br />
Root-Partition nach /mnt einhängen (Verzeichnis /etc sollte darin enthalten sein)<br />
Für weitere Partitionen unterhalb /mnt Ordner anlegen und entsprechend einhängen (bspw. /mnt/usr)<br />
pacstrap /mnt pacman<br />
installiert pacman neu.<br />
<br />
== Weitere Informationen ==<br />
*[https://www.archlinux.org/pacman/pacman.8.html man pacman]<br />
*[https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf]<br />
*[https://www.archlinux.org/pacman/repo-add.8.html man repo-add]<br />
<br />
== Siehe auch ==<br />
* [[Pacnew- und Pacsave-Dateien]]<br />
* [[Pacman beschleunigen]]<br />
* [[Farbige Pacman-Ausgaben]]<br />
* [[Pacman-key]]<br />
* [[Eigene Repositories erstellen]]<br />
* [[Pacman Tips]]<br />
<br />
[[Kategorie:Paketverwaltung]]<br />
<br />
[[en:Pacman]]</div>37.201.8.112