Table of contents
Mit dem laufenden Xubuntu auf meinem Rechner war ich eigentlich recht zufrieden. Es gab keine Probleme (wenn man mal von der Installation absieht), außer, dass ich im Laufe der Zeit immer mehr Software selbst kompilieren musste. Sei es, weil sie einfach nicht in den offiziellen Repositories verfügbar waren, oder weil sie hoffnungslos veraltet waren (gerade beim Enkodieren bringen aktuelle Versionen viele Verbesserungen).
Außerdem ist nun genug Zeit seit der Einführung des AMD 64 vergangen, sodass man ein einigermaßen ausgereiftes System erwarten kann. Diesmal sollte es also eine echte 64-bit-Distribution werden. Der Umstieg auf eine solche könnte unter Gentoo einfacher sein, da man nie das Problem hat, dass Programme nicht in den 64-bit-Repositories sind, schließlich kompiliert man sie sich ja selbst.
Dazu kommt, dass ich nun wieder auf die schnellere WD Raptor-Festplatte umsteigen wollte, auf der sich noch immer die Überbleibsel der Windowsinstallation befanden. Da sich herausgestellt hat, dass Linux wunderbar läuft, können diese also gefahrlos im Nirvana verschwinden :-).
Und zu guter letzt wollte ich ohnehin die Blowfish-Verschlüsselung auf Twofish umstellen, was nochmals schneller ist als Blowfish.
Bei der Gelegenheit wollte ich auch gleich eine Backuplösung einrichten und zuvor meine Daten sauber strukturieren, sodass die Backuplösung nur die wirklich wichtigen Daten erfasst und nicht die ganzen großen Dateien wie VMWare-Images und Filme.
Planung
Zuerst stellte ich mir eine Liste an Software zusammen, die ich momentan verwende, sodass ich später die gesamte Software einfach über Nacht kompilieren lassen kann und nicht bei Bedarf dauernd nachinstallieren muss.
Dabei zeigte sich, dass die einzigen Closed-Source-Programme, die ich noch benutze, die nVidia-Treiber, VMWare und Opera sind.
Ansonsten ist es natürlich immer ganz gut, wenn man mit dem neuen System schon mal ein bisschen in vmware rumgespielt hat oder ein anderes System damit aufgesetzt hat.
Genaue Vorgehensweise
Live-CD
fdisk
auf /dev/sda
(die einzige zu dem Zeitpunkt am
System angeschlossene Festplatte, aus den Erfahrungen bei der
Xubuntu-Installation habe ich gelernt…). Hier wurden drei Partitionen
eingerichtet:
- 20 MB für
/boot
, wo Kernel, initrd und GRUB-Konfiguration liegen - 2 GB für
swap
- der Rest für
/
Nun wird das Dateisystem erstellt, mit 0 reservierten Blöcken, da wir auf
/boot
lieber den kompletten Speicher zur Verfügung haben:
# mkfs.ext2 -m 0 /dev/sda1
Danach wird die Verschlüsselung aufgesetzt:
# cryptsetup -c twofish-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sda3 # cryptsetup luksOpen /dev/sda3 root # mkfs.ext3 /dev/mapper/root
…und die Installation ganz normal fortgeführt, wie im Gentoo-Handbuch beschrieben:
# mount /dev/mapper/root /mnt/gentoo # ifconfig eth0 192.168.1.23 && route add default gw 192.168.1.1 # mkdir /mnt/gentoo/boot # mount /dev/sda1 /mnt/gentoo/bootlinks http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/snapshots/portage-latest.tar.bz2
links http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/snapshots/stages/amd64/current/stage3*
cd /mnt/gentoo
tar xvjpf stage3-*.tar.bz2
tar xvjf portage-latest.tar.bz2 -C usr
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
nano /etc/make.conf
nano /etc/locale.gen
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Die /etc/make.conf
habe ich im Laufe des Installationsprozesses
ergänzt, ich liste hier aber trotzdem schonmal ihren Inhalt:
/etc/make.conf:
CFLAGS="-march=k8 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="-nls -unicode -ldap -kde -ipv6 -perl ssl jpg jpeg png cups ogg theora truetype x264 xinerama caps alsa mp3 \
aac xv xvid mad esd 3dnow mmx sdl"
GENTOO_MIRRORS="http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ "
VIDEO_CARDS="nvidia"
INPUT_DEVICES="keyboard mouse"
PORTDIR_OVERLAY="/usr/local/portage"
source /usr/portage/local/layman/make.conf
/etc/locale.gen:
en_US ISO-8859-1
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
Nun geht’s an das Konfigurieren und Bauen des Kernels. Die von Gentoo mitgelieferten Quellen sind aktuell genug (2.6.20), sodass ich nicht den Aufwand treibe und die neuste Version herunterlade, um dann die Gentoo-Patches manuell zu integrieren.
Optionen, auf die man achten sollte:
- CONFIG_FB_NVIDIA (nVidia Framebuffer) sollte deaktiviert sein, wenn man den binären nVidia-Treiber verwenden will
- CONFIG_FUSE_FS sollte man aktivieren, wenn man FUSE verwenden will (für sshfs zB)
- CONFIG_DM_CRYPT, CONFIG_CRYPTO_TWOFISH_X86_64, CONFIG_CRYPTO_SHA256 müssen für die Verschlüsselung aktiviert sein
- CONFIG_FORCEDETH für die Onboard-Netzwerkkarte des ASUS A8N-SLI
- CONFIG_SND_EMU10K1 für die Soundblaster Audigy 2
- CONFIG_SATA_NV für den SATA-Controller des A8N
- CONFIG_BLK_DEV_RAM für die initrd zur Initialisierung der Verschlüsselung
- CONFIG_BLK_DEV_SIZE=8192, damit wir auch genug Platz für umfangreiche initrds haben
- CONFIG_I2C_NFORCE2, CONFIG_I2C_ISA, CONFIG_SENSORS_EEPROM, CONFIG_SENSORS_K8TEMP, CONFIG_HWMON, CONFIG_SENSORS_IT87 für das Auslesen der Sensoren (Temperaturen und Spannungen) des Mainboards
- CONFIG_UFS_FS für das Mounten von DVD-Images
- CONFIG_BLK_DEV_NBD, damit vmware seine Disk-Images loopmounten kann
# emerge gentoo-sources # cd /usr/src/linux # make && make modules_install # cp arch/x86_64/boot/bzImage /boot/kernel-2.6.20
Das war’s – nach nur 7 Minuten ist der Kernel fertig und gehört damit zu den schnelleren Paketen ;-).
Nun passen wir noch ein paar Konfigurationsdateien an:
# nano /etc/fstab # nano /etc/conf.d/hostname # nano /etc/conf.d/net # nano /etc/conf.d/clock # nano /etc/hosts # nano /etc/rc.conf
Dann installieren wir die notwendige Software und setzen ein Passwort. Zuerst
müssen wir aber die multipath-tools
für amd64 unmasken:
# echo "sys-fs/multipath-tools ~amd64" > /etc/portage/package.keywords
# emerge syslog-ng vixie-cron multipath-tools grub # rc-update add {net.eth0,syslog-ng,vixie-cron} default
Wichtig ist hierbei, multipath-tools
zu installieren, denn ohne
dieses Paket werden die Device-Mapper-Nodes nicht in /dev/mapper
erstellt beim Booten.
Nun konfigurieren wir grub und installieren ihn:
# nano /boot/grub/grub.conf # grep -v rootfs /proc/mounts > /etc/mtab # grub-install --no-floppy /dev/sda
Zeit für einen Reboot ins neue System :-).
# exit # umount /mnt/gentoo/{proc,dev,boot} # umount /mnt/gentoo # cryptsetup luksClose root # reboot
Nach dem Reboot
Wenn nun alles geklappt hat (in der Regel vergisst man etwas), geht’s weiter mit Benutzer einrichten und Software installieren:
# groupadd -g 1001 staff # useradd -m -G staff,audio,cdrom,portage,usb,video,wheel -s /bin/zsh michael -u 101 -g 1001rm /stage3* /portage*
nano /etc/portage/package.use
nano /etc/portage/package.unmask
nano /etc/portage/package.keywords
/etc/portage/package.use:
app-editors/vim -nls -gpm -acl -python
media-video/mplayer mmxext vorbis dvd encode X 3dnowext opengl dvdread gtk
net-misc/openssh hpn
media-video/avidemux vorbis a52 encode sdl
app-office/dia cairo
media-gfx/gimp svg png
app-text/evince dvi
net-misc/curl ares
media-video/vlc opengl stream a52 X vcd matroska flac
dev-lang/php xml zip pdo postgres mysql gd sockets mhash apache2 bzip2
www-client/seamonkey mozdevelop moznocompose moznoirc moznomail
x11-libs/cairo X
media-gfx/imagemagick X
media-libs/imlib2 X
dev-lang/spidermonkey threadsafe
app-text/poppler-bindings gtk
x11-libs/wxGTK gtk X
net-misc/vnc -server
www-servers/lighttpd fastcgi memcache bzip2
app-backup/bacula bacula-clientonly bacula-console bacula-nodir bacula-nosd -python
dev-util/git curl
net-im/gaim gtk console
media-sound/cmus ao
media-gfx/gphoto2 exif
media-gfx/sane-backends gphoto2 usb
media-gfx/sane-frontends gimp
media-gfx/xsane gimp tiff
sys-devel/gcc objc
/etc/portage/package.unmask:
media-video/avidemux
/etc/portage/package.keywords:
sys-fs/multipath-tools ~amd64
x11-wm/e ~amd64
x11-libs/ecore ~amd64
x11-libs/evas ~amd64
dev-libs/eet ~amd64
dev-libs/embryo ~amd64
media-libs/edje ~amd64
media-sound/cmus ~amd64
media-video/avidemux ~amd64
dev-lang/spidermonkey ~amd64
app-backup/bacula ~amd64
sys-kernel/git-sources ~amd64
media-libs/exiftool
media-video/dvbsnoop ~amd64
OK, jetzt noch folgender Befehl und dann erstmal schlafen gehen oder sich sonst irgendwie einige Stunden beschäftigen ;-)
# emerge ccache gentoolkit # emerge spidermonkey poppler-bindings x11-libs/wxGTK # emerge vim nvidia-drivers xdm rtorrent wget openssh mplayer rsync subversion cmus unrar zsh lftp vsftpd \ avidemux dvd+rw-tools tcpdump rxvt-unicode hdparm audacity id3ed lame mpg123 gtetrinet dvdauthor dia evince \ bchunk esound ekiga tetex screen samba smartmontools cdrtools cups vlc mysql apache php gnustep-base \ gnustep-make python ipython seamonkey opera pciutils usbutils ntp alsa-utils app-admin/sudo elinks cvs \ lm_sensors scrot slocate xmodmap cryptsetup-luks imagemagick sshfs-fuse vnc corefonts lsof bc whois \ netkit-telnetd pwgen bacula gimp exiftool dev-util/git gphoto2 esd gqview ntp sloccount strace dvbsnoop \ libmpeg2 rdesktop netcat gcc # rc-update add {sshd,esound,ntpd,xdm} default
Was man von Hand kompilieren sollte, ist e17
, da das Overlay
dafür irgendwie nicht funktioniert (und einen Snapshot zu installieren
versucht, anstatt aus dem CVS auszuchecken).
Sehr positiv aufgefallen ist mir die Installation von vsftpd
,
welches auf überfrachtete Tools wie autoconf und automake verzichtet und auch
den Bildschirm nicht mit 4 Zeilen langen gcc-Aufrufen füllt, sondern schnell,
einfach und zuverlässig kompiliert und installiert wird. So sollten alle Pakete
kompiliert werden.
Letzte Anpassungen
Der Prozess kcryptd
hat standardmäßig zuviel Priorität und lässt
so das System bei hoher I/O-Belastung ab und an stocken (das ist wohl
allerdings nur ein Workaround für einen Bug im
Kernel). Mit folgendem Befehl als root kann man das beheben:
# renice -p `ps ax | grep kcryptd/0 | awk '{print $1}'`
Außerdem sollte man noch den X-Server mit -nolisten
starten, wenn
man nicht über’s Netz auf seinen X-Server zugreifen will:
/etc/X11/xdm/Xservers:
:0 local /usr/bin/X :0 -nolisten tcp vt7
Konfiguration der ZSH
Bei Debian kommt mit der zsh
standardmäßig die sehr
fortgeschrittene Vervollständigung einher. Bei Gentoo ist diese nicht
aktiviert. Das kann man jedoch einfach beheben, indem man mit den Befehlen
autoload compinit
und compinit
die Datei
.zcompdump
erzeugt. In der eigenen zsh-Konfiguration (oder in der
Systemweiten, je nach Einsatzzweck des Rechners) kann man dann die beiden
Befehle einbauen, allerdings sollte man die Option -C
angeben,
denn ansonsten wird die Datei jedes Mal neu erzeugt.
Backup
Als Backuplösung habe ich mich für bacula
entschieden, von dem ich auf einem
Vortrag hörte. Man kann damit Linux-, Mac OS X- und Windows-Rechner über das
Netzwerk auf beliebige Medien (Bänder, Festplatten, DVDs…) sichern.
Was mir an bacula
gefällt, ist die Möglichkeit, einzelne
Dateien/Ordner wiederherzustellen (das ersetzt bei mir für ein paar kleine
Projekte die Versionskontrolle) sowie die Möglichkeit, Backups auch zu
verschlüsseln. Ein Backupjob über’s Netz wird folgen, denkbar wäre zum Beispiel
auch, seine Rootserver damit zu sichern. Bei einem guten Rescue-System des
Hosters könnte man dann ohne viel Aufwand im Notfall das System zurückspielen
(zum Beispiel auf eine neue Festplatte). Außerdem ist bacula
freie
Open-Source-Software :-).
Bei meiner Konfiguration wird jeden Samstag ein komplettes Backup angelegt (Full), dann inkrementelle Backups bis zum nächsten Samstag. Die gesicherten Daten werden zwei Wochen lang aufgehoben (mehr lässt derzeit mein Speicherplatz nicht zu).
Fazit
Mein System ist nun viel schneller. Das kann vielerlei Gründe haben, ob es nun die Tatsache ist, dass alle Programme (und die meisten Libraries) selbst kompiliert und optimiert wurden, oder ob es der Umstieg von 32-bit auf 64-bit ist, oder die schnellere Festplatte, oder der schnellere RAM, oder die aktuellere Software, oder der Umstieg auf Twofish – letztendlich ist der genaue Grund auch nicht so wichtig, solange ich mit dem System zufrieden bin :-).
Die CPU-Auslastung ist jedenfalls deutlich niedriger. Diese lag bei 5-15% auf dem alten System, wenn ich allein die üblichen Anwendungen laufen hatte (Opera, einige Terminals, VMWare). Nun liegt sie zwischen 0 und 5%.
Sehr positiv ist auch die problemlose Übernahme sämtlicher Konfigurationsdateien zu bemerken, welche auf Anhieb funktionierten. Alles war wie gewohnt :-).
I run a blog since 2005, spreading knowledge and experience for almost 20 years! :)
If you want to support my work, you can buy me a coffee.
Thank you for your support! ❤️