Herinstallatie van Windows 10

Minister Weyts had 10.000 laptops beloofd, en zoals bij alle beloftes van de Vlaamse overheid blijken daar toch meer haken en ogen aan te zijn dan gedacht en moeten gemeentes en scholen dus zelf de handen uit de mouwen steken. Om een lang verhaal kort te maken, sinds kort kampeert hier af en toe een stapeltje laptops dat dringend moet voorzien worden van Windows 10.

Een eerste actie is uiteraard een grondige reiniging, want veel systemen hebben zoals dat heet al wat “patina”, en dat is niet zo plezant voor nieuwe gebruikers. Bovendien kan het nooit kwaad om al het stof uit de ventilator te blazen (niemand verbrandt graag zijn of haar vingers aan een laptop). Ook de hardware wordt best eens bekeken, want hoewel Windows 10 niet veel eisen stelt, is 4GB RAM en een beetje een recente CPU wel een noodzaak.

Opruimen van het systeem

Harde schijven gaan kapot, en hoe ouder het systeem, hoe groter die kans. In principe is het dus best om een nieuwe schijf te voorzien, maar dat is niet altijd mogelijk. Sowieso moet de persoonlijke data gewist worden, en daarvoor gebruiken we shred, een tooltje dat om de meeste Linuxdistributies wel aanwezig is. Ik gebruik SystemRescueCD vanop een USB-stick, wat geweldig werkt.

Booten vanop USB wil zeggen dat je moet proberen in het bootmenu van de laptop te geraken. Dat kan meestal door F1, F2, F12 of ESC te duwen, of een combinatie ervan. Google is your friend! SystemRescueCD is een Amerikaans product, dus je werkt standaard in Qwerty. Er zijn in België niet zo veel laptops met Qwerty, en het is wat moeilijk om echt “blind” te typen. Dus veranderen we de layout met het setkmap-commando en we kiezen voor be-latin1.

Om te weten welke disk je moet wissen gebruik je fdisk -l voor de lijst. Normaal is het /dev/sda wanneer je laptop maar één harde schijf heeft. Welke het ook is, met dit commando wordt de volledige schijf 3x overschreven met willekeurige data (na 1x is er al niets meer leesbaar). Dit kan even duren.

shred -n 3 -v /dev/sda

Installatie van Windows 10

Natuurlijk moet er wel Windows geïnstalleerd worden, en dat is iets moeilijker maar niet onmogelijk. Om te beginnen moet op de laptop die je aan het behandelen bent een recente (Windows 7 of hoger) versie van Windows (legaal) geïnstalleerd zijn, anders heb je een productcode nodig. Om Windows te kunnen installeren moet je ook een USB-stick maken (vanop een Windowsmachine). Neem er één met meer dan 8GB aan ruimte, want Windows is nogal uitgebreid.

Verdere instructies voor het aanmaken van de stick staan op de website van Microsoft; let erop dat je zowel Home als Professional kan installeren en kiest voor zowel de 64bit als de 32bit-versie (voor oudere PC’s). <++>

Na het geduldig wachten tot alle data meerdere malen is overschreven (afhankelijk van de snelheid van de schijf kan dit een paar uur duren) kan de installatie beginnen. Steek de USB-stick in de computer en herstart (nog maar eens). Haal die met SystemRescueCD er uit of je bent weer vertrokken … De installatie van Windows 10 is vrij eenvoudig, gewoon voldoende op OK klikken.

Je moet de versie van Windows 10 kiezen die je moet installeren, ga daar voor Windows 10 Home (tenzij er een Professional al was geïnstalleerd, je kan met de code voor de ene niet de andere installeren). De N-versies zijn zonder mediaspeler, die wil je niet. Je moet ook zorgen dat je kiest voor Enkel Windows installeren, Windows herstellen werkt sowieso niet want je hebt net de oude installatie naar de Great Bit Bucket in the Sky verwezen. Zorg dat de taal is ingesteld op Nederlands (Nederland), maar de rest op Nederlands (België), zeker de toetsenbordindeling (anders mag je weer in Qwerty werken).

Bij het aanmaken van partities kan je gewoon op Nieuw klikken en de volledige schijf toewezen. Tenzij je met servers werkt heeft een opdeling niet veel zin en maakt het er voor gebruikers niet eenvoudiger op. De installer zal zelf een aantal extra partities (automatisch) aanmaken, die kan je gewoon laten doen.

Wanneer je zo ver bent dat hij vraagt om je productcode, klik op Ik heb geen productcode. Met duistere magie zal Windows uit de bestaande installatie de licentie voor de laptop afleiden. Ik heb geen idee hoe, maar het werkt.

Op een gegeven moment zal het systeem herstarten (het blijft Windows). Ik heb dat vrijwel iedere keer gemist (ik blijf er niet bij, ik kom af en toe een paar knopjes indrukken), maar het gebeurt wel. Nu kan het voorkomen dat je plotseling het beginscherm van de installatie (kies toetsenbordindeling en taal) terug ziet. Dit is normaal en wil niet zeggen dat de installatie mislukt is, maar dat hij vanop de USB-stick aan het opstarten is in plaats van op het systeem. Dit is eenvoudig op te lossen: computer uitzetten en USB-stick er uit halen, hij is toch niet meer nodig. Zonder de USB-stick kom je wel in fase 2 (of 1A, zo u wil) van de installatie terecht.

Configuratie

De volgende stappen zijn veel klikwerk. Na veel spinning wheels zal hij vragen om te verbinden met ’t internet. Je hebt internet nodig voor de rest van de installatie, dus hang hem hier maar aan het netwerk. Ik kies voor een speciaal provisioning-netwerk, maar ja, dat ben ik natuurlijk. Verder klikken en veel geduld tot je komt bij het aanmaken van een gebruiker.

Bij Windows 10 moet je een Microsoft-account aanmaken, maar je kan natuurlijk geen e-mailadres van jezelf (of van de persoon voor wie de laptop bestemd is) gebruiken, want dan is hij “van jou”. Ik ben sowieso geen fan van online accounts voor offlinesystemen, maar voor een PC die je niet zal houden en waarvan je niet weet wie hem zal gebruiken, is dat helemaal een probleem. Gelukkig is het na de installatie wel mogelijk om de online account te verwijderen en een lokale gebruiker in te stellen. Tijdens de installatie heb je geen keus; kies voor een Nieuwe Account en een Nieuw E-mailadres Aanmaken. Ik neem iets tijdelijks dat op niet veel slaat (het type van de laptop). Geef een wachtwoord in en stel een pincode in. Noteer die goed of je kan straks niet aanmelden.

Uiteraard klik ik nee op alle trials (Office 365) en vragen om persoonlijke data door te sturen (te veel om op te noemen). Ten langen leste kom je eindelijk uit op het bureaublad van Windows 10. Hoera!

Of toch niet. Eerst nog wisselen naar een lokale gebruiker. Ga naar Uw Accountgegevens en ga door de stappen van In plaats daarvan aanmelden met een lokale gebruiker. Een paar klikken verder en et voila, we hebben onze lokale gebruiker. Wel nog even de aangemaakte e-mailaccount uit de meegeleverde Outlook halen en je bent klaar.

Klaar is natuurlijk veel gezegd. Er zijn nog updates te installeren en er is nog Firefox te installeren, maar op zich is hij vanaf die stap bruikbaar. Alweer een burgerplicht vervuld!

Proximus TV & Ubiquiti

Ja, ook wij zijn voor de bijl gegaan. Na enkele jaren geleefd te hebben als “cord-cutter” gaan we nu toch terug televisie binnenhalen, maar dan wel van Proximus. Er komt ook internet bij, en dus moeten we dat laten werken met onze setup, die, zoals het een echte systeembeheerder betaamt, een stuk complexer is dan waarschijnlijk nodig. Maar het kan, dus waarom zouden we het niet doen?

Lees verder “Proximus TV & Ubiquiti”

Wachtwoord Windows XP/Vista resetten

Een systeembeheerder komt met een breed scala en technologieën, de ene al wat meer au courant dan de andere, in aanraking, zeker wanneer die ook nog eens oude hardware verzamelt.

Zo ook nu: geïnspireerd door een andere Twitteraar en in een vlaag van nostalgie ga ik een PC uit de tijd van toen proberen terug aan de praat te krijgen, om zo te gamen alsof het weer helemaal 2005 is. En dat wil zeggen, Vista of XP. Toevallig staat op het stuk hardware dat door een goede wind mijn richting uitgeblazen is het vermaledijde Windows Vista; en daar beginnen we dus mee.

Lees verder “Wachtwoord Windows XP/Vista resetten”

Download & Extract

Iedereen kent het: ontelbare .tar.gz-bestanden downloaden en uitpakken om één of andere applicatie te installeren. De klassieke manier is een combinatie van wget en tar xzf, maar het kan ook in één commando, zonder een “tijdelijk met permanent karakter”-bestand (want wie ruimt al die downloads ooit op? Ik niet in ieder geval).

curl https://extdist.wmflabs.org/dist/extensions/PagedTiffHandler-REL1_32-f06ecc9.tar.gz | tar xz

Voer dat uit in de locatie waar de uitgepakte bestanden moeten staan en voila, mission accomplished!

Verzenden vanaf een forward e-mailadres

Ik heb een e-mailadres dat geforward wordt naar mijn “normaal” e-mailadres. Nu was het onlangs nodig om een bericht vanaf dat adres te versturen. Helaas vond mijn mailserver dat geen goed idee, en weigerde hij pertinent.

De oplossing was simpel. In de client moet je de forward instellen als Van (i.e. pieter@example.org), en op de server moet je het adres toevoegen aan smtpd_sender_login_maps in /etc/postfix/main.cf (in mijn geval in een apart bestand):

pieter@example.org pieter@mail.helptux.be

Nog even postmappen (enkel wanneer het een apart bestand is), server herstarten en klaar.

mod_rewrite, Let’s Encrypt en een vervelend probleem

Ik ben een fervent aanhanger van Let’s Encrypt, en van het versleutelen van verkeer in het algemeen. Al mijn publieke en private sites hebben dus een certificaat, dat bij voorkeur automatisch vernieuwd wordt.

Maar al een tijdje is er een probleem met één van die sites (een Mattermostserver achter een Apache reverse proxy), waarbij het hernieuwen van het certificaat (via cron) om de één of andere reden faalt. Op zich was er met DNS en de configuratie van de webserver niets mis: die was identiek aan alle andere systemen.

Lees verder “mod_rewrite, Let’s Encrypt en een vervelend probleem”

Environment variables in wsgi-applicaties

Soms heb je een environment variable nodig in een wsgi-applicatie, zoals bijvoorbeeld LD_LIBRARY_PATH omdat een bepaalde C-bibliotheek niet beschikbaar is.

De normale manier om dat te doen is via mod_env en SetEnv in de VirtualHost-definitie, maar voor wsgi-applicaties werkt dat niet, omdat die gestart worden voor de eerste request. SetEnv wordt enkel uitgevoerd bij de eerste request naar een site.

Je moet die variables meegeven aan het apache (httpd)-proces zelf, met dien verstande dat ze dan voor alle websites en webapplicaties beschikbaar zijn (wat misschien niet de bedoeling is). Op Ubuntu-gebaseerde systemen moet dat in /etc/apache2/envvars, op RedHat-gebaseerde systemen gebruiken /etc/sysconfig/httpd:

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/apa/lib"

Een procesherstart later zou de variable moeten beschikbaar zijn.

Puppetmodules in RubyMine

In RubyMine, een uitstekende IDE uit de Jetbrainsstal, kan je Puppetmodules ontwikkelen (de taal is ondersteund), maar je moet enkele dingen in het achterhoofd houden.

Zo eentje heb ik vandaag ontdekt. Opdat RubyMine automatisch de naam van variabelen, functies en klassen uit jouw module zou aanvullen, moet je ervoor zorgen dat ze op één of andere manier door heeft dat je een module aan het ontwikkelen bent.

De oplossing is eenvoudig en elegant: voeg een metadata.json-bestand toe en zorg ervoor dat de structuur van de module overeen komt met de documentatie.

Een kleine moeite, een wereld van verschil.

mysql op Ubuntu 16.04

Groot was de (mijn) consternatie toen ik probeerde om op een blauwe maandag (het zal eerder een zaterdag geweest zijn, maar goed) een database aan te maken voor één of ander project. Normaal is dat niet zo moeilijk: inloggen als root, database aanmaken et voilà, Bob’s your uncle!

Maar niet dus. Hoewel ik het mij niet kon herinneren, bleek de mysql server al geïnstalleerd te zijn en, nog vreemder, er was een rootwachtwoord ingesteld. Nu ben ik, als goede systeembeheerder, nogal paranoïde, en was het dus niet onmogelijk dat ik in het verleden het wachtwoord toch had ingesteld.

Maar een goede systeembeheerder documenteert, en het ingestelde wachtwoord kwam niet overeen met het door mij gedocumenteerde mysqlwachtwoord (ik gebruik Keepassxc als wachtwoordbeheerder). Allemaal wreed vreemd.

Een mysqlwachtwoord opnieuw instellen is niet zo moeilijk, in principe, maar in dit geval wou het maar niet werken. Na een lange avond zoeken (u wil het echt niet weten), bleek deze lijn in /var/log/syslog (en niet in /var/log/mysql/error.log trouwens) het antwoord te bevatten:

[Warning] 'user' entry 'root@localhost' has both a password and an authentication plugin specified. The password will be ignored.

Tussen Ubuntu 14.04 (mijn vorige versie) en Ubuntu 16.04 (de huidige) is de standaardauthenticatieplugin van MariaDB op Ubuntu veranderd naar unix_socket. En daarom lukte het niet om het wachtwoord te wijzigen, of in te loggen met het nieuwe wachtwoord.

Om alsnog toegang te krijgen tot de server, moet u simpelweg als root (de Linuxgebruiker, niet de mysqlgebruiker) mysql -u root uitvoeren:

sudo mysql -u root

Je kan, en ik citeer, niet meer inloggen als een andere gebruiker wanneer die plugin geactiveerd is voor een bepaalde gebruiker; dus enkel root kan inloggen als root.

U moet het maar weten. Of de release notes lezen natuurlijk …