Article Index

Voorwoord

Sinds FreeBSD 9.x is het mogelijk om direct te installeren op een encrypted partitie, ik ga hier beschrijven hoe je dat stap voor stap doet.

Ik gebruik geli encryptie al sinds FreebSD 6.2, en er is veel veranderd. In de vroege dagen moest ik eerst het systeem installeren op een aparte harde schijf, daar FreeBSD op installeren, dan daar van booten. Normaal en encrypted partitie aanmaken op de harde schijf die ik zou gaan gebruiken, en vervolgens de losse harde schijf los koppelen in de hoop dat de be-oogte harde schijf goed zou functioneren.

Dit varkentje is toch iets groter geworden dan ik dacht. Ik ben uitgegaan van de Highpoint Rocketraid 2740 en dat was een verkeerde keuze. Ik heb 4 Highpoint controllers gehad en werkte alle 4 uitmuntend, maar dit model niet. Uiteindelijk heb ik deze terug gestuurd en heb ik mijn machine met 2x Perc H310 uitgeurst met IT firmware zodat ik dit met ZFS kan gebruiken. En heb de onboard raid controller gebruikt met 2 sas harde schijven.

Eindelijk heb ik ook gezien dat SAS echt het verschil maakt, eerst heb ik dit op Sata schijven gezet maar dit was beduidend trager met kleine bestandjes. En het OS werkt natuurlijk met een enorme hoeveelheid kleine bestandjes.

SSD vond ik nog even iets te duur, maar dat komt wel in mijn volgende project.

 

 

Na alle ophef over het Bash Lek heb ik besloten om FreeBSD 10.1 te installeren omdat die uit is gekomen na bash. Tevens heb ik ook gelezen dat deze versie een verbeterde ZFS ondersteuning heeft waardoor ZFS sneller werkt.

Als klap op de vuurpijl kwam ik er ook achter dat mijn OS drive verplaatst en dit heeft mij aan het denken gezet, dit kan dus ook gebeuren met mijn zfs drive's! Dus hier moeten we ook labels voor inrichten.

 


 

Perc H310 Flashen met IT Firmware

Aangezien de Highpoint Rocketraid 2740 totaal niet voldeed aan mijn verwachtingen, moest ik voor een alternatief gaan. En ik kwam een erg intressant artikel tegen over het flashen van Perc H310 kaarten zodat alle drive's los beschikbaar komen voor het OS, in mijn geval FreeBSD en dat is precies wat i nodig heb.

 

1. Bouw de Dell Perc H310 in de machine (1 tegelijk) en boot van de voor geprepareerde USB key.


2. We wissen de chip van de controller met:
# megarec –writesbr 0 sbrempty.bin


3. We wissen de BIOS met:
# megarec –cleanflash 0

4. Het wissen is gelukt, 16 MB onboard?

5. Reboot de machine en start weer op van de USB Stick:

6. Flash de nieuwe firmware naar de Dell Perc H310 (LSI Kaart)
#sas2flsh –o 6gbpsas.fw

7. De nieuwe firmware is ook gelukt!

8. Zet de rom op de #H310 zodat we wat meer kunnen zien in de Bios:
# sas2flsh –o –b mptsas2.rom

9. Ook gelukt om de nieuwe Bios er op te zetten:

10. Bij het opnieuw opstarten van de machine zien we dat er geen devices meer zijn:

9. Ook gelukt om de nieuwe Bios er op te zetten:

10. Bij het opnieuw opstarten van de machine zien we dat er geen devices meer zijn:


11. Maar alle harde schijven zijn wel los te vinden in /dev/

Bron: http://www.vladan.fr/flash-dell-perc-h310-with-it-firmware/

Download Bestanden voor bootable USB Stick: http://www.0wp.net/BSD05/Perc-H310-USB.zip


Installeren FreeBSD

1. Doe de FreeBSD dvd in de machine en laat de installatie starten, kies voor Install

2. Keymap Selection
Would you like to set a non-default key mapping for your keyboard?
< No >

3. Please choose a hostname for this machine
Naam van Machine


4. Aangezien we VirtualBox gaan gebruiken, alle opties aanzetten zodat we niet later de sources moeten installeren.

Opmerking: Doc, games, lib32,ports, src aabzetten.

5. Would you like to use the guided partitioning tool (recommanded for beginners).....
<Guided>

6. Aangezien ZFS voor mij nieuw is, zal ik een gedeelte mirror gebruiken van de Highpoint RAID kaart Onboard raid controller van de Dell Precision 690 en de rest ZFS. Ik heb in de BIOS van de RAID kaart (CTRL+H) al ingesteld dat de kleinste harde schijven (500 GB) gebruikt gaan worden voor het OS.
De rest van de harde schijven laat ik met rust, dit zal ZFS gaan beheren.

In de tweedehands machine van Serverhome zaten 2x SAS harde schijven en ik heb nu zelf ervaren wat het verschil is. Ook al zijn de specificaties sneller, SAS kan veel beter en sneller omgaan met kleine bestanden.


 

1. Aangezien ik niet wil nadenken over de schijf indeling, kies ik voor Entire disk
<Entire Disk>

Opmerking: Sinds FreeBSD 10.2 krijg je ook nog de keuze om GPT, of een andere indeling te kiezen, ik heb gekozen voor GPT.

2. Je krijgt een waarschuwing, Confirmation
This will erase the disk. Are you sure you want to proceed?
< Yes >

3. Je krijgt een opsomming van de partitie's. Aangezien we een encrypted gedeelte gaan gebruiken, wil ik deze partitie kein houden. Genoeg om FreeBSD te installeren en een encrypted partitie ernaast aan te maken. ga nu naar de grootste (in mijn geval de da0p2) en kies voor Delete.
<Delete>


4. Kies voor <Create> en maak een 20 40 Gigabyte partitie aan. Deze partitie krijgt geen encryptie. Je moet altijd eerst opstarten, dan pas kan je door gaan naar de encrypted partitie.
Vul een label in zodat we die later kunnen mounten. Kies voor < OK >

5. Maak ook een partitie aan in de overgebleven ruimte als da0p4, deze gaan wij later gebruiken voor het encrypte gedeelte.

De opsomming ziet er als volgt uit:
da0 Schijf of RAID set 0, eerste harde schijf
da0p1 64 kB freebsd-boot (Partitie (1) waar FreeBSD van opstart)
da0p3 4.0 GB freebsd-swap (Partitie (2) om te swappen)
da0p2 20 GB freebsd-ufs (Partitie (3) waar FreeBSD op geinstalleerd word en later niet gebruikt.)

6. Kies <Finish> en na de waarschuwing dat alles verloren gaat < Commit >.

7. Verificatie en installatie word gestart.

8. Je krijgt nu een scherm om een wachtwoord in te voeren, voer een simpel wachtwoord in die totaal anders is dan het root wachtwoord wat je in het encrypted gedeelte gaat gebruiken.

9. Kies de gewenste netwerk kaart/aansluiting, ik heb er maar 1. Dus ik kies de
re0 RealTek 8168/8111 B/C/CP/D/DP/E/F PCIe Gigabit Ethernet.
< OK >


10. Configureer het netwerk
Network Configuration
Would you like to configure IPv4 for this interface?
< Yes >

11. Of we DHCP willen gebruiken, nee, voor een server? Nee danku
Network configuration
Would you like to use DHCP to configure this interface?
< No >

12. Voer de IP adres gegevens in en selecteer < OK >


13. IP v6 gebruik ik voor mijn interne netwerk niet. < No >


Hier voer ik mijn router in, < OK >.

14. Stel de CMOS clock goed in, 8 Europe → 34 Netherlands. < OK >

15. FreeBSD vraagt of de tijdsindeling ok is, < Yes >

16. Het systeem vraagt of er nog het een en ander geconfigureerd moet worden. Als je met een AMD werk en het moederbord een prima afhandeling heeft van CPU frequentie en stroom verbruik kies je alles behalve powerd Adjust CPU frequency dynamically.


Opmerking: door geen powerd te selecteren (Power deamon) voorkom je bij AMD de foutmelding: hwpstate0 set freq failed err 6

17. Crashdumps? Nee, die gebruik ik niet < No >

18. Add User Accounts < No >.

19. Kies Exit en < OK >

20. Manual Configuration, kies < No >

21. Complete
<Reboot>



1. Eerste keer opstarten geeft een foutmelding over de tijd en de SSH key word gegenereerd.


Labels defineren voor de os harde schijf

 

 

1. Open /etc/fstab en voeg de gedefineerde labels toe:

Opmerking: Zorg dat de labels gelijk zijn aan de labels die je hebt ingevoerd tijdens de installatie.

De labels zijn onzichtbaar zodra je bent opgestart op drive nivo.

2. Als je nog een label wilt toevogen moet je herstarten in single user mode. Met:
# tunefs -L naam /dev/da.....
Maak je labels aan voor normale UFS partities

en met:
# glabel label naam /dev/da....
maak je labels aan voor swap partities.

3. Ook de overige harde schijven gaan wij labelen, maar deze doen we met het serienummer zodat we later mocht er 1 falen deze makkelijk terug kunnen vinden:
# diskinfo -v /dev/da0

4. Maak een slice aan op de eerste harde schijf, in mijn geval is dat: /dev/da0
# gpart create –s gpt da0

5. Ook de overige harde schijven gaan wij labelen, maar deze doen we met het serienummer zodat we later mocht er 1 falen deze makkelijk terug kunnen vinden:
# diskinfo -v /dev/da0

2. Maak een slice aan op de eerste harde schijf, in mijn geval is dat: /dev/da0
# gpart create –s gpt da0

 



Datum en tijd instellen

 

1. Om de datum in te stellen gebruik ik het commando:
# date 1406282025

14 = jaar 2014
06 = maand Juni
28 = Dag 28
20 = 20:00 uur
25 = 25 minuten, dus 20:25

Opmerking: Vanaf dit moment kan NTP aan de slag om dit automatisch goed in te stellen.

 



Port collection updaten naar de laatste versie

 

1. Update eerst de ports collection
# portsnap fetch extract

Even wachten.....

2. Om te updaten typ je:
# portsnap fetch update


 

X windows installeren

1. Aangezien ik VirtualBox ga gebruiken heb ik X windows nodig, en aangezien er library's bij het booten worden gebruikt (en dus in de toekomst van het unencrepted gedeelte worden gebruikt) installeer ik Xwindows.
# cd /usr/ports/x11/xorg
# make install clean


Dit kan wel even duren. Je zou ook kunnen kiezen voor:
# make config-recursive install clean
Dit zorgt ervoor dat je alle vragen vooraf krijgt en dan kan je rustig gaan slapen ;-)

2. Blijkbaar is python nodig, ik selecteer < OK > (is komen te vervallen door installatie subversion)


3. gettext-0.18.3.1_1, ik selecteer < OK > (is komen te vervallen door installatie subversion)


4. libiconv-1.14_3, selecteer < OK > (is komen te vervallen door installatie subversion)


5. Ik kreeg hier een foutmelding (Bij de installatie van FreeBSD 10.1 kwam dit niet meer voor, maar wil deze toch delen met jullie):

6. Ik heb dit opgelost door:
# cd /usr/ports/lang/python
# make install clean


7. Hierna ben ik terug gegaan naar:
# cd /usr/ports/x11/xorg
# make install clean

8. gmake-3.82_1, selecteer < OK >

9. libxml2-2.9.1_1, ik selecteer < OK >


10. flex-2.5.29_1, selecteer < OK >


11. help2man-1.43.3_1, selecteer < OK >

12. perl5-5.16.3_11, selecteer < OK >


13. m4-1.4.17_1,1 selecteer < OK > (is komen te vervallen door installatie subversion)


14. bison-2.7.1,1 selecteer < OK >

15. libcheck-0.9.13, selecteer < OK >


16. libxslt-1.1.28_3, selecteer < OK >


17. libgpg-error-1.13_1, selecteer < OK >


18. libdrm, de manpages zet ik aan en klik ok < OK >


19. png-1.5.18, selecteer < OK >


20. cmake-2.8.12.1_4, selecteer < OK >

21. Xorg-apps-7.7, selecteer < OK >


22. Nu is het een kwestie van lang wachten, diverse pakketten worden gedownload en geïnstalleerd.

23. Standaard instellingen voor X Windows

24. dejavu-2.34_3, selecteer < OK >

25. Xorg drivers, standaarden accepteren en klik < OK >


26. Xorg Server, standaard instellingen en < OK >


27. Policy kit, klik op < OK >


28. xmlcatmgr-2.2, selecteer < OK>


29. Docbook, selecteer < OK >

30. glib-2.36.3_3, selecteer < OK >

31. pcre-8.34_1 selecteer < OK >


32. libffi-3.0.13_1, selecteer < OK >


33. dbus-1.8.4, selecteer < OK >

34. xmlto-0.0.26_2, selecteer < OK >


35. bash-4.3.10_21, selecteer < OK >


36. w3m-0.5.3_3, selecteer < OK >


37. boehm-gc-7.2e, selecteer < OK >



38. polkit-0.105_3, selecteer < OK >


39. cairo-1.10.2_10,2,selecteer < OK >

40. xkeyboard-config-2.11, selecteer < OK >


41. X windows is klaar!







 

Parameters voor x Windows invoeren

1. Om X windows goed te laten lopen, moeten een aantal parameters ingevoerd worden in /etc/rc.conf, ga als volgt te werk:
# vi /etc/rc.conf

Voeg het volgende aan de onderkant van het bestand toe:
hald_enable="YES"
dbus_enable="YES"

Sla het bestand op met :w
en verlaat vi met :q


2. Start de configuratie van x windows:
#
Xorg -configure

3. Copyeer het configuratiebestand zodat dit word gebruikt
# cp /root/xorg.conf.new /root/xorg.conf

 

 


 

 

Foutmelding bij het starten van Startx

1. Ik start X Windows met het commando:
# startx

Ik kreeg deze foutmelding:
xauth: file /root/.serverauth.1180 does not exist
xauth: (argv):1: bad display name "BSD05:0" in "list" command




2. Pas de /etc/hosts file aan, dit doe je als volgt:
# vi /etc/hosts

en voeg je IP adres to onder 127.0.0.1 en veranderd achter 127.0.0.1 het gedeelte achter localhost aan naar de computer naam die je bij de installatie hebt gegeven.


3. Ook kan je de melding krijgen:
No Screens found

Dit kan je oplossen door in xorg.conf op zoek te gaan naar Driver en daar vesa tussen de aanhalings tekens te typen.

4. Je kan ook nog de volgende melding tegen komen:
timeout in locking authority file /root/Xauthority

Verwijder alle .Xauthorty files en het probleem is opgelost:
# rm /root/.Xauthor*

 


 

Virtualbox installeren.

1. Nu we startx zonder problemen kunnen opstarten, kunnen we virtualbox installeren, dit gebeurd binnen x Windowscd …

2. Als eerste installeren we Virtualbox ose Kmod
# cd /usr/ports/emulators/virtualbox-ose-kmod
# make install clean

3. Kies geen extra optie's, selecteer < OK >


4. kBuild-0.1.9998_2

5. Als tweede installeren we /usr/ports/emulators/virtualbox-ose
# cd /usr/ports/emulators/virtualbox-ose
# make install clean

6. Laat de opties standaard aan staan en selecteer < OK >

7. Standaard opties voor yasm, selecteer < OK >

8. ook voor kBuild-0.1.9998_2 de standaard opties, selecteer < OK >


9. gtar-1.27.1, standaard opties, selecteer < OK >


10. cdrtools-3.00_2 standaard opties, selecteer < OK >

11. gsoap-2.8.17_1, standaard instellingen < OK >

12. cups-client-1.7.2, die laat ik uit staan, selecteer < OK >


13. icu-53.1, standaard aan laten staan, selecteer < OK >

14. ca_root_nss-3.16.1 laten we standaard, selecteer < OK >


15. qt4-webkit-4.8.6 standaard opties, selecteer < OK >


16. gstreamer-0.10.36_2, standaard opties, selecteer < OK >

17. Orc-0.4.21, standaard opties, klik op < OK >


18. Sqlite3-3.8.5_1, ook hier de standaard instellingen, selecteer < OK >


19. Sdl-1.2.15_4,2 , standaard opties, selecteer < OK >

20. Nasm-2.11.05,1 , standaard opties < OK >

21. ASCII art? Dat hebben we niet nodig, standaard optie is Uit, selecteer < OK >

22. Gdk-pixbuf2-2.28.2_1, standaard optie, selecteer < OK >

23. Jasper-1.900.1_14, standaard opties, selecteer < OK >

24. Jpeg-8_5, selecteer < OK >

25. Jbigkit-2.1_1, een compressie voor hoge resolutie plaatjes, selecteer < OK >

26. Pango, selecteer < OK >

27. Curl, laat je niet verleiden om http2 support aan te schakelen, selecteer < OK >

28. libvncserver-0.9.9_5, selecteer < OK >


29. Virtualbox-ose-kmod-4.3.12, selecteer < OK >

30. Virtualbox installatie is klaar, paar uurtjes verder.

 


 

Bridged networking voor Virtualbox aanzetten

1. We willen ook bridged networking, dus moeten we vboxnet aanzetten. In FreeBSD 9.0 kon ik dit doen in de /boot/loader.conf, maar vanaf 9.2 moet dit anders (lees verderop hoe). Dit doe je door het /etc/rc.conf bestand te openen:
# vi /boot/loader.conf

En dan de regel
vboxdrv_load="YES"
vboxnetflt_load="YES"
(Vervallen na een port update)

toe te voegen, uiteraard ook weer opslaan met :w en sluiten met :q

2. Om VirtualBox succesvol te starten moet je dit toevoegen in fstab
# vi /etc/fstab

Voeg toe:
proc /proc procfs rw 0 0

opslaan met :w en sluiten met :q

3. Tevens moeten we dit ook aangeven in /etc/rc.conf.
# vi /etc/rc.conf

en dan de regel:
vboxnet_enable="YES"

toe te voegen.

Wel even opslaan met :w en afsluiten met :q.

4. Herstart de machine met het commando:
# shutdown -r now

Controleer of de virtualBox driver word geladen (Onderste regel)


 

Create New Virtualbox Machine

1. Zorg ook dat de juiste rechten zijn uitgedeelt, dit voorkomt problemen in de toekomst:
# chown root:vboxusers /dev/vboxnetctl
#
chmod 0660 /dev/vboxnetctl

2. Starten doet hij, nu gaan we een proef installatie doen:


3. Klik op Nieuw en kies de machine die bij je past, in mijn geval is dat Windows XP (32 bit)

4. Windows XP mag best 512 MB Geheugen hebben, klik op Next >.


5. Kies Create a virtual hard drive now, klik op Create.

6. Ik kies voor VDI (VirtualBox Disk Image), klik op Next >.


7. Dynamically allocated, pakken wat we nodig hebben. Klik op Next >.

Opmerking: Voordeel hieraan is dat je 120 GB kan toewijzen, maar dat de virtuele machine zo groot is als hij verbruikt. Dus heb je maar 40 Gigabyte in gebruik, dan is de Virtuele machine ook maar 40 Gigabyte groot.

8. Ik kies voor de standaard 10 GB, het is een test machine en zal hem toch weg gooien. Wil alleen kijken of alles goed gaat! Klik op Create.


9. Aangezien XP bij mij op een old school cdrommmetje staat, kies ik de host drive. Klik op Settings → Storage → cd drive → klik op het cd-rom icoontje en kies Host Drive.

10. De virtuele machine word gestart



11. Gaat lekker snel dat installeren ;-)

12. Ik vertrouw die berekende tijden niet meer hoor! ;-)

13. We hebben netwerk (LAN) Via Nat, nu gaan we afsluiten.

Opmerking: Blijkt dat NAT beter werkt op FreeBSD 9.x en FreeBSD 10.x. Met Samba 4 kon ik snelheden van 60/70 mb per seconden behalen, met Bridget 10 Mb per seconde.

14. Kies Settings → Network → Adapater 1 → en verander Attached to: naar Bridged Adapter.


15. En ook Bridged networking werkt, sluit de XP machine af en koppel de host drive los.


Opmerking: Krijg je de volgende foutmelding:
"Failed to start the virtual machine xxxxx
Failed to open/create the internal network 'HostInterfaceNetworking-re0' (VERR_SUPDRV_COMPONENT_NOT_FOUND).
Failed to attach the network LUN
(VERR_SUPDRV_COMPONENT_NOT_FOUND).
Unknown eror creating VM (VERR_SUPDRV_COMPONENT_NOT_FOUND).

Word het script wat ik eerder heb besproken niet ingeladen!

Achteraf bleek dat er een falende harde schijf in het spel was, mijn RAID controller corrigeerde dit steeds. Maar als er te vaak wat mis gaat dan kan dit gebeuren.

 

16. Ik heb dit allemaal overnieuw gedaan met FreeBSD 9.3 en in FreeBSD 10.1, de volgorde van de initiele installatie is anders, maar komt op hetzelfde neer. X Windows en VirtualBox blijven exact hetzelfde.

 


 

Encrypted partitie

Encrypted partitie

1. Voer het volgende in om ervoor te zorgen dat je bij het opstarten van de machine de vraag krijgt voor de passphrase
# echo geom_eli_load="YES" > /boot/loader.conf

2.
Aangezien we bij het aanmaken van de partitie /dev/da…/p4 een label hebben aangemaakt, gaan we deze gebruiken zodat eventuele verschuivingen van devices/harde schijven geen invloed hebben.

3. We maken een nieuwe partitie aan op de /dev/da7
# gpart add –t da7

We geven een label:
# glabel label –v oshide /dev/da7p4

We encrypten de nieuwe partitie:
# geli init -b -s 4096 -l 256 /dev/label/oshide


 

 

4. We koppelen het encrypted gedeelte aan FreeBSD:
# geli attach /dev/label/oshide

Ik maak een swap partitie aan van 16 GB:
# gpart add –t freebsd-swap –s 16g /dev/label/oshide.eli

Ik maak ook een partitie aan waar het besturings systeem op komt te staan:
# gpart add –t freebsd-ufs /dev/label/oshide.eli

En formatteer de partitie:
# newfs –j /dev/label/oshide.elib


We zien nu dat /dev/label/oshide.eli is ontstaan en dit is het encrypted gedeelte.

Opmerking: Zodra alles is gelukt moeten we ook de backup verwijderen of elders opslaan, ik verwijder hem later.
Verder maak ik binnen deze ene geli partitie een ufs en swap aan, zodat we bij het opstarten maar 1x de passphrase hoeven in te voeren.

Ik heb bemerkt dat gpart niet op alle systemen goed, gaat hier heb ik terug gepakt op de oudere methode:
# bsdlabel -w /dev/label/oshide.eli
# bsdlabel -e /dev/label/oshide.eli

 

  1. Ik reboot het systeem:
    # shutdown –r now

    en ik zie dat er in plaats van een device een label word weergegeven:

    Voer het wachtwoord in dat je hebt ingegeven bij het aanmaken van de encrypted partitie. Pas dan zal de machine doorstarten.

Volledige harddisk encryptie + lzh compressie met ZFS