| |||
|
Allgemeines zu Debian 8.0 JessieDebian 8.0 Jessie, benötige Perl- und PHPModuledazu die Pakete, die aptitude automatisch ausgewählt. Grau hinterlegte sind optional!+ perlmodule (unter nicht-installiert -> perl) libarchive-zip-perl libclass-dbi-mysql-perl libclass-dbi-perl libconvert-ber libcrypt-gpg-perl libcrypt-unixcrypt-perl libdbd-mysql-perl libimage-exif-perl libimage-exiftool-perl libimage-size-perl libio-string libio-stty-perl libmime-lite-perl libmime-tools-perl libmp3-info-perl libmp3-tag-perl libnet-ssh-perl libsys-cpuload-perl libtext-csv-perl liburi-find-perl + php5 bei Jessie und PHP5 sind viele vorausgewählt php5-cli (default) php5-curl php5-gd (default) php5-imagick php5-imap php5-ldap php5-mcrypt (default) php5-mysql (default) libphp-phpmailer Rechner umbenennen oder IP Adresse ändernbei Namensänderungen oder Domainänderungen müssen folgende Dateien angepasst werden:/etc/hosts /etc/hostname /etc/mailname /etc/exim4/update-exim4.conf.conf /etc/resolv.conf /etc/network/interfacesbei Änderungen der Domain eines NFS Servers muss die neue Domain in der /etc/idmapd.conf eingetragen werdenFalls ein Proxy verwendet werden soll, auch in den Browser Einstellungen und in /etc/apt/apt.confWill man eine Platte in einem anderen Rechner verwenden, die ohne daß sich die Netzwerkinterfaces ändern, muss man die entsprechende Zeile aus der /etc/udev/rules.d/70-persistent-net.rules löschen.Thats it! Konfiguration von Grub 2 aktualisieren# update-grub2 # grub-mkconfig Platte > 2 TB partitionierendas von mir bisher verwendetefdisk kann nur Platten bis 2 Terabyte partitionieren.
Für größere Platten verwende ich parted . Z.B. zum Einrichten einer
einzigen großen Partition auf /dev/sdf
# parted /dev/sdf (parted) mklabel gpt (parted) mkpart primary ext4 0% 100% (parted) quit System klonen / Grub nachträglich installierendie Zielplatte via USB anhägen oder in den 2.Wechselrahmen einstecken.Bei den Workstations: 256GB SSD mit 80GB/16GB/160GB partitionieren, bei 128GB 64GB/16GB/38GB. Die erste Partition wird / , die zweite SWAP und die dritte /local
Bei den Servern: 16GB SSD mit 15GB/1GB ohne /local partitionieren.
Der Swapspace muss wegen dem S4 Ruhezustand (hibernation) auf den Workstations mindestens so
gross wie der installierte Arbeitsspeicher sein. Typ der 2.Partition auf
83h ändern. Sei die neue Platte /dev/sdb , dann folgendende
Dateisysteme anlegen:
# mkfs.ext4 /dev/sdb1 # mkswap /dev/sdb2 # mkfs.ext4 /dev/sdb3Platte mounten und das gerade in Betrieb befindliche System kopieren: # mount /dev/sdb1 /mnt # cd / # rsync -avtHAX --exclude /mnt --exclude /proc --exclude /sys --exclude /dev --exclude /home --exclude /local / /mntDas Verzeichnis /local ist eine Spezialität von mir und /home wird bei mir vom
Server gemountet. /local wird anschliessend genauso kopiertDie kopierte /boot/grub/grub.cfg und /etc/fstab müssen vor der grub Installation
angepasst werden. Notfalls kann man aber auch die UUID der neuen Platte aufschreiben und beim Booten im Grub
als "root" bei UUID=... eingeben. Falls man das auch vergessen hat, bekommt man die
UUID raus, indem man die Platte in einen anderen Rechner einbaut und
# blkid -o value /dev/PARTITIONaufruft. Dann die alte UUID in /etc/fstab mit der richtigen UUID ersetzen.
am einfachsten im vi:
# vi /mnt/etc/fstab : %s/UUIDOLD/UUIDNEW/g :wq!so wird das Vorkommen der alten UUID durch die neue ersetzt. Ziel ist dann etwa: UUID=UUIDNEW / ext4 defaults,errors=remount-ro 0 1Ebenso muss die UUID in den Dateien /etc/uswsusp.conf und /etc/initramfs-tools/conf.d/resume
angepasst werden, wenn man "Suspend to Disk" verwenden will.
anschliessend das Kommando
# update-initramfs -uausführen. Vergisst man das, kein Beinbruch, man muss beim Booten nur ca 5 Minuten warten, bis der Fehler "Could not stat the resume device file '/dev/disk...'" kommt und das system mit <ENTER> bootet. Langer Rede, kurzer Sinn, am Zielsystem sind 4 Dateien anzupassen: /MOUNTPOINT/etc/fstab /MOUNTPOINT/boot/grub/grub.cfg /MOUNTPOINT/etc/uswsusp.conf /MOUNTPOINT/etc/initramfs-tools/conf.d/resume Achtung #1: Beliebter Fehler vi /etc/fstab statt vi /mnt/etc/fstab , man zerschiesst das
Quellsystem!!!Achtung #2: Auch SWAP oder andere Partitionen in der /mnt/etc/fstab ersetzen.Ebenso wird jedes Vorkommen der alten UUID in der /mnt/boot/grub/grub.cfg ersetzt.Dann kann man entweder von der jessie Boot-CD booten, "erweiterte Optionen - Rettungsystem" wählen,
Sprachangaben ec weiterklicken und dann grub im MBR der kopierten Platte (im Beispiel /dev/sdb )
installieren.oder einfach: # grub-install --root-directory=MOUNTPOINT DEVICEBeispiel: zu installierende Platte: /dev/sdb , das root-Filessytem (/dev/sdb1 ) mit /boot/grub
wurde gemountet nach /mnt
# grub-install --root-directory=/mnt /dev/sdbDer Device bezeichnet dabei das Ziel der Grub Installation, also KEINE Partition, sondern die Platte selbst. Bei meiner ersten Kopie sah nach dem Booten alles gut aus, leider konnte ich mich am Desktop nicht anmelden, der Anmeldebildschirm kam immer wieder. Letztendlich fand ich den Fehler: Ich hatte /tmp nicht kopiert sondern als root angelegt mit den Rechten 755 , was das Beschreiben durch
normale User verhindert. Also
# chmod 777 /tmpund das System funktioniert. Ist das alte Dateisystem noch ext3 , kann man das mit den folgenden Kommandos in ext4 konvertieren (sei /dev/sdb1 das neue, nicht gemountete Dateisystem):
# tune2fs -O extents,uninit_bg,dir_index /dev/sdb1 # fsck -fCVD /dev/sdb1Den Eintrag in der /mnt/etc/fstab kontrollieren, dieser muß dann auch auf ext4 gestellt werden. bei mir ist er das wegen dem kopierten System sowieso.
Grub neu installierenBootplatte in einen anderen Rechner mit der selben Betriebssytemversion (sonst gibtserror incompatible license )
via USB anschliessen. Diese Platte mounten, dann folgendes Kommando ausführen
# grub-install --root-directory=MOUNTPOINT DEVICEBeispiel: zu installierende Platte: /dev/sdf , das root-Filessytem (/dev/sdf1 ) mit /boot/grub
wurde gemountet nach /mnt
# grub-install --root-directory=/mnt /dev/sdfDer Device bezeichnet dabei das Ziel der Grub Installation, also KEINE Partition, sondern die Platte selbst. Die Platte kann dann ohne weiteres wieder als Bootplatte verwendet werden. Paketlisten aus- und einlesenDamit man die Pakete nicht manuell auswählen muß, kann man diese aus einem installierten Rechner auslesen und auf einmal am Zielrechner auswählen und installieren. Dies passiert nach der Installation des Grundsystems, nachdem der neue Rechner schon von der Systemplatte gebootet hat.Dazu am Quellrechner die Paketliste erstellen und mit scp auf den Zielrechner
kopieren:
# dpkg --get-selections > pakete.txt # scp pakete.txt root@spica:/rootAm Zielrechner: # dpkg --set-selections < pakete.txt # apt-get dselect-upgrade RAID mit mdadm:Im System eingebaute RAID-Systeme und Komponenten finden:# mdadm --examine --scanIm System eingebaute RAID-Systeme anhand dieser Daten zusammenbauen # mdadm --assemble --scanFalls nur eine Platte des Spiegels noch läuft, im Beispiel läuft /dev/sdd1 noch und /dev/sdc1 ist ausgefallen: # mdadm --assemble --run /dev/md1 /dev/sdd1oder RAID1 /dev/md1 mit nur einer Platte neu anlegen: # mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdd1normalerweise steht statt missing der 2. Device des Spiegels da.
Ist auf der einwandfreienen Partition ein Dateisystem mit Daten vorhanden, kann dies anschliessend direkt gemounted werden.
Um als Ersatz für die im Beispiel ausgefallene Platte /dev/sdc mit der Partition /dev/sdc1
einzuhängen, kopiert man am besten die Partitionsdaten der noch vorhandenen Platte
auf eine neue leere, die gleich gross oder grösser ist. In letzterem Fall bleibt ein Teil
unpartitioniert. Bei Platten > 2 TB muß das mit parted gemacht werden!
# sfdisk -d /dev/sdd | sfdisk /dev/sdcAusgefallene Partition einbinden: # mdadm /dev/md1 --manage --add /dev/sdc1Mit folgendem Kommando auf einer anderen Konsole kann man den Fortschritt verfolgen: # watch cat /proc/mdstat RAID mit mdadm: Booten bei Ausfall einer PlatteIn Debian jessie ist (Stand 10.12.2015) ein Bug:Bei Ausfall einer Disk des RAID 1 Root-Arrays /dev/md0 bootet jessie nicht und bleibt
auf der initramfs-Konsole stehen. An dieser kann der RAID Array manuell gestartet
werden:
An der Konsole bei (initramfs) eingeben:
(initramfs): mdadm --run /dev/md0 (initramfs): exitnun bootet der Array, das automatische Failover funktioniert aber bei Debian jessie ohne Eingriff in das Bootskript nicht. Im Internet bin ich bei serverfault.com dazu auf einen genialen Tip gestossen: Man kopiert das Skript /usr/share/initramfs-tools/scripts/local-top/mdadm , fügt für
den Fehlerfall den Einzelstart der RAID-Arrays ein und verwendet das in /etc/initramfs-tools/scripts/local-top .
Also:
# cd /etc/initramfs-tools/scripts/local-top # cp /usr/share/initramfs-tools/scripts/local-top/mdadm .Im vi habe ich die Zeile log_failure_msg "failed to assemble all arrays." durch folgenden Codeblock ersetzt:
log_warning_msg "failed to assemble all arrays...attempting individual starts" for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1); do log_begin_msg "attempting mdadm --run $dev" if $MDADM --run $dev; then verbose && log_success_msg "started $dev" else log_failure_msg "failed to start $dev" fi doneAnschliessend initramfs aktualisieren und testhalber mit einer ausgesteckten Platte booten ... voila, funktioniert! # update-initramfs -u # reboot Tastaturlayout ändernDa ich eine verschiedene Ländervarianten der X40/X41 habe, ist das öfters nach Plattenkopieren nötig:# dpkg-reconfigure keyboard-configuration Startdatei in rc.nbereits in squeeze wurde die Reihenfolge der Bootskripte auf abhänigkeitsgesteuerte Bootskripte geändert. Diese sind komplizierter aufgebaut und nüssen ihre Abhänigkeiten und "start","stop" Zweige enthalten. Ist das Startskript, im Beispiel/etc/init.d/obi1 fertig, wird es in den Bootablauf eingebunden.
Hierzu wird im Verzeichnis /etc/init.d folgendes Kommando ausgeführt:
# update-rc.d obi1 defaults TrueType Fonts (.ttf) installierernDie Fontdateien nachusr/share/fonts/truetype/ kopieren und dann mit dem font-manager (unter X11) bekanntmachen.
Das alte System mit defoma-hints,defoma-font und defoma-reconfigure gibt es nicht mehr.Zur Verwendung unter X11 müssen die Fonts nicht unter /usr/share/fonts/truetype/ liegen, für apache-FOP
schon, sonst gibts eine Exception!xfce4 Keine Buchstaben sichtbar, nur Platzhalterschon beim Anmelden ist keine Schrift erkennbar, nur rechteckige Rahmen statt Buchstaben, in der LOG-Datei/home/USERNAME/.xsession-errors
(xfwm4:6988): Pango-WARNING **: failed to create cairo scaled font, expect ugly output. the offending font is 'DejaVu Sans 10'die defekten Fonts habe ich aus /usr/share/fonts gelöscht. Daraufhin funktionierte der xfce4 wieder. Später kopierte ich das Fontverzeichnis von einer anderen Jessie Maschine, daraufhin waren alle
Schriften wieder verwendbar.
xcfe4 Desktop ist leer, es kann auch nichts neu angelegt werdender Ordner$HOME/.config/autostart war leer.Zur Behebung die Datei xfce4-settings-helper-autostart.desktop
von einem anderen Rechner kopieren und im oben genannten Ordner ablegen.
Windowmanager/Greeter neu starten# service lightdm stop # service lightdm start X41 / X41T BIOS UpdateViele meiner Rechner sind alte IBM X41 Subnotebooks, wegen deren problemlosem Einsatz mit Debian, zuverlässiger Hardware und geringem Stromverbrauch von ca 20 Watt mit 2TB USB ohne Display. Allerdings kann man ohne Änderungen am BIOS oft keine andere Festplatte einbauen, dieses Problem ist als "2010 Error" bekannt.Beim Booten des Rechners bleiben deshalb viele X41 wegen der nicht zugelassenen SSD beim Booten stehen. Ein anderer X41 (polaris) meckert zwar bei der SSD ebenfalls, bootet aber nach ein paar Sekunden. Da ein nach dem Booten ewig auf Tastendruck wartender Server nicht akzeptabel schien, suchte ich im Internet nach einer Lösung. Hier ist sie, der Großteil der Infos stammt von thinkwiki.de/2010_Error_umgehen. Ich musste ausserdem erst eine Ersatzplatte und eine uralte Windows XP CD herauskramen, da das Flashen des Controllers und des BIOS nur unter Windows funktioniert. Hier die Anleitung zum Flashen in Kurzform: Original BIOS Update Auf einem der X41 war BIOS 1.17a, bei Lenovo gibt es die Version 2.09 (Stand 26.04.2014) zum Download. Vor Flashen des Controllers muß das neueste BIOS eingespielt werden! Das von Lenovo geladene BIOS-Update Programm ausführen und den Anweisungen folgen. Embedded Controller Update Vor dem Update auf das modifizierte BIOS muß die aktuellste Version des Embedded Controllers installiert werden. Kontrolle auf der Startseite des BIOS mit der letzten Version im Lenovo Downloadbereich. Bei mir war meist Embedded Controller 1.00 auf dem X41, bei Lenovo 1.02 (Stand 26.04.2014) zum Download. Nach Einspielen des modifizierten BIOS kann kein Embedded Controller Update mehr durchgeführt werden! Wenn man die Wartezeit von 5 Sekunden akzeptieren kann und die entsprechende Option (Continue after Error) im BIOS auswählt, kann mann auf das im Folgenden beschriebene Update auch verzichten. NO 2010 BIOS Update BIOS im Intenet suchen (oder Notfalls eine eMail an mich, Adresse siehe Impressum) Das BIOS ISO wird auf eine CD gebrannt. Beim Booten von CD startet der BIOS-Updater automatisch, mit "Y" beginnt der Flashvorgang. Nach Beendigung des Flash-Vorganges wird eine Warnmeldung ausgegeben, die sinngemäß "BIOS Update fehlgeschlagen" lautet. Dies ist normal und kann ignoriert werden. X41 durch langes Drücken des Power-Schalters ausschalten. Neu booten und dabei <F1> drücken, um ins BIOS zu gelangen. Dort im Hauptmenü mittels <F9> Default-Werte laden ("Setup Defaults"). BIOS speichern und verlassen (<F10> "Save and Exit") ohne andere Einstellungen vorzunehmen. Neu booten, jetzt kann man die BIOS-Einstellungen wieder anpassen. 08.10.2014 Update Bash wegen ShellShock 2.am 30.9. gab es wohl eine neue Lücke. Test:# bash -c "f() { x() { _;}; x() { _;} <<a; }" 2>/dev/null || echo vulnerableWas bei mir Segmentation fault vulnerableergab. Da das in jessie noch nicht gefixt ist, habe ich es aus den Quellen und Patches des GNU Projektes selber compiliert:
# apt-get install gcc make bison # cd ~/ # mkdir bash # cd bash # wget https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz # while [ true ]; do i=`expr $i + 1`; wget -N https://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$(printf '%03g' $i); if [ $? -ne 0 ]; then break; fi; done # tar zxvf bash-4.3.tar.gz # cd bash-4.3 # for p in `ls ../bash43-[0-9][0-9][0-9]`; do patch -p0 < $p; done # ./configure && make && make installNeu anmelden und testen, keine Textausgabe, also ist auch der Exploit CVE-2014-6277 gefixt. 06.06.2020 Filesystemcheck von unter Debian 9/strech oder 10/buster erstellten Platten mit jessieder fsck unter jessie wirft einen Fehler, dass ein Feature des Filesystems nicht bekannt ist. Also muss ein neuerer fsck her. Je nach Architektur (amd64, i386) kommen leicht unterschiedliche Versionen zum Einsatz.Unter amd64 # wget https://launchpad.net/ubuntu/+source/e2fsprogs/1.43.5-1/+build/13199941/+files/e2fsprogs_1.43.5-1_amd64.deb # wget https://launchpad.net/ubuntu/+source/e2fsprogs/1.43.5-1/+build/13199941/+files/e2fslibs_1.43.5-1_amd64.debUnter i386 # wget http://ftp.debian.org/debian/pool/main/e/e2fsprogs/e2fsprogs_1.43.4-2+deb9u1_i386.deb # wget http://ftp.debian.org/debian/pool/main/e/e2fsprogs/e2fslibs_1.43.4-2+deb9u1_i386.debhier das i386 Beispiel mit Installation und Test # dpkg -i e2fslibs_1.43.4-2+deb9u1_i386.deb # dpkg -i e2fsprogs_1.43.4-2+deb9u1_i386.deb # e2fsck -Vliefert folgende Ausgabe: e2fsck 1.43.4 (31-Jan-2017) EXT2FS Library version 1.43.4 wird verwendet, 31-Jan-2017 Anhang Dateien/etc/sudoersWichtig, um einige Skripte aususr/local/bin/ auch als User go starten zu können:
root ALL=(ALL) ALL go ALL=/bin/mount go ALL=/sbin/ifconfig go ALL=/sbin/cryptsetup go ALL=/sbin/losetup go ALL=/bin/umount go ALL=/sbin/shutdown go ALL=/bin/fuser |