Günther Obermaiers Webseite



prokyon.vach.go-itservice.de

Lenovo T450s mit Debian 10.0 Buster

Das Ganze fing schon schlecht an: Nur mit Hängen und Würgen bootete der T450s von meinem verratzten USB-CDROM, um bei der Nachinstallation der Software ganz die Grätsche zu machen. Also Platte ausgebaut, was bei den neueren Lenovos leider mit schrauben verbunden ist und Platte in Standart PC. Dort Grundinstallation und anschliessend im T450s wieder gebootet.

Hardware:

TypT450s
CPUINTEL i7-5600U 2x2.60 GHz
Speicher12GB PC3-12800 1600 MHz DDR3L
GrakaIntel HD 4600
Netzwerk (intern)on Board: Intel 1GBit
PlatteSSD Samsung 256GB
Cardreaderintegriert SDHC/SDXC

Debian 10 Buster Grundinstallation

Netinstall CD herunterladen, ISO auf CD Brennen und Laptop damit booten, installation - Kommandozeile auswählen.
	Language:	German<enter>
		...	
	IP:		192.168.40.30
	Netmask:	255.255.255.0
	Gateway:	192.168.40.10
	DNS:		192.168.40.10
	Rechnername:	prokyon			(wird durch DNS automatisch erkannt)
	Domain:		vach.go-itservice.de	(wird durch DNS automatisch erkannt)
Passwort root ..., User: dummy, es sind keine echten User nötig, diese werden von dem alten Rechner übernommen. Im weiteren Ablauf wird die SSD (256 GB) partitioniert:
	 80,0 GB 	sda1	83		/
	 20,0 GB 	sda2	82		swap
	150,0 GB 	sda3 	83		NICHTS
	 60,0 GB 	sda4 	83		NICHTS		
bei der Grundinstallation wird als Zielssysteme:
	 Desktop
	 xfce
         druck
         ssh
	 standard
ausgewählt, User "dummy" wird später gelöscht, sonst die üblichen Systemparameter und Passwörter. Nach dem Booten kommt man via ssh erstmal nicht auf die Kiste, also muss man passwortbasierten SSH Zugang erst mal aktivieren:
in /etc/ssh/sshd_config ändert man PermitRootLogin zu
PermitRootLogin yes
Nach der Grundinstallation ist weder aptitude noch rsync oder ifconfig installiert, das wird nachgeholt:
# apt-get install aptitude net-tools rsync
Damit der neue Rechner sich wie der alte verhät, werden die Hostkeys und das root-Verzeichnis vom prokyon geholt. Vorsicht, Besitzer der Dateien kontrollieren. Wenn z.B. /root/.ssh irgendeinem anderen User gehört, kann man sich nicht mit Zertifikat verbinden (Der Owner muss root:root sein)
/root/.ssh
/root/
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
Nach der Installation Dateien anpassen, passwd,shadow und group am besten vom alten Rechener (der einer anderen Workstation):
# rsync root@RECHNER:/etc/passwd /etc/passwd.OLD
dann alle Einträge der Systemuser ec ausser den echten Benutzern (go,lw...) in der passwd.OLD löschen.
# cat /etc/passwd.OLD >> passwd
/etc/passwd
/etc/shadow
/etc/group
/etc/profile		(nur wegen export EDITOR=vi)
/etc/init.d/obi1	(inclusive cd /etc/init.d; update-rc.d obi1 defaults)
/usr/local/bin
/etc/sudoers		(kopieren)
obi1 muss je nach Einsatzzweck angepasst werden!
Damit Perlprogramme mit goit.pm arbeiten können, muss noch ein Link angelegt werden. Da das /usr/local/lib/site_perl bei mir nicht existierte, vorher anlegen, sonst entfällt die erste Zeile:
# mkdir /usr/local/lib/site_perl
# cd /usr/local/lib/site_perl
# ln -s /usr/local/bin/goit.pm .
Verzeichnisse anlegen:
# mkdir /backupNorm1
# mkdir /backupNorm2
# mkdir /backupMonthly1
# mkdir /backupMonthly2
# mkdir /backupYearly
# mkdir /homelocal		(bei Laptops)
# mkdir /homeserv		(bei Laptops)
# mkdir /homeserv/go	(bei Laptops)
# mkdir /SDCARD
# mkdir /local
Dann mit aptitude folgende zusätzliche Pakete und die unter Buster für php und perl angegebenen mit aptitude auswählen:
	abcde
	apache2
	acl (default)
	bind9
	catdoc (wegen xls2csv)
	chromium
	cryptsetup
	cups (default)
	curl
	debconf-utils
	dkms*
	dos2unix
	ekiga (FEHLT)
	enigmail
	exiftran
	eyed3
	florence	(für Tablet)
	font-manager
	ghostscript (default)
	gpg
	gimp
	git*
	gpxviewer
	gthumb
	icedove (FEHLT)
	id3
	id3v2
	imagemagick (default)
	jmtpfs
	kaffein
	lame
	laptop-mode-tools
	libapache2-mod-php7.3
	ldap-utils
	lynx
	mcrypt	
	mplayer
	multimedia-video
	mariadb-client
	mariadb-server
	nfs-kernel-server	
	nfs4-acl-tools
	ntpdate
	okular
	openssh-server  (default)
	pluma	(statt gedit)
	+ php7.3 (inclusive diverser Module siehe Allgemeines zu "Buster")
	+ perlmodule  (unter nicht-installiert -> perl, siehe Allgemeines zu "Buster")
	phpmyadmin (FEHLT)
	rawtherapee
	rsh-redone-client
	rsync
	samba (bereits installiert)
	sane
	signal-desktop
	slapd
	squid3
	squidguard
	stellarium
	totem
	uswsusp			(für s2ram)
	virtualbox (aus eigenem Repository, siehe weiter unten)
	xcftools
	xfce4 (default)
	xsane (default)
	xscreensaver
	xscreensaver-extra
entfernen:
	network-manager
Ich habe alle Pakete, die irgendeiner der Rechner antares, sgrx1 und rigel verwendet, aufgenommen, um die weiter benötigten Rechner via Plattenkopie schnell aufsetzen zu könen. Nach der Installation Passwörter für mysql, ldap ec. eingeben.

Default X-Windowsmanager ändern

Falls Gnome3 doch installiert ist, muss man den Default X-Session / X-Windowmanager auf xfce4 ändern. Diesen im Auswahlmenü eintragen:
# update-alternatives --config x-session-manager

Startdatei in rc.n

bereits in squeeze wurde die Reihenfolge der Bootskripte auf abhänigkeitsgesteuerte Bootskripte geändert. Diese sind komplizierter aufgebaut und müssen ihre Abhänigkeiten und "start","stop" Zweige enthalten. Der Start Teil in meinem Beispiel (komplette Datei hier im Anhang)
mount 192.168.40.10:/home /home
mount -o remount -t nfs4 192.168.40.10:/home /home
mount /dev/sda3 /local
df -k
ifconfig eth0:1 10.0.0.1 netmask 255.255.255.0   (für Virtualbox)
ifconfig eth0:2 10.0.2.1 netmask 255.255.255.0   (für Virtualbox)
echo "ok"
Ist das Startskript fertig, wird es in den Bootablauf eingebunden. Hierzu wird im Verzeichnis /etc/init.d folgendes Kommando ausgeführt:
# update-rc.d obi1 defaults

Stromsparen

PC geht nach Einsatz von powertop von selbst in den standby-Modus. alle Modi auf "gut", ausser Maus und USB, da sonst dauernd die Maus hängt.
Aus dem S3 Schlafmodus (standby suspend, suspend to RAM) ist der Rechner in 2 Sekunden da und der Verbrauch während des Standbys beträgt ca 2 Watt! Aus dem S4 Ruhezustand (hibernate, suspend to disk) muss der Rechner booten und das dauert trotz der SSD ca 8 Sekunden, der Verbrauch hierbei ist mit meinen Mitteln nicht mehr messbar. Wegen der schnelleren Bereitschaft habe ich in der "Energieverwaltung - bei Netzbetrieb"
Computer schlafen legen nach:	15 Minuten
und unter "Energieverwaltung - Erweitert"
Schlafmodus für Computer: 	Standby (also S3)
Schlafmodus für Monitor: 	Standby
Bildschirm sperren bei Ruhe:	JA
ausgewählt.

User und Rechte

Benutzer und Gruppen so anlegen, dass für jeden User eine Gruppe mit GID=UID existiert. Zugriff auf gemeinsame Resourcen kann dann einfach mittels Gruppenzugehörigkeiten geregelt werden:
/etc/passwd
go:x:801:801:Guenther Obermaier:/home/go:/bin/bash
USER:x:899:899:USER:/home/USER:/bin/bash
common:x:890:890:Common User:/home/common:/bin/false
Neben der normalen Gruppe für gemeinsame Daten, habe ich wegen den Kindern noch Gruppen eingerichtet, damit diese nur auf altersgerechte Inhalte vom Server zugreifen können: /etc/group
go:x:801:go,www-data
USER:x:899:USER,www-data
child06:x:881:common,go,USER,CHILD12,CHILD06
child12:x:882:common,go,USER,CHILD12
child16:x:883:common,go,USER
adult:x:888:common,go,USER
common:x:890:common,www-data,go,USER,CHILD12,CHILD06
User www-data ist in jeder Usergruppe, deren korrespondierender User httpd-Unterverzeichnisse besitzt die via Webbrowser erreichbar sein sollen.

Apache 2

site-available und site-enabled von altem Rechner/Server kopieren:
# rsync --delete -avurtHAX root@wega:/etc/apache2/sites-available/ /etc/apache2/sites-available/
# rsync --delete -avurtHAX root@wega:/etc/apache2/sites-enabled/ /etc/apache2/sites-enabled/
Damit die Seiten unter /home/go/httpd wieder funktionieren, muss dieses Verzeichnis in der /etc/apache2/apache2.conf freigegeben werden:
<Directory /home/go/httpd>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>
Weitere Links bei Bedarf in /etc/apache2/sites-enabled mit der Endung .conf erzeugen in der Art
# ln -s ../sites-available/sece-it-dev.local 001-sece-it-dev.local.conf
/etc/hosts anpassen, damit die Entwicklungsseiten auf spica nicht im Internet gesucht werden:
127.0.0.1	sece-it-dev.local
In den Proxy-Einstellungen des Browsers muss die verwendete Domain ".local" vom Proxys ausgenommen werden
Ich habe die Aliase in den einzelnen sites-available so gestaltet, dass diese auf allen wichtigen Rechnern ohne weitere Veränderung passen sollten. Aussehen der Datei im Anhang
Da ich testhalber über Reverse Proxy auf eine Webcam zugreife, muss der mod_proxy aktiviert werden:
# a2enmod proxy
# a2enmod proxy_http
# systemctl restart apache2
Falls der Apache (der ein anderer Dienst) nicht startet, kann man mit
# systemctl status apache2.service
oder
# journalctl -xe
Details erfahren

Datenbanken

Prinzipiell werden die SQL-Dateien auf den neuen Rechner kopiert, die Datenbanken erzeugt, Grants eingerichtet und dann die SQL-Dateien eingespielt:
# mysql -uroot -pPASSWD -e "CREATE DATABASE DBNAME DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;"
# mysql -uroot -pPASSWD -e "GRANT ALL PRIVILEGES on DBNAME.* TO USER@localhost identified by 'PASSWD';"
# mysql -uUSER -pPASSWD DBNAME < /tmp/DBNAME.sql 
Ich habe das ganze in einem Skript namens restoreDB verpackt, das alle nötigen Datenbanken des jeweiligen Rechners erzeugt und befüllt. Dazu müssen unter /home/go/backupDBs/RECHNERNAME alle für diesen Rechner vorgesehenen Datenbanken in der Form DBNAME.sql liegen.

WLAN

um WLAN in Betrieb zu nehmen, braucht man beim T450s einen Firmwareblob. Ausserdem muss WLAN im BIOS aktiviert sein. Dann sieht man mit iwconfig die WLAN-Hardware. mit ip link set interface up wird es gestartet. Da dies bei mir nicht anstandslos funktionierte, verwendete ich den im Internet gefundenen Trick mit rfkill. Anschliessend kann man mit iwlist scan alle Netzwerke in Reichweite scannen.
# apt-get install firmware-iwlwifi
# iwconfig
# ip link set wlp3s0 up
# rfkill unblock all
# iwlist scan

zoom installieren

durch die Corona-Krise findet ja kein Schulunterricht statt. Damit die Kinder sic trotzdem sehen, startet die Lehrerin meiner grossen Tochter jeden Tag eine Videokonferenz mit zoom, was es zum Glueck auch für Linux gibt. Datei von https://zoom.us/download herunterladen und das Debian Paket mit dpkg installieren. bei mir waren aber Abhängigkeiten nicht erfült, die ich dann vorher installierte. Anschliessend hat jeder Nutzer am Rechner zoom in seinem Menue, unter Internet
# apt-get install libgl1-mesa-glx libxcb-xtest0 ibus
# dpkg -i /home/common/software/debian/zoom_amd64.deb

TrueType Fonts (.ttf) installierern

Die Fontdateien nach usr/share/fonts/truetype/ kopieren. Zur Verwendung unter X11 müssen die Fonts nicht unter /usr/share/fonts/truetype/ liegen, für apache-FOP schon, sonst gibts eine Exception! Eigenbau: Das Skript deploysbinCommon tolocal all fonts erledigt das kopieren, wenn die Fonts unter /home/USERNAME/data.go/Projekte/sbinCommon/fonts/ liegen.

xfce4 Keine Buchstaben sichtbar, nur Platzhalter

schon beim Anmeldebildschirm ist keine Schrift erkennbar, nur rechteckige Rahmen statt Buchstaben. Unter jessie hatte ich das Problem auch, da stand dann 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'
womit ich das Problem durch löschen des entsprechenden Fonts lösen konnte. Bei buster war nichts finden, also löschte ich alle Fonts und kopierte sie von einem anderen System (mit buster).

Daten von/zu Android Handy übertragen

nachdem die MTP-Filesystemerweitrung (jmtpfs) installiert ist (und neu gebootet wurde), konnte man bei stretch über den Dateimanager direkt auf das kann das Android Smartphone zugreifen, wenn man die Verbindung am Handy erlaubte, das haut bei mi r nicht mehr hin.
Aber so gehts: (als root) das Modul fuse laden, als User einen Mountpoint anlegen und MTP starten:
# modprobe fuse
$ mkdir /home/go/android/mnt
$ jmtpfs /home/go/android/mnt
am Handy erscheint nach dem Verbinden mit dem PC eine USB Auswahl, bei der man MTP wählt. Anschliessend wechselt man (z.b. im Dateimanager oder Terminal) nach /home/go/android/mnt und kann Daten in beiden Richtungen übertragen. Unmounten funktioniert auf der Kommandozeile mit
$ fusermount -u /home/go/android/mnt
(User oder root?) Ich habe eine Weile erfolglos rumprobiert und verwendete dabei ein breites USB Kabel zum Anschliessen von Festplatten, was zwar in mein Samsung S5 passt, aber es war kein Datentransfer möglich (an zwei buster-Rechnern versucht).

Netzwerkdrucker/Drucker installieren

Alle meine aktuellen Drucker haben Netzwerkanschluss, z.B. der Samsung C480 oder der HP LaserJet P2055DN. Letzterer ist obendrein mit einer Duplexeinheit versehen, sehr schnell und druckt sauber. Als Gebrauchtgerät ist er mit 30000 gedruckten Seiten für etwa 100 Euro günstig zu haben.
Konfiguration: Die eingestellte IP Adresse sieht man auf der ausgedruckten Konfigurationsseite. Unter dieser ist der integrierte Webserver erreichbar.
Über das Bedienfeld am Drucker kann die Netzwerkkonfiguration ebenfalls eingestellt werden. <OK>
Netzwerkkonfig auswählen <OK>
CFG TCP/IP <OK>
BOOTP: nein <OK>
DHCP: nein <OK>
IP Byte1 <OK>
mit Pfeiltasten Wert einstellen: 192 <OK>
IP Byte2,3,4 analog auf 168, 40, 15 <OK>
Netmask SM Byte1,2,3,4 255, 255, 255, 0 <OK>
Gateway GW Byte1,2,3,4 192, 168, 40, 15 <OK>
als Gateway nehme ich den Drucker selbst, ich will ein möglichst kleines Risiko eingehen, dass er "nach Hause telefoniert"
mit den Druckereinstellungen aufnehmen: "Einstellungen -> Druckereinstellungen -> + Hinzufügen" Entweder:
Netzwerkdrucker
AppSocket/HP JetDirect
  Host:			printer1
  Port:			9100
oder direkt als Uri
Adresse eingeben
  Geräte URI:		socket://printer1:9100
In beiden Fällen weiter mit
Drucker aus Datenbank auswählen
  Hersteller:		HP
  Modell:		HP LaserJet P2055
  Treiber:		HP LaserJet P2015 - CUPS+Gutenprint v5.2.11
Drucker beschreiben
  Kurzname:		P2055
  Beschreibung:		P2055
  Ort:			LEER    
Installation durch <Anwenden> abschliessen. Nun kann der Drucker aus allen Applikationen benutzt werden.
Soll z.B. ein Samsung CX480 via USB angeschlossen werden, muß vorher die Treibersoftware von Samsung heruntergeladen werden, unter jessie ist dieser Drucker bei den voreingestellten nicht enthalten.
Als Printerdevice dient dabei
  Gerät:		usb://Samsung/C48x%20Series?serial=08GEB8KG7B00LLA&interface=1
oder URI:
  Geräte URI:		ipp:/localhost/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.2

Netzwerkdrucker/Drucker Installation kopieren

Rein praktisch kopierte ich diesmal einfach /etc/cups von einer stretch-Maschine:
# /etc/init.d/cups stop
# rsync -avrtHAX --delete QUELLRECHNER:/etc/cups/ /etc/cups/
# /etc/init.d/cups stop
Wichtig: Kein -avurtHAX und --delete!

Eclipse

ich habe einfach keine vernünftige Eclipsevariante mit PHP-Unterstützung gefunden und kopierte einfach das System eines Kollegen, der das irgendwann selber hingepfriemelt hatte:
# rsync -avrtHAX --delete QUELLRECHNER:USERHOME/eclipse/ /home/go/eclipse/
# rsync -avrtHAX --delete QUELLRECHNER:USERHOME/.eclipse/ /home/go/.eclipse/
# chown -R go:go /home/go/eclipse
# chown -R go:go /home/go/.eclipse
fertig ...

Signal Desktop

zum komfortablen Tippen und Bilder anhängen.
# curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -
# echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list
# sudo apt update && sudo apt install signal-desktop

Fotos/Videos ec von defekter SD-Karte retten

eine Marken-SD Karte war nach Entnahme aus der Videokamera nicht mehr lesbar,
error mounting /dev/sdb1 at /media/go/3634-3934: Unknow error when mounting /dev/sdb1
kam als Antwort. Der fsck lieferte:
Checking file system on /dev/sdb1.
ERROR: unexpected entry type 0x85 after 0x85 at 1/3.
File system checking stopped. ERRORS FOUND: 1, FIXED: 0.
Ich installierte also entsprechende Rettungssoftware, praktischerweise bei Debian direkt dabei. Anschliessend erzeugte ich aus der defekten Karte ein Dateiimage und versuchte das mit tsk_recover -a SDCARD_DEFEKT.iso SDCARD.RECOVER auszulesen. Da tsk_recover die Verzeichnisstruktur und vor allem die Dateinamen mit restauriert, war das meine erste Wahl. Leider erzeigte es zwar die Verzeichnisstruktur, konnte aber keine Dateien auslesen. Also verwendete ich photorec, was neben Photos auch Videos und Office-Dokumente restaurieren kann, aber leider keine Dateinamen. Aber funktioniert hat es jedenfalls!
# apt-get install gddrescue sleuthkit testdisk
# cd /home/local/
# ddrescue --force /dev/sdc1 SDCARD_DEFEKT.iso ddrescue.log
# photorec SDCARD_DEFEKT.iso

was nicht geht:

der SD-Kartenleser in meinem X201s hat mich nie im Stich gelassen, aber der RTS5227 getriebene im T450s funktioniert anscheinend unter manchen Randbedingungen nicht. Verschiedene mehr oder weniger komplizierte Anleitungen, bisher kein Erfolg! Am vielversprechentsten schien mir https://github.com/astyonax/patched-RTS5227-5229, aber auch das funktionierte nicht. Zwar konnte ich das Modul laden, aber der Kartenleser blieb tot.

### STAND ###

Virtual Box installieren

mit VirtualBox (Download) kann man unter Linux andere OSS in virtuellen Umgebungen laufen lassen, als Gastsysteme kommen dabei z.B Linux, Windows, OS/2 oder BSD in Frage. Auf Arbeitsstationssrechnern kann man damit unter anderem Windowsspiele installieren oder Anwendungen, denen man nicht vertraut, in einer Art Sandbox verwenden. Unter jessie ist die Virtual Box direkt aus dem Repository verfügbar, es muss keine extra Quelle in der /etc/apt/sources.list angegeben werden. Zumindest glaube ich das, mit der obigen /etc/apt/sources.list gehts jedenfalls.
Die virtuellen Maschinen werden aus dem Userverzeichnis nach /local kopiert, da ich sie auf den bisherigen Rechern wie antares schon verwendete. Aufpassen muss man nur, wenn der neue Rechner wie spica in einem anderen Netzwerk verwendet werden soll. Die Virtualbox selber ist über das 10.0.2.0 Netz angebunden und kein Problem, aber der Browser innerhalb der Box hat 192.168.80.1 als Proxy eingetragen, das muss für Vachendorf auf 192.168.40.10 geändert werden.
# cp /home/go/.VirtualBox/*.vdi /local
# cd /local; chmod 660 *.vdi; chown go:common *.vdi
Damit der Linux-User virtualBox benutzen kann, muss er Mitglied in der Gruppe vboxusers sein. Also folgenden Eintrag, im Beispiel heissen die User go und uw in die Datei /etc/group einfügen bzw anpassen:
vboxusers:x:116:go,uw

Windows XP unter virtualBox installieren
Nun kann man nach einer Neuanmeldung virtualBox vom Startmenue "Anwendungen - Systemwerkzeuge" aus starten. In der Oberfläche legt man eine neue Virtuelle Maschine an, benennt diese, wählt als Gastsystem Windows XP aus. Anschliessend stellt man den Arbeitsspeicher der virtuellen Maschine auf mindestens 256 MB ein und wählt einen Ort für die Virtuelle Platte des Gastsystems. Bei Auswahl einer festen Systemgrösse dauert der Anlegevorgang etwas!
Man kann jeder virtuellen Maschine vier Netzwerkkarten zuweisen, normalerweise wird eine erzeugt. Im Host-Bereich des Rechners wird von Virtualbox automatisch ein DHCP Server erzeugt, der den virtuellen Gastsystemen IP-Adressen und DNS-Server zuweist. Verwendet man den Adapter im Modus "NAT", wird auch eine Art Router erzeugt, der sich um das Routing der IP-Pakete vom Gastsystem in das Netzwerk des Hostsystems kümmert.
Der DHCP Server weisst z.B. der ersten Netzwerkkarte des Clientsystems eine IP aus dem Netz 10.0.2.0 (also z.B. 10.0.2.15) zu, dem Host 10.0.2.2. Beim Installieren des XP-Hosts stellt man dessen automatisch erkannte Netzwerkkarte dann auf IP: "automatisch beziehen" und DNS-Server: "automatisch beziehen" ein. Dann koennen Browser und SMB Clients vom Gastsystem aus auf Lokales Netzwerk und Internet zugreifen. Achtung: der virtuelle Router routet keine ICMP Pakete, ping funktioniert vom Gastsystem aus also nicht!

virtuelle Maschinen kopieren
Die Metainformation zu Virtualbox steckt (voreingestellt) in den Dateien $HOME/.VirtualBox/VirtualBox.xml und $HOME/.VirtualBox/Machines/$MACHINENAME/$MACHINENAME.xml. Da das Anlegen der virtuellen Maschine mit der GUI von VirtualBox schnell geht, habe ich dort eine weitere Instanz #namens XPoffice angelegt. Flugs die bereits mit XP installierte Maschine in eine zweite Datei namens XPoffice.vdi kopiert und die Einstellungen in der VirtualBox.xml und XPoffice.xml angepasst. In der XPoffice.xml habe ich die Zeile von der vorhandenen XPtest.xml kopiert, damit die Harddisk-ID stimmt.
     <HardDiskAttachment bus="ide0" device="master" hardDisk="{6b64da54-d42f-4157-9c86-3aeaa036bc45}"/>
Beim Start - o Graus - eine Fehlermeldung wegen doppelter HDID - Mist, zu einfach. Suchmaschine angeschmissen, nach einigen Tips mit Hexedit in die XPoffice.vdi rein. Dort habe ich einfach nach bc45 gesucht und bin ca bei Position (hex!) x190 fündig geworden. Ich habe einfach das letzte Byte von 45 auf 46 geändert und dies in der XPoffice.xml nachgezogen, also:
     <HardDiskAttachment bus="ide0" device="master" hardDisk="{6b64da54-d42f-4157-9c86-3aeaa036bc46}"/>
Analog auch in der VirtualBox.xml:
        <HardDisk type="normal" uuid="{6b64da54-d42f-4157-9c86-3aeaa036bc46}">
          <VirtualDiskImage filePath="/local/VirtualBox/XPoffice.vdi"/>
        </HardDisk>
Die VirtualDiskImage Zeile hatte ich schon vorher angepaßt, um die umfangreichen VDI-Dateien vom Netzlaufwerk auf ein lokales zu verschieben. Dies funktioniert bei korrekten Verzeichnissrechten problemlos.

User go auf der virtuellen Maschine einrichten, am besten das selbes Passwort wie auf dem smbserver (sgrx1, wega) verwenden.
mit dem "Windows Explorer - Extras - Netzwerklaufwerk verbinden"
Laufwerk:          Z:
Ordner:	           \\smb\smbexport
Wiederherstellen:  JA
Der DNS Name smb wird vom jeweiligen DNS Server auf den richtigen smbserver (sgrx1, wega) aufgelöst.

Windows 7 intallieren
ich verwendete eine alte 60 GB SSD, die vom Windows-Installer neu partitioniert und mit NTFS formatiert wurde. Die Neuinstallation war nötig, weil ich eine spezielle Fotobuchsoftware in der Virtual Box mit Windows XP und dem aktuellen Adobe AIR nicht zum Laufen bekam. Nach der Grundinstallation von Windows und Reboot:
- Teiber für Graphik und Netzwerk installieren (von Asrock für das H81M)
- klassische Ansicht für Desktop einstellen
- Bildschirmauflösung auf 1280x1024
- IP-Adresse anpassen
- Netzwerklaufwerk zum Server einrichten
- Adobe AIR V22 installieren
- Fotobuchsoftware installieren
Dann muß der automatische Upgrade auf Windows 10 verhindert werden. Dazu wird der regedit gestartet und zu "HKEY_Local_Machine/Software/Policies/Microsoft/Windows" gewechselt. Dort, falls nicht vorhanden den Ordner "WindowsUpdate" neu anlegen. In diesem Ordner den Key "DisableOSUpgrade" als DWORD-Eintrag erzeugen, doppelklicken und den Wert 1 eintragen.
Nach einem Funktionstest der Software kann die Platte so verwendet werden. Oder:

Windows 7 Platte in ein Image für VirtualBox konvertieren
Mit dem bei Microsofts Sysinternals kostenlos verfügbaren Programm Disk2VHD kann ein Image erzeugt werden, das direkt in der Virtual Box unter Jessie verwendet werden kann, sogar die Netzwerklaufwerke und der Internetzugriff der Fotobuchsoftware funktionieren ohne Anpassung. Das Programm wird direkt im laufenden Betrieb gestartet und schreibt das Image. Wichtig, den Haken (zumindest bei der von mir verwendeten Version 2.01 von Disk2VHD) für das VHDX Format abwählen, damit kann die VirtualBox nicht umgehen. Das gespeicherte VHD Image wird in der VirtualBox bei "Neu"-"vorhandenes Image" auswählen angegeben. Das Image (14.7 GB) sollte wegen der Performance am Besten lokal auf der System-SSD liegen.

Workstation klonen

nachdem ich in Augsburg und Vachendorf ebenfalls eine Workstation stehen habe, erzeugte ich nach der Installation mehrere Kopien derselben. Das Klonen des Systems im Betrieb ist bei der Dokumentation zu buster beschrieben. Nach der Anpassung der UUID ec müssen die selben Anpassungen wie bei der Rechner umbenennen oder IP Adresse änderndurchgeführt werden. Weiterhin werden die Drucker je nach Standort neu installiert, wie hier. So entstand:
  • antares.ulm.go-itservice.de
  • pollux.ulm.go-itservice.de
  • canopus.ulm.go-itservice.de
  • capella.aug.go-itservice.de
  • sirius.*.go-itservice.de
letzterer ist ein Lenovo X201s Laptop, der trotz komplett abweichender Hardware problemlos funktionierte. Dort nahm ich wegen dem mobilen Einsatz Abweichungen vor, siehe sirius, mit verschüsselter /home Partition und Daten auf der herausnehmbaren, ebenfalls verschlüsselten SDHC Karte.

Plattenplatz freimachen

Um einen Klon der Workstation auf der 13,5GB grossen Rootpartition einer 16GB Platte unterzubringen, muß ich die 6 Monate in Betrieb befindliche Installation bereinigen, sie war inzwischen auf 17,2 GB angewachsen, wobei allerdings 7,7 GB auf die MYSQL-Datenbank entfielen.
Alte Kernel und Header löschen, der Einzeiler stammt von Christoph Langner und brachte 0,5 GB:
# dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Das selbe Resultat bringt apt-get autoremove, was ich auf wega testete.
nicht mehr benötigte Pakete löschen brachte 0,01 GB:
# aptitude purge ~o
Paket cache läschen, das brachte 4,0 GB:
# apt-get clean
Letzteres bringt vor allem bei Systemen mit "Testing" oder "SID" wegen der zahlreichen Updates viel Speicher.

CDs rippen und in MP3s wandeln

mit aptitude lame, abcde installieren. Bei Benutzung von abcde und Proxy: export HTTP_PROXY="proxy.xxx.de:3128"
Die Datei /etc/abcde.conf sieht z.B. so aus:
OUTPUTDIR="$HOME/mp3"
OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} ${TRACKFILE}'
VAOUTPUTFORMAT='${ALBUMFILE}/${ARTISTFILE}-${ALBUMFILE}-${TRACKNUM}-${TRACKFILE}'
# ergibt variable Bitrate:
LAMEOPTS='--preset standard'	
PADTRACKS=y
Auslesen, encodieren ec. der CD mit:
$ abcde -N -g -d /dev/cdrom -a read,encode,tag,move,playlist,clean -o mp3  -x
CD-Schublade via bash öffnen (1.) und schliessen (2.):
$ eject /dev/cdrom
$ eject -t /dev/cdrom