Network-Attached Storage (NAS)

Start dit hoofdstuk met een nieuwe reservekopie van de Basisimage.

Of je je Raspberry Pi nu gaat gebruiken als mediacenter, gamemachine of dedicated ontwikkel-pc: het is erg handig om bestanden op je Pi te delen en er vanaf andere computers bij te kunnen. De Raspberry Pi staat standaard al goed ingesteld voor allerlei scenario's, maar de optie om de inhoud van je gebruikersmap (home-folder) binnen je lokale netwerk te delen is niet geactiveerd. Dit kunnen we eenvoudig met SSH oplossen (zie het hoofdstuk Secure Shell), maar wordt nog niet volledig door Windows ondersteund. Met Samba is het echter niet al te moeilijk om dat voor elkaar te krijgen. Daarenboven kan je Samba gebruiken onder Linux, Windows en macOS: het is dus platformonafhankelijk. Je kunt dan altijd bij je media, scripts en documenten vanaf een andere pc in je netwerk.

Installatie

Zoals steeds zorgen we dat Raspberry Pi OS up to date is:

pi@raspberrypi:~ $ sudo apt update && sudo apt upgrade
Geraakt:1 http://deb.debian.org/debian bookworm InRelease
Geraakt:2 http://deb.debian.org/debian-security bookworm-security InRelease        
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease                  
Geraakt:4 http://archive.raspberrypi.com/debian bookworm InRelease
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Alle pakketten zijn up-to-date.
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Opwaardering wordt doorgerekend... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.

Om daarna Samba te installeren:

pi@raspberrypi:~ $ sudo apt install samba samba-common-bin
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende extra pakketten zullen geïnstalleerd worden:
  attr libcephfs2 liburing2 python3-anyio python3-dnspython python3-gpg python3-h11 python3-h2 python3-hpack
  python3-httpcore python3-httpx python3-hyperframe python3-ldb python3-markdown python3-markdown-it python3-mdurl
  python3-requests-toolbelt python3-rfc3986 python3-rich python3-samba python3-sniffio python3-talloc python3-tdb
  python3-yaml samba-ad-provision samba-common samba-dsdb-modules samba-vfs-modules tdb-tools
Voorgestelde pakketten:
  python3-trio python3-aioquic python-markdown-doc bind9 bind9utils ctdb ldb-tools ntp | chrony ufw winbind
  heimdal-clients
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  attr libcephfs2 liburing2 python3-anyio python3-dnspython python3-gpg python3-h11 python3-h2 python3-hpack
  python3-httpcore python3-httpx python3-hyperframe python3-ldb python3-markdown python3-markdown-it python3-mdurl
  python3-requests-toolbelt python3-rfc3986 python3-rich python3-samba python3-sniffio python3-talloc python3-tdb
  python3-yaml samba samba-ad-provision samba-common samba-common-bin samba-dsdb-modules samba-vfs-modules
  tdb-tools
0 opgewaardeerd, 31 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 7.957 kB aan archieven opgehaald worden.
Na deze bewerking zal er 67,4 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 python3-dnspython all 2.3.0-1 [152 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main arm64 python3-ldb arm64 2:2.6.2+samba4.17.12+dfsg-0+deb12u1 [60,0 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main arm64 python3-tdb arm64 1.4.8-2 [16,2 kB]
...
Ophalen:29 http://deb.debian.org/debian bookworm/main arm64 samba-ad-provision all 2:4.17.12+dfsg-0+deb12u1 [415 kB]
Ophalen:30 http://deb.debian.org/debian bookworm/main arm64 samba-dsdb-modules arm64 2:4.17.12+dfsg-0+deb12u1 [298 kB]
Ophalen:31 http://deb.debian.org/debian bookworm/main arm64 samba-vfs-modules arm64 2:4.17.12+dfsg-0+deb12u1 [406 kB]
7.957 kB opgehaald in 1s (10,7 MB/s)        
Extraheren van sjablonen uit pakketten: 100%
Voorconfigureren van pakketten ...
Voorheen niet geselecteerd pakket python3-dnspython wordt geselecteerd.
(Database wordt ingelezen ... 129096 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-python3-dnspython_2.3.0-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-dnspython (2.3.0-1) ...
...
Voorheen niet geselecteerd pakket samba-vfs-modules:arm64 wordt geselecteerd.
Uitpakken van .../30-samba-vfs-modules_2%3a4.17.12+dfsg-0+deb12u1_arm64.deb wordt voorbereid...
Bezig met uitpakken van samba-vfs-modules:arm64 (2:4.17.12+dfsg-0+deb12u1) ...
Instellen van python3-sniffio (1.2.0-1) ...
Instellen van python3-requests-toolbelt (0.10.1-1) ...
Instellen van python3-anyio (3.6.2-1) ...
...
Instellen van python3-httpx (0.23.3-1) ...
Instellen van samba-common-bin (2:4.17.12+dfsg-0+deb12u1) ...
Instellen van samba (2:4.17.12+dfsg-0+deb12u1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service → /lib/systemd/system/samba-ad-dc.service.
Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service.
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+rpt2+deb12u12) ...

Instellen

Windows 11 24H2 en later

Microsoft heeft vanaf Windows 11 24H2 een grote verandering aan het SMB protocol aangebracht, waardoor heel wat NAS systemen niet meer werken. Zie de Microsoft nota. In de praktijk worden vanaf Windows 11 24H2 alle niet door een Windows account ondertekende Samba verbindingen geweigerd. Door echter op de Samba server een Samba gebruiker aan te maken en deze als Windows account aan te bieden, kunnen we terug een NAS met Windows 11 verbinden.

Daarvoor maken we een bestand aan waar we een Raspberry Pi koppelen aan een Windows account.

pi@raspberrypi:~ $ sudo nano /etc/samba/users.map

Plaats in dit bestand de volgende regel:

pi=pinda.net@outlook.com

Waarbij pi een Raspberry Pi gebruiker is, pinda.net@outlook.com is het Windows account van het Windows systeem die de NAS moet bedienen. M.a.w. vervang pinda.net@outlook door het op jouw Windows systeem gebruikte account.

Nu kunnen we de Samba server gaan vertellen hoe hij zijn werk moet doen. Dat doe je door je voorkeursinstellingen in Samba's configuratiebestand te zetten. Dat bestand heet smb.conf en staat in de map /etc/samba.

pi@raspberrypi:~ $ sudo nano -B /etc/samba/smb.conf

Het configuratiebestand bevat veel informatie en dat kan wat intimiderend overkomen, maar je hoeft maar een paar dingen te wijzigen en toe te voegen. Eerst zorgen we dat de Samba server ons /etc/samba/users.map bestand gebruikt.

Om de juiste sectie te vinden, druk je in nano op Ctrl+w en typ je global in en daarna op Return. Op die manier kom je bij de eerste vermelding van het woord global. Gebruik de pijltjestoetsen om tussen de regels te wisselen.

Plaats in de sectie [global] de regel met de username map instelling:

[global]

  username map = /etc/samba/users.map
 
## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
  workgroup = WORKGROUP

Werkgroep

Daarna moet je controleren of de juiste werkgroep ingesteld staat. Als je je netwerk niet anders hebt ingesteld, is dat WORKGROUP.

Thuismap

Standaard kan je niet bladeren, m.a.w. mappen openen. Deze extra beveiligingsmaatregel zorgt echter voor teveel ongemak. Om dit aan te passen ga je in het configuratiebestand op zoek naar de sectie [homes] waar de instellingen voor de gebruikersmappen staan. Door de instelling browseable te activeren, geef je toestemming om te bladeren.

   browseable = yes

Daarenboven heb je standaard enkel leesrechten, je kunt met andere woorden de inhoud van gedeelde mappen en bestanden inkijken, maar niet aanpassen. Ook het aanmaken van nieuwe mappen en bestanden is onmogelijk. Dit heeft weerom te maken met beveiliging van gegevens. Nu lijkt het mij vanzelfsprekend dat je na het aanmelden als gebruiker met een bijhorend wachtwoord je je bestanden en mappen moet kunnen beheren, m.a.w. je hebt schrijfrechten nodig. Door de schakelaar read only niet enkel tot lezen te beperken, krijg je lees- en schrijfrechten.

   read only = no

Ziezo nu kan je reeds mappen en bestanden aanmaken, aanpassen en dus ook verwijderen, kortom alle beheeropdrachten uitvoeren. Sla de aanpassingen op en sluit nano af.

Wachtwoorden instellen

Door die configuratie heb je dan een laagje beveiliging in de vorm van een wachtwoord klaargezet. Dan moet je een wachtwoord instellen om de beveiliging te kunnen gebruiken. Je kunt daarbij op twee verschillende manieren te werk gaan:

  1. Je gebruikt hetzelfde wachtwoord als jouw Microsoft account op jouw Windows systeem. Dit heeft als voordeel dat je op jouw Windows systeem nooit geen wachtwoord hoeft in te geven om een verbinding met de NAS te maken, maar is minder veilig.
  2. Je gebruikt een ander wachtwoord wat veiliger is, maar ook minder gebruiksvriendelijk. Bij het gebruik van de NAS op jouw Windows systeem moet je dan wel het wachtwoord ingeven.

Wat je ook kiest, het te gebruiken wachtwoord stel je in met de volgende opdracht:

pi@raspberrypi:~ $ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.

Je wordt gevraagd om een nieuw wachtwoord blind in te voeren en dat te bevestigen. Dat is vervolgens je gebruikersnaam en wachtwoord om je bestanden te kunnen benaderen.

Met de vorige opdracht heb je de Samba gebruiker pi aangemaakt met een bijhorend wachtwoord. Om een wachtwoord van een bestaande Samba gebruiker aan te passen, gebruik je de smbpasswd zonder de -a (add user) optie.

pi@raspberrypi:~ $ sudo smbpasswd pi
New SMB password:
Retype new SMB password:

Samba herstarten

De laatste stap is het simpelweg herstarten van Samba om de nieuwe instellingen van kracht te laten worden.

pi@raspberrypi:~ $ sudo systemctl restart smbd.service

Windows Verkenner

Windows heeft naam gemaakt en de wereld veroverd door zijn compatibiliteit met vorige versies, maar dit heeft een keerzijde. In de beginjaren van de computer had je niets te vrezen van het internet, 99% van de computers was er niet op aangesloten. Toen de computers massaal het internet op gingen, moest het delen van mappen en bestanden met extra lagen beveiligd worden. Deze extra lagen kon je achterwege laten (compatibel met vroeger) of toepassen en veilig het internet op gaan. Het gebruik van extra lagen zorgde niet alleen voor compatibiliteit, maar ook voor een ongeziene complexiteit. Bij elke Windowsversie verschenen extra lagen en werd het systeem complexer.

Bij het starten van Windows Verkenner kan je via Netwerk het lokale netwerk laten scannen naar Windows compatibele apparaten. Afhankelijk van de grootte van het netwerk kan dit een tijd in beslag nemen. Na een tijdje verschijnt ook de naam van jouw Raspberry Pi tussen de Computers. Mocht dit niet zo zijn, dan herkent Windows op het netwerk aangesloten apparaten door gebruik te maken van Web Service Discovery. Dit is de vervanger van het verouderde NetBios systeem, dat stilaan uit Windows wordt verwijderd. Samba werkt nog niet met Web Service Discovery, waardoor onze NAS niet altijd in Windows Verkenner wordt weergegeven. Tot het nieuwe Windows Web Service Discovery in Samba is geïntegreerd, kan je de volgende software op jouw Raspberry Pi installeren en gebruiken:

  1. Download het script (software) met de opdracht:
    pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py
    --2025-06-24 19:19:02--  https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py
    Herleiden van raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8001::154, 2606:50c0:8002::154, 2606:50c0:8003::154, ...
    Verbinding maken met raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443... verbonden.
    HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
    Lengte: 79173 (77K) [text/plain]
    Wordt opgeslagen als: ‘wsdd.py’
    
    wsdd.py                      100%[==============================================>]  77,32K  --.-KB/s    in 0,01s   
    
    2025-06-24 19:19:02 (6,29 MB/s) - '‘wsdd.py’' opgeslagen [79173/79173]
  2. Verplaats het script naar de softwaremap van de Raspberry Pi:
    pi@raspberrypi:~ $ sudo mv wsdd.py /usr/bin/wsdd
  3. Dit script is voor Raspberry Pi OS nog steeds een eenvoudig tekstbestand. Om dit script als programma te kunnen starten, moeten we het uitvoerrechten geven (eXecutable maken):
    pi@raspberrypi:~ $ sudo chmod +x /usr/bin/wsdd
  4. We testen het script door het uit te voeren:
    pi@raspberrypi:~ $ /usr/bin/wsdd
    2025-06-24 19:20:37,699:wsdd WARNING(pid 15116): no interface given, using all interfaces
    En in Windows Verkenner de inhoud van het onderdeel Netwerk te vernieuwen. Jouw Raspberry Pi NAS wordt door deze extra software zichtbaar in Verkenner.
  5. Stop het wsdd script met de toetscombinatie Ctrl+C. Druk daarna op Enter om de prompt terug tegen de kant van de terminal te plaatsen.
  6. Tijd om het wsdd script automatisch te starten bij het opstarten van de Raspberry Pi:
    1. Download het systemd startscript:
      pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/christgau/wsdd/master/etc/systemd/wsdd.service
      --2025-06-24 19:23:47--  https://raw.githubusercontent.com/christgau/wsdd/master/etc/systemd/wsdd.service
      Herleiden van raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8002::154, ...
      Verbinding maken met raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... verbonden.
      HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
      Lengte: 876 [text/plain]
      Wordt opgeslagen als: ‘wsdd.service’
      
      wsdd.service                 100%[==============================================>]     876  --.-KB/s    in 0s      
      
      2025-06-24 19:23:48 (60,6 MB/s) - '‘wsdd.service’' opgeslagen [876/876]
    2. Verplaats het opstartscript naar de map met opstartscripts:
      pi@raspberrypi:~ $ sudo mv wsdd.service /etc/systemd/system/
    3. Test het opstartscript door het te starten:
      pi@raspberrypi:~ $ sudo systemctl start wsdd.service
    4. Controleer de meldingen van het opstartscript:

      pi@raspberrypi:~ $ sudo systemctl status wsdd.service
      wsdd.service - Web Services Dynamic Discovery host daemon
          Loaded: loaded (/etc/systemd/system/wsdd.service; disabled; preset: enabled)
          Active: active (running) since Tue 2025-06-24 19:25:10 CEST; 1min 51s ago
            Docs: man:wsdd(8)
        Main PID: 15131 (python3)
           Tasks: 1 (limit: 4762)
             CPU: 145ms
          CGroup: /system.slice/wsdd.service
                  └─15131 python3 /usr/bin/wsdd --shortlog --chroot=/run/wsdd

      jun 24 19:25:10 raspberrypi systemd[1]: Started wsdd.service - Web Services Dynamic Discovery host daemon.
      jun 24 19:25:10 raspberrypi wsdd[15131]: WARNING: no interface given, using all interfaces

    5. En onze Raspberry Pi NAS verschijnt terug in de Windows Verkenner Netwerkomgeving.
    6. Nu de test geslaagd is, nemen we het startscript op in het opstartsysteem van Raspberry Pi OS:
      pi@raspberrypi:~ $ sudo systemctl enable wsdd.service
      Created symlink /etc/systemd/system/multi-user.target.wants/wsdd.service → /etc/systemd/system/wsdd.service.
  7. Meer info over wsdd op de webpagina van de ontwikkelaar op GitHub. Uit deze info blijkt dat wsdd nu is opgenomen in Raspberry Pi OS (Debian) 12 Bookworm en je deze software kunt installeren met sudo apt install wsdd.

Herstart je Samba op de Raspberry Pi opnieuw en herscan je het netwerk in Windows Verkenner met Netwerk vernieuwen of een druk op F5. Open de Raspberry Pi computer in Windows Verkenner.

Indien de map nobody verschijnt of de volgende foutmelding verschijnt:
Gebruikersmap
, moet je zelf in de adresbalk de volgende URL invoeren: \\RASPBERRYPI\pi.
Er verschijnt een dialoogvenster waar je de gebruikersnaam en bijhorende wachtwoord moet ingeven.
Gebruikersnaam en wachtwoord
Mocht je ooit de neiging hebben om een vinkje te plaatsen bij Mijn referenties onthouden, hou er dan wel rekening mee dat iedereen zomaar zonder wachtwoord vanaf deze computer toegang heeft tot de gebruikersmap van pi op de Raspberry Pi.

Let ook op het adres van gedeelde gebruikersmap van pi op de Raspberry Pi. \\RASPBERRYPI\pi waarbij de \\ betekenen dat er een computernaam (hostname) volgt (RASPBERRYPI) en de \ het scheidingsteken voor de mappen is (pi). Enkel Windows gebruikt backslashes, vervang op andere besturingssystemen de backslashes door gewone slashes (/). Je kunt dus steeds een Samba gedeelde map bereiken door het correcte adres in de adresbalk te typen. Indien je dit altijd doet is dit veiliger en kan je de wssd software uitschakelen en/of verwijderen.

Gebruikersmap Dolphin
Praktijk opdracht
  1. We kunnen nu wel de gebruikersmap van pi beheren, maar dit maakt van onze Raspberry Pi nog geen NAS. Terug gaan we het principe toepassen waarbij het Raspberry Pi OS besturingssysteem op de SD-kaart staat en onze gegevens op een externe USB schijf met voeding (je kunt voor de opdracht ook een USB-stick gebruiken):
    1. Plug de USB-stick in de Raspberry Pi.
    2. De eigenschappen van de USB-stick geef je weer met:
      pi@raspberrypi:~ $ sudo blkid
      /dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="50C8-AEAE" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="19b853eb-01"
      /dev/mmcblk0p2: LABEL="rootfs" UUID="fc7a1f9e-4967-4f41-a1f5-1b5927e6c5f9" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="19b853eb-02"
      /dev/sda1: UUID="D483-2BC3" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="2e080f2a-01"
      De blkid opdracht toont twee opslagmedia met in totaal drie opslagruimtes (partities). mmcblk0 is de SD-kaart en deze heeft twee partities: p1 voor het opstarten (bootfs) van de Pi en p2 met het Raspberry Pi OS besturingssysteem (rootfs). sda is de USB-stick. USB-sticks gebruiken in tegenstelling tot USB schijven niet altijd partities. USB-sticks zonder partities hebben daardoor steeds één grote partitie met de naam sda. M.a.w. op USB schijven heeft sda minstens één partitie met de naam sda1. De USB-Stick in het voorbeeld werd als USB schijf geformatteerd en heeft dus een sda1 partitie. Elke schijf wordt gekenmerkt door een uniek nummer, zijn UUID. Bruikbare partities zijn geformatteerd met een bepaald bestandssysteem (TYPE), zo gebruikt de boot partitie van de SD-kaart vfat, het Raspberry Pi OS systeem ext4 en de USB-stick vfat.
    3. Maak een map om de inhoud van de USB-stick beschikbaar te maken:
      pi@raspberrypi:~ $ sudo mkdir /media/SambaDrive
    4. Uit veiligheidsoverwegingen gaan we de inhoud van de USB-stick benaderen als gebruiker pi, als je als root (systeembeheerder) werkt, krijgt een eventuele hacker direct toegang als systeembeheerder met alle gevolgen van dien. Jammer genoeg werken computersystemen met getallen (ID's) en niet met namen, de overeenkomstige ID's voor de gebruikers- en groepsnaam van de pi gebruiker achterhaal je met:
      pi@raspberrypi:~ $ id pi
      UID=1000(pi) GID=1000(pi) groepen=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),102(input),105(render),110(netdev),995(spi),994(i2c),993(gpio),115(lpadmin)
      De UID (User Identifier) en de GID (Group Identifier) stellen de ID's voor de gebruiker en de hoofdgroep waarvan deze gebruiker lid is voor.
    5. Om de inhoud van de USB-stick in de mappenstructuur van de Raspberry Pi op te nemen, moet je het configuratiebestand verantwoordelijk voor de bestandssystemen aanpassen. Het /etc/fstab (filesystem table) pas je als systeemgebruiker aan met de nano editor.
      pi@raspberrypi:~ $ sudo nano /etc/fstab
      Voeg de volgende regel toe:
      UUID=D483-2BC3 /media/SambaDrive   vfat    rw,uid=1000,gid=1000      0     0
      Vervang daarbij de UUID door deze van jouw USB-stick. /media/SambaDrive is de map waar de inhoud van de USB-stick tevoorschijn zal komen. vfat is het op de USB-stick gebruikte bestandssysteem. De map krijgt de volgende eigenschappen: rw (readwrite, dus lees- en schrijfrechten) bepalen de toegangsrechten, uid en gid zijn de ID's van de gebruiker die toegang tot de map krijgt. Let op: dit configuratiebestand moet eindigen met een lege regel. Sla de aanpassing op en sluit de teksteditor nano af.
    6. Voor de zekerheid testen we de nieuwe configuratie:
      pi@raspberrypi:~ $ sudo mount -a
      mount: (hint) your fstab has been modified, but systemd still uses
             the old version; use 'systemctl daemon-reload' to reload.
      Ok, eerst systemd op de hoogte brengen van de aangepaste fstab:
      pi@raspberrypi:~ $ sudo systemctl daemon-reload
      En we proberen nogmaals:
      pi@raspberrypi:~ $ sudo mount -a
      Geen nieuws is opnieuw goed nieuws, anders pas je /etc/fstab aan tot deze geen fouten meer bevat. Aangezien dit configuratiebestand nodig is bij het opstarten van de Pi, is het belangrijk deze test uit te voeren, anders kan het opstarten afgebroken worden.
    7. Herstart de Raspberry Pi met:
      pi@raspberrypi:~ $ sudo shutdown -r now
      
      Broadcast message from root@raspberrypi on pts/1 (Sat 2025-06-28 19:34:18 CEST):
      
      The system will reboot now!
    8. Bekijk de inhoud van de map met:
      pi@raspberrypi:~ $ ls -l /media/SambaDrive/
      totaal 0
  2. Nu de USB-stick beschikbaar is, moeten we Samba instellen om er gebruik van te maken:
    1. Open als systeembeheerder het Samba configuratiebestand met een teksteditor.
      pi@raspberrypi:~ $ sudo nano -B /etc/samba/smb.conf
    2. Voeg op het einde van het configuratiebestand de volgende sectie toe:
      [NAS]
         comment = Network-Attached Storage
         path = /media/SambaDrive
         read only = no
         public = yes
         force user = pi
      Daarbij wordt de naam van de sectie (NAS) in Windows Verkenner in kleine letters weergeven als de naam van de gedeelde map. De Comment eigenschap is enkel als commentaar bedoeld en mag je dus vrij kiezen. De path eigenschap bepaald het pad waar de inhoud van de gedeelde map op de Raspberry Pi opgeslagen wordt. De read only schakelaar zorgt voor lees- en schrijfrechten. De public schakelaar zorgt dat iedereen zonder wachtwoord toegang krijgt tot de gedeelde map. De force user eigenschap zorgt dat je in de gedeelde map steeds als gebruiker pi werkt, dit moet overeenkomen met de gebruikers ID's opgegeven in het /etc/fstab configuratiebestand.
    3. Herstart samba
      pi@raspberrypi:~ $ sudo systemctl restart smbd.service
    4. En test de nieuwe Samba configuratie in Windows Verkenner.
  3. FreeFileSync

  4. Een NAS is niet enkel handig om bestanden te delen, maar ook om reservekopieën te maken en dan nog het liefst automatisch. FreeFileSync kan op geregelde tijdstippen mappen en bestand synchroniseren naar een map op een ander systeem. Syncthing (zie verder) gaat nog een stuk verder en maakt bij elke aanpassing direct een kopie op een ander systeem. Daarenboven kan je met Syncthing terugkeren in de tijd. Syncthing onthoud elke aanpassing en werkt als een tijdmachine (vandaar de naam timemachine). Tijdmachines zijn complexer en dus moeilijker te configureren, maar eenmaal ze werken, gaat alles vanzelf. We beginnen met FreeFileSync.
    1. Surf in Windows naar de FreeFileSync webpagina en download het recentste installatie programma.
    2. Installeer FreeFileSync.
    3. Maak in de map Documenten een map met de naam Bron.
    4. Kopieer naar of maak in de map Documenten\Bron een tiental documenten.
    5. Maak op uw Raspberry Pi NAS de map Backup.
    6. Start de toepassing FreeFileSync vanuit de map C:/Program Files/FreeFileSync/. Hoewel FreeFileSync veel instelmogelijkheden en functies heeft, gaan we een eenvoudige synchronisatie uitvoeren:
      1. Plaats (sleep of blader) in de linkerkolom de Windows map Documenten\Bron.
      2. Plaats (sleep of blader) in de rechterkolom de map Backup op uw Raspberry Pi NAS.
      3. Selecteer met de knop Vergelijkings instellingen (F6) (blauw tandwiel) op het tabblad Synchronisatie (F8) de variant Bijwerken.
      4. Aan de hand van knoppen aan de rechterkant kan je nagaan wat er gebeurd bij het aanmaken (Maak), Bijwerken en Verwijderen van bestanden. Merk op dat als je bestanden verwijderd FreeFileSync niets doet, m.a.w. de backup blijft behouden. Pas dit aan naar een knop met een Prullenbak in de kolom Links (de bron). De synchronisatie variant verandert daardoor automatisch naar Aangepast.
      5. Bevestig de aanpassing met de knop .
      6. Klik op de knop (F9).
      7. Laat de synchronisatie uitvoeren.
      8. Controleer na het voltooien het Logboek.
      9. Sluit het venster met het overzicht.
      10. Controleer op de Raspberry Pi of de bestanden op de USB Stick staan. Dit kan via de Bestandsbeheerder of met behulp van de volgende opdracht:
        pi@raspberrypi:~ $ ls -l /media/SambaDrive/Backup/
        totaal 27680
        -rw-r--r-- 1 pi pi 5645367 24 aug  2022 '1 Basisbegrippen IT.pdf'
        -rw-r--r-- 1 pi pi 1607040 24 aug  2022 '1 Basisbegrippen Taak.pdf'
        -rw-r--r-- 1 pi pi 5769598 24 aug  2022 '2 Tekstverwerking Deel 1.pdf'
        -rw-r--r-- 1 pi pi  127677 24 aug  2022 '2 Tekstverwerking Deel 1 Taak.pdf'
        -rw-r--r-- 1 pi pi 4961061 24 aug  2022 '3 Rekenbladen Deel 1.pdf'
        -rw-r--r-- 1 pi pi  109141 24 aug  2022 '3 Rekenbladen Deel 1 Taak.pdf'
        -rw-r--r-- 1 pi pi 5526276 24 aug  2022 '4 Presentaties Deel 1.pdf'
        -rw-r--r-- 1 pi pi  244566 24 aug  2022 '4 Presentaties Deel 1 Taak.pdf'
        -rw-r--r-- 1 pi pi 4211135 24 aug  2022 '5 Databanken Deel 1.pdf'
        -rw-r--r-- 1 pi pi   84455 24 aug  2022 '5 Databanken Deel 1 Taak.pdf'
        -rw-r--r-- 1 pi pi     245  5 jul 18:56  sync.ffs_db
      11. Om later deze taak elke dag automatisch te laten uitvoeren, start je in het menu Bestand de opdracht Opslaan als batchverwerking...:
        1. Accepteer de standaard instellingen.
        2. Sla de batchverwerking op in de map Documenten als Backup.ffs_batch.
      12. Sluit FreeFileSync af.
    7. Om dagelijks een Backup van de map Documenten\Bron te maken, ga je als volgt te werk:
      1. Start Taakplanner.
      2. Klik bij de Acties op Taak maken....
      3. Op het tabblad Algemeen:
        1. Geef je de taak een Naam, bijvoorbeeld FreeFileSync.
      4. Maak op het tabblad Triggers een Nieuwe trigger. Een trigger bepaald het moment waarop FreeFileSync gestart wordt:
        1. Start FreeFileSync Dagelijks.
        2. Bevestig de aanmaak van de nieuwe trigger.
      5. Maak op het tabblad Acties een nieuwe actie. Acties bepalen wat er bij een trigger moet gebeuren:
        1. De actie wordt Programma starten.
        2. Blader naar het FreeFileSync programmma ("C:\Program Files\FreeFileSync\FreeFileSync.exe") op uw computer.
        3. In het tekstvak Parameters toevoegen (optioneel) plaats je de daarstraks opgeslagen batchverwerking "C:\Users\gebruikersnaam\Documents\Backup.ffs_batch". Vervang daarbij gebruikersnaam door jouw eigen gebruikersnaam in Windows. Achterhaal de gebruikersnaam door naar de map in Windows Verkennener te bladeren (Nederlandse mapnamen) en daarna de echte mapnamen te achterhalen door te klikken in de adresbalk.
        4. Bevestig de aanmaak van de nieuwe actie.
      6. Op het tabblad Instellingen activeer je de optie Als de taak mislukt, opnieuw opstarten elke:. En stel in dat er drie pogingen met een tussentijd van één uur worden uitgevoerd.
      7. Bevestig de aanmaak van de nieuwe taak.
      8. Selecteer in de Task Scheduler-bibliotheek de taak FreeFileSync.
      9. Om onze taak de testen, klik je in het rechter deelvenster op de Actie Uitvoeren.
      10. Indien FreeFileSync correct is opgestart en zijn taak heeft volbracht, verschijnt opnieuw het venster met een overzicht. Indien dit niet het geval is, pas je in de Taakplanner van de geopende taak FreeFileSync de Eigenschappen aan.
    8. Een laatste test:
      1. Pas een document in de map Documenten\Bron aan.
      2. Kopieer een extra document naar de map Documenten\Bron.
      3. Verwijder een document uit de map Documenten\Bron.
      4. Voer nogmaals via Taakplanner FreeFileSync uit.
      5. Zoals je merkt, zal FreeFileSync je waarschuwen bij probleemgevallen. Negeer het Prullenbak probleem op de Raspberry Pi.
      6. Controleer op de Raspberry Pi of de backup gelukt is (aangepaste, toegevoegde en verwijderde bestand). Het verwijderde bestand blijft op de Raspberry Pi NAS staan. Dit kan je aanpassen door de instellingen van de Backup sessie in FreeFileSync aan te passen en de batchverwerking opnieuw op te slaan, evenals het weergeven van de waarschuwingen. Een mooie extra oefening.
      7. Als voorbereiding op de volgende opdracht, verwijder je de taak FreeFileSync uit de Taakplanner.
  5. Syncthing

  6. Syncthing is een vrij, open-source peer-to-peer applicatie om bestanden te synchroniseren. Het is beschikbaar voor Windows, Mac, Linux, iOS, Android, Solaris, Darwin en BSD, m.a.w. platformonafhankelijk. Het kan bestanden synchroniseren tussen apparaten in een lokaal netwerk en over het internet. Dit programma kan je het best vergelijken met BitTorrent Sync (geen open-source en hogere systeembelasting), Apple Time Machine (enkel voor Apple apparaten) en op internet diensten zoals Dropbox en Google Drive (traag door internetverbinding).

    Installeer Syncthing:

    pi@raspberrypi:~ $ sudo apt install syncthing -y
    Pakketlijsten worden ingelezen... Klaar
    Boom van vereisten wordt opgebouwd... Klaar
    De statusinformatie wordt gelezen... Klaar 
    De volgende NIEUWE pakketten zullen geïnstalleerd worden:
      syncthing
    0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 1 niet opgewaardeerd.
    Er moeten 6.859 kB aan archieven opgehaald worden.
    Na deze bewerking zal er 21,1 MB extra schijfruimte gebruikt worden.
    Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 syncthing arm64 1.19.2~ds1-1+b4 [6.859 kB]
    6.859 kB opgehaald in 1s (6.383 kB/s)   
    Voorheen niet geselecteerd pakket syncthing wordt geselecteerd.
    (Database wordt ingelezen ... 149761 bestanden en mappen momenteel geïnstalleerd.)
    Uitpakken van .../syncthing_1.19.2~ds1-1+b4_arm64.deb wordt voorbereid...
    Bezig met uitpakken van syncthing (1.19.2~ds1-1+b4) ...
    Instellen van syncthing (1.19.2~ds1-1+b4) ...
    Created symlink /etc/systemd/system/sleep.target.wants/syncthing-resume.service → /lib/systemd/system/syncthing-resume.service.
    Bezig met afhandelen van triggers voor desktop-file-utils (0.26-1) ...
    Bezig met afhandelen van triggers voor hicolor-icon-theme (0.17-2) ...
    Bezig met afhandelen van triggers voor gnome-menus (3.36.0-1.1) ...
    Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
    Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ...
  7. Syncthing maakt bij zijn eerste start zelf een standaard configuratie aan. Voer daarvoor op de Raspberry Pi zelf de volgende opdracht uit:
    pi@raspberrypi:~ $ syncthing 
    [start] 19:10:28 INFO: syncthing v1.19.2-ds1 "Fermium Flea" (go1.19.8 linux-arm64) debian@debian 2023-04-09 10:43:33 UTC
    [start] 19:10:28 INFO: Generating ECDSA key and certificate for syncthing...
    [start] 19:10:28 INFO: Default folder created and/or linked to new config
    [start] 19:10:28 INFO: Default config saved. Edit /home/pi/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
    [start] 19:10:28 INFO: Archiving a copy of old config file format at: /home/pi/.config/syncthing/config.xml.v0
    [7WNGE] 19:10:28 INFO: My ID: 7WNGE7L-JU3RWPD-YO5YVQO-BBEOCFY-OEXBIWD-FMDA4PV-ZVHF3GL-QDF2KA5
    [7WNGE] 19:10:29 INFO: Single thread SHA256 performance is 1434 MB/s using crypto/sha256 (1433 MB/s using minio/sha256-simd).
    [7WNGE] 19:10:30 INFO: Hashing performance is 706.46 MB/s
    ...
    [7WNGE] 19:10:49 INFO: quic://0.0.0.0:22000 detected NAT type: Port restricted NAT
    [7WNGE] 19:10:49 INFO: quic://0.0.0.0:22000 resolved external address quic://91.180.5.20:22000 (via stun.syncthing.net:3478)
    [7WNGE] 19:11:12 INFO: Joined relay relay://178.38.157.60:22067
    De browser start automatisch op met de bedieningspagina van Syncthing. Stel in of er Anonieme gebruikersstatistieken verstuurd mogen worden.
    1. Open het menu Acties en start de opdracht Instellingen.
    2. Standaard kan je Syncthing enkel bedienen vanuit een browser op de Raspberry Pi zelf, maar dat is erg onhandig, zeker als je er daarvoor een toetsenbord, muis en scherm moet op aansluiten. Dit doe je door het adres van waarop Syncthing is te bedienen uit te breiden van localhost (127.0.0.1) naar alle apparaten (ongedefinieerd of 0.0.0.0): Pas op het tabblad GUI het GUI-luisteradres aan naar 0.0.0.0:8384.
      De term localhost verwijst naar de locatie van het eigen systeem op een netwerk. Het is een loopback-interface, in IPv4 krijgt dit meestal het IP-adres 127.0.0.1, in IPv6 ::1. Dit adres kan vervolgens door TCP/IP-applicaties gebruikt worden om met het eigen systeem te communiceren indien dit nodig is.

      Dit adres kan aangewend worden voor testdoeleinden zonder dat de machine een "echt" IP-adres moet hebben, of om services, die normaal via het netwerk bereikt worden, te contacteren op de eigen machine.

      Tevens dient het adres om gebruikers die op de computer zelf werken te onderscheiden van diegenen die van een netwerk gebruik maken. Vooral voor wat betreft toegangscontrole is dit onderscheid nuttig.

      In de hackerscene heeft het adres een zeker cultstatus verworven, als symbool van de eigen computer. Dit heeft zijn weerslag gevonden in gevleugelde woorden als "Home is where 127.0.0.1 is" en "There's no place like 127.0.0.1".
    3. Om veiliger te werken, kan je een GUI-gebruikersnaam en GUI-wachtwoord toevoegen en de gegevens tijdens het verzenden en ontvangen versleutelen door HTTPS gebruiken voor GUI in te schakelen. Dit laatste is enkel nodig als je via internet werkt.
    4. Schakel indien gewenst het automatisch opstarten van de browser uit. Dit is namelijk nutteloos en processor belastend op een NAS zonder scherm, toetsenbord en muis.
    5. Sla de aanpassingen op.
    6. Sluit Syncthing af via het menu Acties en sluit de browser op de Raspberry Pi.
      Handig om te weten, mocht er straks niets meer lukken, kan je best helemaal opnieuw beginnen door de configuratiemap van Syncting te wissen:
      pi@raspberrypi:~ $ rm -r .config/syncthing
  8. Je kunt Syncthing bij elke start van de Raspberry Pi manueel starten, maar het is veel eenvoudiger als dit automatisch gaat.
    1. Start Syncthing als pi gebruiker via:
      pi@raspberrypi:~ $ sudo systemctl start syncthing@pi.service
    2. Test de Syncthing service met de opdracht:

      pi@raspberrypi:~ $ sudo systemctl status syncthing@pi.service
      syncthing@pi.service - Syncthing - Open Source Continuous File Synchronization for pi
          Loaded: loaded (/lib/systemd/system/syncthing@.service; disabled; preset: enabled)
          Active: active (running) since Sat 2025-07-05 19:37:29 CEST; 1min 26s ago
            Docs: man:syncthing(1)
        Main PID: 3062 (syncthing)
           Tasks: 18 (limit: 4761)
             CPU: 1.513s
          CGroup: /system.slice/system-syncthing.slice/syncthing@pi.service
                  ├─3062 /usr/bin/syncthing serve --no-browser --no-restart --logflags=0
                  └─3070 /usr/bin/syncthing serve --no-browser --no-restart --logflags=0

      jul 05 19:37:30 raspberrypi syncthing[3062]: [QUOAS] INFO: Relay listener (dynamic+https://relays.syncthing.net/end>
      jul 05 19:37:30 raspberrypi syncthing[3062]: [QUOAS] INFO: QUIC listener ([::]:22000) starting
      jul 05 19:37:30 raspberrypi syncthing[3062]: [QUOAS] INFO: Completed initial scan of sendreceive folder "Default Fo>
      jul 05 19:37:30 raspberrypi syncthing[3062]: [QUOAS] INFO: GUI and API listening on [::]:8384
      jul 05 19:37:30 raspberrypi syncthing[3062]: [QUOAS] INFO: Access the GUI via the following URL: http://127.0.0.1:8>
      jul 05 19:37:30 raspberrypi syncthing[3062]: [QUOAS] INFO: My name is "raspberrypi"
      jul 05 19:37:39 raspberrypi syncthing[3062]: [QUOAS] INFO: Joined relay relay://212.227.161.147:22067
      jul 05 19:37:41 raspberrypi syncthing[3062]: [QUOAS] INFO: New NAT port mapping: external TCP address 91.180.5.20:5>
      jul 05 19:37:41 raspberrypi syncthing[3062]: [QUOAS] INFO: New NAT port mapping: external TCP address 91.180.5.20:2>
      jul 05 19:37:41 raspberrypi syncthing[3062]: [QUOAS] INFO: Detected 2 NAT services

      Druk op de q (Quit) toets om de opdracht af te breken.
    3. Indien alles goed ging, kan je Syncthing opnemen in de opstartprocedure van de Raspberry Pi:
      pi@raspberrypi:~ $ sudo systemctl enable syncthing@pi.service
      Created symlink /etc/systemd/system/multi-user.target.wants/syncthing@pi.service → /lib/systemd/system/syncthing@.service.
    4. Test of Syncting automatisch opstart bij het opstarten van de Raspberry Pi.
  9. Syncting beheer je via een webpagina die je kan bereiken via poort 8384.
    Syncting beheer
    1. Eerst bepaal je waar op de Raspberry Pi de gesynchroniseerde bestanden bewaard worden:
      1. Klik op de knop .
      2. Geef de map een Maplabel (naam) (Sync). Deze mag je zelf kiezen, maar ze moet wel uniek zijn op het apparaat, daarenboven maak je het jezelf eenvoudiger als je systematisch te werk gaat (zie verder).
      3. En een bijhorende Maplocatie in de bestandsstructuur van de Raspberry Pi. Bij het intypen van de Maplocatie wordt je geholpen met een keuzelijst met beschikbare mappen. Indien je een onbestaande map gebruikt, wordt indien mogelijk deze automatisch aangemaakt. Wij kiezen vanzelfsprekende een map op onze USB-stick (/media/SambaDrive/Backup/Sync waarbij de map Sync automatisch wordt aangemaakt). Let op de naamgeving van de map en het Map label, dit is wat we bedoelen met systematisch werken.
      4. Sla de instellingen op.
  10. Op apparaten waarvan mappen moeten synchroniseren met een map op de Raspberry Pi, moet je eveneens Syncthing installeren en configureren:
    1. Download de Syncting versie voor Windows.
    2. Je kunt een melding krijgen om Syncthing te vertrouwen, met als opmerking dat Syncthing niet veel wordt gedownload!
      Syncthing vertrouwen
      Klik op de Meer acties knop en kies de optie Behouden. Open Meer weergeven en klik op Toch behouden..
    3. Op het einde van de installatie verschijnt een Firewall dialoogvenster.
      Firewall
      Syncthing moet toegang krijgen tot het netwerk om gegevens (bestanden) te kunnen synchroniseren met de Raspberry Pi. Met andere woorden, als je Syncthing wilt gebruiken, moet je dit bevestigen met de knop . Klik nogmaals op de knop om de toelating te geven de firewall te wijzigen. Vanaf dan heeft Syncthing steeds toegang tot het lokale netwerk.
    4. Syncting start na de installatie automatisch. Soms krijg je een melding van Windows SmartScreen dat uw PC wordt beschermd tegen applicaties van Onbekende uitgevers (lees niet door Microsoft erkende uitgevers). Klik op Meer informatie en daarna op de knop om Syncthing toch te starten.
      SmartScreen
      Deze toestemming moet je maar één keer geven, bij de volgende start van Syncthing start Syncthing zonder deze melding.
    5. Automatisch start de standaard browser met het Syncting beheer voor de Windows computer. Daarbij kan je een Privacy melding krijgen.
      HTTPS
      Deze melding krijg je omdat Syncthing geen Https gebruikt. Aangezien we niet op internet werken, maar lokaal op de computer is dit helemaal OK. Om door te gaan, klik je op de knop en daarna op de koppeling Doorgaan naar 127.0.0.1 (onveilig).
    6. Lees de informatie die in het dialoogvenster Versturen van anonieme gebruikersstatistieken toestaan? verschijnt. Reageer gepast. M.a.w. stuur je gegevens naar de ontwikkelaars van Syncthing om deze software verder te verbeteren en door te ontwikkelen met informatie over hoe je Syncthing gebruikt.
    7. Hier is geen gebruikersnaam en bijhorend wachtwoord nodig, aangezien de webpagina enkel lokaal bereikbaar is.
    8. Tijd om Syncthing op de hoogte te brengen van een tweede apparaat met Syncthing (onze Raspberry Pi):
      1. Klik op de knop .
      2. Selecteer en vervolledig het correcte Apparaat-ID van jouw Raspberry Pi. Het Apparaat-ID van uw Raspberry Pi kan je op de webpagina van Syncthing op de Raspberry Pi opvragen bij Acties > ID weergeven.
      3. Als Naam kies je de naam van jouw Raspberry Pi (logisch toch).
      4. Sla de instellingen op.
    9. Ondertussen wordt op de webpagina van de Raspberry Pi een melding weergegeven.
      Nieuw apparaat toestaan
      Met de knop in deze melding aanvaard Syncthing de verbinding met Syncthing op Windows. Dit heen en weer gedoe is noodzakelijk om vreemden te weren (beveiliging door middel van aanvraag en toestemming):
      1. Op het tabblad Delen bij Niet-gedeelde mappen activeer je de map Sync. Zo geef je aan dat je de bestanden afkomstig van Windows zult opslaan in de map Sync.
      2. Sla de instellingen op.
    10. Ondertussen verschijnt bovenaan de webpagina van Syncthing op Windows een melding:
      Map delen
      1. Nu de Raspberry Pi een map heeft klaarstaan om bestanden van Windows in op te slaan, kan je met de knop een map op Windows selecteren die synchroniseert met de map op de Raspberry Pi.
      2. Alle gekende informatie afkomstig van de Raspberry Pi is reeds ingevuld, waaronder het Maplabel en de Map-ID. Hier merk je weer dat wij mensen werken met namen en labels en computerprogramma's met ID's. Enkel mappen met hetzelfde ID worden gesynchroniseerd. Als Maplocatie gebruik je ~\Documents\Bron of met andere woorden de bronmap in de map Documenten van de gebruiker op de Windows computer.
      3. Sla de instellingen op.
    11. Automatisch begint de synchronisatie. Let op: zowel de map (gaat snel, lokaal), als het apparaat moet gesynchroniseerd zijn (traag, transfer via netwerk). Na het beëindigen van het synchroniseren staat er bij het Externe Apparaat de groene melding Bijgewerkt.
      Bijgewerkt
    12. Onder Windows kan je aan de map Sync met de gesynchroniseerde mappen en bestanden dankzij de reeds eerder ingestelde Samba. En op de Raspberry Pi geef je de gesynchroniseerde bestanden en mappen weer met:

      pi@raspberrypi:~ $ ls -l /media/SambaDrive/Backup/Sync/
      totaal 27680
      -rwxr-xr-x 1 pi pi 5645367 24 aug  2022 '1 Basisbegrippen IT.pdf'
      -rwxr-xr-x 1 pi pi 1607040 24 aug  2022 '1 Basisbegrippen Taak.pdf'
      -rwxr-xr-x 1 pi pi 5769598 24 aug  2022 '2 Tekstverwerking Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  127677 24 aug  2022 '2 Tekstverwerking Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 4961061 24 aug  2022 '3 Rekenbladen Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  109141 24 aug  2022 '3 Rekenbladen Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 5526276 24 aug  2022 '4 Presentaties Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  244566 24 aug  2022 '4 Presentaties Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 4211135 24 aug  2022 '5 Databanken Deel 1.pdf'
      -rwxr-xr-x 1 pi pi   84455 24 aug  2022 '5 Databanken Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi     245  5 jul 18:56  sync.ffs_db

  11. Met versiebeheer worden wijzigingen in documenten en andere bestanden bijgehouden. Dit betekend in de praktijk dat bestanden die gesynchroniseerd worden, niet zomaar worden overschreven, maar dat oudere versies nog een tijdje bewaard worden. Dit vergt echter voor het bijhouden van de oude versies veel meer schijfruimte. In Syncthink werkt dit als volgt:
    1. Surf naar de beheerspagina van Syncthing op de Raspberry Pi.
    2. Klik op de map Sync.
    3. Daarna op Bewerken.
    4. Selecteer bij Versiebeheer het Gespreid versiebeheer. Een korte uitleg verschijnt op het scherm. Gespreid versiebeheer is het meest geavanceerde versiebeheer dat in Syncthing is ingebouwd. Standaard worden oude versies maximaal een jaar bijgehouden, hoe recenter, hoe meer versies bewaard worden.
    5. Bevestig de nieuwe instelling.
  12. Het pas geactiveerde versiebeheer test je als volgt:
    1. Maak in de map Documenten/Bron een nieuw tekstdocument aan met de naam Versiebeheer.
    2. Open de pas aangemaakte tekst en typ:
      Deze tekst is de eerste versie, met andere woorden een ruwe schets.
    3. Sla de aangepaste tekst op.
    4. Wacht ten minste 1 minuut, want pas bij de volgende synchronisatie, komt het bestand in aanmerking om bewaard te worden door het versiebeheer. De synchronisatie kan je volgen op de webpagina van de Raspberry Pi.
    5. Voeg de volgende tekst toe:
      De tweede versie bevat naast de hoofdlijnen al enkele details, compleet is deze tekst nog lang niet.
    6. Sla de aangepaste tekst op.
    7. Na een tijdje merkt je op de Raspberry Pi inderdaad dat het versiebeheer werkt:

      pi@raspberrypi:~ $ ls -l /media/SambaDrive/Backup/Sync/
      totaal 27688
      -rwxr-xr-x 1 pi pi 5645367 24 aug  2022 '1 Basisbegrippen IT.pdf'
      -rwxr-xr-x 1 pi pi 1607040 24 aug  2022 '1 Basisbegrippen Taak.pdf'
      -rwxr-xr-x 1 pi pi 5769598 24 aug  2022 '2 Tekstverwerking Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  127677 24 aug  2022 '2 Tekstverwerking Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 4961061 24 aug  2022 '3 Rekenbladen Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  109141 24 aug  2022 '3 Rekenbladen Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 5526276 24 aug  2022 '4 Presentaties Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  244566 24 aug  2022 '4 Presentaties Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 4211135 24 aug  2022 '5 Databanken Deel 1.pdf'
      -rwxr-xr-x 1 pi pi   84455 24 aug  2022 '5 Databanken Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi     245  5 jul 18:56  sync.ffs_db
      -rwxr-xr-x 1 pi pi       0  6 jul 18:25  Versiebeheer.sync-conflict-20250706-182705-EXTOZ4I.txt
      -rwxr-xr-x 1 pi pi     169  6 jul 18:28  Versiebeheer.txt

      We zien echter enkel de eerste en laatste versie. Het versiebeheer van Syncthing werkt echter met verborgen mappen (waarvan de naam begint met een punt). Deze kan je met de optie a (--all) van de ls opdracht zichbaar maken:

      pi@raspberrypi:~ $ ls -la /media/SambaDrive/Backup/Sync/
      totaal 27720
      drwxr-xr-x 4 pi pi    8192  6 jul 18:28  .
      drwxr-xr-x 3 pi pi    8192  6 jul 18:13  ..
      -rwxr-xr-x 1 pi pi 5645367 24 aug  2022 '1 Basisbegrippen IT.pdf'
      -rwxr-xr-x 1 pi pi 1607040 24 aug  2022 '1 Basisbegrippen Taak.pdf'
      -rwxr-xr-x 1 pi pi 5769598 24 aug  2022 '2 Tekstverwerking Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  127677 24 aug  2022 '2 Tekstverwerking Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 4961061 24 aug  2022 '3 Rekenbladen Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  109141 24 aug  2022 '3 Rekenbladen Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 5526276 24 aug  2022 '4 Presentaties Deel 1.pdf'
      -rwxr-xr-x 1 pi pi  244566 24 aug  2022 '4 Presentaties Deel 1 Taak.pdf'
      -rwxr-xr-x 1 pi pi 4211135 24 aug  2022 '5 Databanken Deel 1.pdf'
      -rwxr-xr-x 1 pi pi   84455 24 aug  2022 '5 Databanken Deel 1 Taak.pdf'
      drwxr-xr-x 2 pi pi    8192  6 jul 18:13  .stfolder
      drwxr-xr-x 2 pi pi    8192  6 jul 18:28  .stversions
      -rwxr-xr-x 1 pi pi     245  5 jul 18:56  sync.ffs_db
      -rwxr-xr-x 1 pi pi       0  6 jul 18:25  Versiebeheer.sync-conflict-20250706-182705-EXTOZ4I.txt
      -rwxr-xr-x 1 pi pi     169  6 jul 18:28  Versiebeheer.txt

      Bekijken we de map met de verschillende versies, dan vinden we daar ook de tussenliggende versies:

      pi@raspberrypi:~ $ ls -l /media/SambaDrive/Backup/Sync/.stversions/
      totaal 8
      -rwxr-xr-x 1 pi pi 67  6 jul 18:26 Versiebeheer~20250706-182856.txt

      pi@raspberrypi:~ $ cat /media/SambaDrive/Backup/Sync/.stversions/Versiebeheer~20250706-182856.txt 
      Deze tekst is de eerste versie, met andere woorden een ruwe schets.
      Let op de tijdstempel in de naam.
  13. Sommige bestanden en mappen zijn verborgen (naam begint met een punt). Deze verborgen mappen zijn standaard zichtbaar in met Samba gedeelde mappen. Verborgen mappen en bestanden worden niet zomaar verborgen, ze bevatten dikwijls kritieke gegevens die je niet ongestraft kunt aanpassen en/of verwijderen.
    1. Voeg in het configuratiebestand van Samba in de sectie NAS de volgende regel toe:
         hide dot files = yes
    2. Zorg dat Samba de nieuwe configuratie gebruikt.
    3. Test in Windows Verkenner of je nu de map .stversions kunt zien en/of openen.
  14. Vanzelfsprekend bestaan er kant en klare NAS systemen voor de Raspberry Pi. Openmediavault, EasyNAS en Rockstor zijn daar voorbeelden van. Er bestaat zelfs een modern cloud systeem: NextCloud. Op het eerste zicht lijkt het gebruik van een kant en klaar systeem eenvoudiger, maar:
    • Je bent voor de verdere ontwikkeling en updates afhankelijk van de maker.
    • Je kunt meestal zelf geen aanpassingen uitvoeren op een systeem dat je niet kent. Informatie vinden over een specifiek systeem is veel moeilijker dan voor Rasperry Pi OS.
    • Je kunt geen extra software of projecten combineren op zo'n voorgeconfigureerd systeem. Denk aan een mediaserver in combinatie met een NAS en WiFi Access Point. Ook een automatisch back-upsysteem als SyncThing toevoegen wordt dan moeilijk tot onmogelijk.
Als afsluiter enkele opmerkingen over bestandssystemen voor reservekopieën:

Openbare reacties op deze pagina (kunnen door alle bezoekers gelezen worden)

, vrijdag 2 juni 2023 19:28