In mijn vorige blog heb ik beschreven hoe ik mijn Windows 7 mediaserver heb omgezet naar Linux (Ubuntu 12.04 LTS). De eerste fase ging daarbij weliswaar niet helemaal van een leien dakje, maar achteraf ben ik er best tevreden over. Helaas gaf de tweede fase wat meer problemen.
Bij het opnieuw starten van de server merkte ik dat hij soms helemaal niet startte (het scherm bleef zwart, de computer stil) of een vreemde melding gaf over één van de aanwezige schijven. Aangezien een server eerst vlekkeloos moet werken voordat je er verder mee gaat, besloot ik die problemen eerst eens op te lossen.
Een Linux BSOD?
Ik kon zelf het feit dat de server af en toe niet wilde starten helemaal niet plaatsen. Was het de Linux variant van het B(lack) S(creen) O(f) D(eath)? Ook het hierover nalezen op internet bracht me niet veel verder, maar ik heb wel veel opgestoken van de werking van Linux! Gelukkig kan ik als ik het echt niet weet terugvallen op anderen (bedankt, @wilboard!) om dit op te lossen. Het bleek dat de APIC instelling in mijn BIOS niet goed of onvoldoende werkte, maar een Kernel Boot Parameter kon dit verhelpen. Het blijkt zo te zijn dat dit zelden voorkomt bij de nieuwere moederborden, maar bij mijn moederbord uit 2010 dus wel helaas. Het was zaak om de noapic parameter toe te voegen aan het grub bestand. In dit bestand worden de default waarden die bootloader grub hanteert ingesteld. Geen dagelijkse kost dus. Tijd om mijn vaardigheden ‘aan de prompt’ te testen. Het betreffende bestand wordt geopend met het commando
sudo nano /etc/default/grub
In het bestand moet de regel GRUB_CMDLINE_LINUX_DEFAULT worden aangepast. Als er al parameters in staan, dan dient de parameter noapic aan het eind te worden toegevoegd binnen de aanhalingstekens. Er staat dan bijvoorbeeld:
GRUB_CMDLINE_LINUX_DEFAULT=”noapic”
Sla het bestand op en voer het volgende commando uit:
sudo update-grub
en start daarna het systeem opnieuw op. Daar zijn verschillende commando’s voor, ik prefereer:
sudo shutdown -r now
waarmee eigenlijk aan het systeem wordt verteld dat er een shutdown moet plaatsvinden, dat hij daarna moet herstarten en dat dat direct moet gebeuren. Door de logica in de syntax zat dit commando al direct in mijn geheugen!
Grafische interface
In eerste instantie was ik van plan om voorlopig geen grafische interface te installeren, maar bij gebrek aan een editor die ook voor mensen die niet al 5 jaar Linux draaien te begrijpen is besloot ik toch maar aan de grafische interface te gaan. Dan kon ik tenminste de editor gedit gaan gebruiken…
In een eerder artikel heb ik een aantal mogelijke interfaces behandeld. Omdat het voor een server niet nodig is om een hele uitgebreide interface te hebben heb ik gekozen voor xfce. En aangezien het er mij alleen maar om gaat om een beetje makkelijker te kunnen werken als dat nodig is en ik het meeste toch op de console blijf doen, kies ik voor de minimale versie. Daarna installeer ik gelijk de grafische editor gedit. Gebruik de volgende commando’s:
sudo apt-get install xfce4
sudo apt-get install gedit
Het installeren wijst eigenlijk zichzelf. Wanneer alles geïnstalleerd is, dan kan je de grafische interface starten met het commando
startx
De xfce interface is mooi opgeruimd en doet een beetje Windows XP achtig aan, maar dan met de toolbar aan de bovenkant. Linksboven het Applications Menu, met daarin alle programma’s, inclusief het onvolprezen gedit! De eenvoudige filemanager Thunar is ook aanwezig en is voldoende om snel door de bestanden je weg te zoeken, maar niet voor geavanceerde taken.
Schijfperikelen
Nu de server niet meer bleef hangen bij het starten en de grafische interface draaide was het tijd voor het tweede probleem. De machine is uitgerust met 4 schijven van elk 2 TB. Op één van die schijven is een deel ingeruimd voor Linux, opgedeeld in 2 partities. De ene partitie is geformatteerd als ext4, de andere is een swapfile. De rest van de schijven zijn (omdat ze eerst onder Windows hebben gedraaid) als NTFS geformatteerd.
Linux gaat met schijven heel anders om dan Windows. Dat was echt even wennen als je al je leven lang met die schijfletters werkt. De schijven zijn te vinden in de Linux boomstructuur onder /dev en worden aangeduid volgens een logisch schema. Hier staat precies uitgelegd hoe dat in elkaar zit, mijn 4 schijven werden door Linux aangeduid als /dev/sda, /dev/sdb, /dev/sdc en /dev/sdd. Partities op die schijven worden dan weer aangeduid met een cijfer, bijvoorbeeld /dev/sda1. Heel logisch als je het eenmaal weet.
Om in de grafische omgeving commando’s te kunnen geven vanaf de prompt staat onderaan een launcher met een paar veelgebruikte programma’s. De tweede van links opent de terminal emulator:
Veel informatie over je schijven kan je tevoorschijn halen met het commando
sudo fdisk -l
Windowsgebruikers zijn gewend dat alle schijven altijd direct beschikbaar zijn, maar onder Linux is dat niet zo. In Linux moet een schijf, of beter gezegd een partitie op de fysieke schijf, eerst worden ‘gemount’. Dit gebeurt door de gewenste partitie met het mount commando te koppelen aan een fysieke map op schijf. Meestal wordt daar een map in /media voor genomen. Maak daarom eerst een nieuwe map aan:
sudo mkdir /media/drive_a
En mount dan de schijf naar die map:
sudo mount /dev/sda1 /media/drive_a
Dit is allemaal heel leuk als je af en toe iets moet gebruiken, maar voor een harde schijf in de machine is dat knap lastig. Ik wilde daarom dat die schijven bij het starten van de server automatisch worden gemount. Toen ik had geregeld (het hoe en wat sla ik over, omdat het zinloze informatie is) en de machine opnieuw startte, traden er de raarste verschijnselen op. De schijven waren dan weer wel en dan weer niet goed toegankelijk en uiteindelijk bleek dat Ubuntu NIET bij elke opstart dezelfde schijfletters toekende aan de diverse schijven! Misschien is dat normaal gedrag onder Linux, ik weet het niet, maar ik vond het knap lastig en behoorlijk vreemd. Zeg maar gerust irritant. Uiteindelijk vond ik na wat zoekwerk uit dat je daarom de IDs van de schijven moet gebruiken, aangeduid als de UUID…. Volgt u me nog? Wanhoop niet als het niet zo is, want ik ga het hierna stapsgewijs beschrijven.
Stap 1: Maak voor alle partities die moeten worden gemount een map aan in /media. Neem daarvoor logische namen, bijvoorbeeld /media/films of /media/muziek, dat maakt het leven straks een stuk gemakkelijker.
Stap 2: We bepalen nu de UUIDs van alle partities in de machine en schrijven deze naar een bestand. Ik schrijf het bestand naar mijn homedirectory /home/ronald, omdat ik daar altijd alles mag schrijven:
sudo blkid > /home/ronald/UUIDs.txt
Stap 3: Open het bestand fstab, dat het mounten van de verschillende schijven regelt (belangrijk: ga niet rommelen met dit bestand als je niet zeker bent! Test desnoods eerst of alles werkt met het mount commando voordat je dit wijzigt!):
sudo gedit /etc/fstab
Het bestand bevat een aantal algemene richtlijnen en de informatie over de partities van Linux. Wellicht is het raadzaam eerst bijvoorbeeld deze verhandeling over fstab eens door te lezen!
Open nu ook het bestand met de UUIDs om deze straks te kunnen kopiëren:
sudo gedit /home/ronald/UUIDs.txt
In mijn geval had Ubuntu zelf al de UUIDs van de opstartpartitie en de swap-partitie in fstab gezet. Er stond bij dat dit eerder de partities /dev/sdd5 en /dev/sdd6 waren. Dat heb ik dus vooral zo gelaten en ik heb alleen de andere partities toegevoegd als UUID. Voor elke partitie die automatisch moet worden gemount wordt een regel toegevoegd die er als volgt uitziet:
[Device] [Mount Point] [File_system] [Options] [dump] [pass]
Welke parameters er moeten worden gebruikt hangt van de toepassing af en van het bestandssysteem. Aangezien ik bestaande NTFS schijven gebruik, die door iedereen moeten kunnen worden gelezen en geschreven, kom ik op de volgende regel (voorbeeld):
UUID=32B8C7ADB8C76E43 /media/muziek ntfs nls=iso8859-1,users,umask=000,user 0 0
Hierin zijn de volgende onderdelen te herkennen:
[Device]
UUID=32B8C7ADB8C76E4
Het reeds besproken ID van de schijfpartitie
[Mount Point]
/media/muziek
Plaats waar de gemounte schijf kan worden teruggevonden
[File_system]
ntfs
Bestandssysteem. Voor Windowsschijven is dat tegenwoordig meestal ntfs
[Options]
nls=iso8859-1,users,umask=000,user
Opties om goed met de schijven te kunnen werken. De eerste optie is handig om Nederlandse namen goed weer te geven (accenten e.d.), maar is niet echt noodzakelijk. De laatste 3 zorgen ervoor dat iedereen onbeperkte rechten heeft. Dat is straks noodzakelijk vanwege het gebruik in een netwerk.
[dump]
0
Houdt verband met een (verouderde) backup optie. Altijd 0 laten.
[pass]
0
Wanneer deze optie 2 is, wordt hij gecheckt op fouten bij het opstarten. Indien 0 niet.
Met behulp van de UUIDs die ik nu heb, veel informatie van internet en wat uitproberen lukt het me uiteindelijk om de juiste parameters te kiezen (de bovenstaande dus) en fstab is nu goed ingesteld!
Pfff…. Alles werkt!
Achteraf kan ik dus gerust stellen dat ik heel wat tijd zwetend heb doorgebracht voordat dit echt goed en naar mijn zin liep, maar nu start alles perfect en worden mijn NTFS schijven ook netjes gemount bij het opstarten. Ruim voldoende lijkt me voor deze keer.
In een volgende blog ga ik onder andere de SAMBA server behandelen die nodig is om de schijven met media te delen met de rest van het netwerk….