Festplatte mounten und Installation Samba Server auf einem Raspberry Pi



  • Stand 13.02.2022


    Meine Tutorials

    Forumsperlen




    Inhalt


    1. Festplatte mounten (SSD / HDD)
    2. Installation Samba
    3. Installation minidlna




    1. Festplatte mounten


    Verzeichnis als Mountpoint erstellen. (Ordnernamen und user anpassen)

    sudo mkdir /media/smb-freigabe



    Die Festplatte per USB mit dem Pi verbinden.

    Mit sudo blkid die PARTUUID ermitteln.


    Code
    franjo@bullseye:~ $ blkid
    /dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="10EB-30C5" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="ff8a51f2-01"
    /dev/sda2: UUID="77813424-0fb9-4bb6-9e34-5ccc43c0b2b2" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ff8a51f2-02"
    /dev/sdb1: UUID="5b382d4f-661c-4931-ab82-38b907f0c3b4" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="7925c064-01"


    Die Datei /etc/fstab zum Bearbeiten öffnen.

    sudo nano /etc/fstab


    In meinem Beispiel ist die ext. Platte /dev/sdb1 mit der PARTUUID="7925c064-01" mit ext4 Filesystem.


    In der datei "fstab" folgende Zeile eintragen

    Code
    PARTUUID=7925c064-01 /media/smb-freigabe ext4 noatime,nofail 0 2

    Speichern und schließen.

    Mit sudo mount -a prüfen, ob die Platte gemountet wird.

    Zu sehen mit lsblk

    Code
    franjo@bullseye:~ $ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 465.8G  0 disk
    ├─sda1   8:1    0   256M  0 part /boot
    └─sda2   8:2    0 465.5G  0 part /
    sdb      8:16   0 223.6G  0 disk
    └─sdb1   8:17   0 223.6G  0 part /media/smb-freigabe
    franjo@bullseye:~ $

    Den Pi einmal rebooten, und den Mount noch einmal prüfen.


    Wenn die Platte jetzt gemountet ist, den Eigentümer und die Rechte des Freigabeordners und eventuell bereits bestehender Daten auf der Platte ändern.


    sudo chown -R user:group /media/smb-freigabe

    sudo chmod -R 0755 /media/smb-freigabe


    "user" und "group" wie immer anpassen.



    2. Samba installieren


    sudo apt install samba samba-common-bin


    Die Datei smb.conf bearbeiten.

    sudo nano /etc/samba/smb.conf


    Hier scrollt ihr mit den Pfeiltasten ganz nach unten ans Ende der Datei und fügt folgenden Code ein.

    Den Freigabenamen “raspberryund den Pfad bitte anpassen.


    Code
    [raspberry]
    comment = Raspberry Pi
    path = /media/smb-freigabe/
    valid users = @users
    force group = users
    create mask = 0775
    directory mask = 0775
    read only = no


    Ein smb-Passwort erstellen.

    Als user könnt ihr den Standarduser nehmen.

    sudo smbpasswd -a user


    2x das Passwort eingeben.


    sudo systemctl reboot


    Nachdem der Raspi neu gebootet hat, könnt ihr die Einstellungen im Windows Explorer einmal testen.

    Hier wählt ihr nun den gewünschten

    Laufwerksbuchstaben aus, gebt die Adresse des Raspi ein gefolgt von dem Freigabenamen. Beispiel: \\192.168.xxx.xxx\raspberry Adresse und Pfad anpassen.

    Haken nicht vergessen bei „Verbindung bei Anmeldung wiederherstellen“

    Nach dem Klick auf ok werden die Zugangsdaten abgefragt.

    Euren smb-User und das Passwort habt ihr ja eben angelegt.

    Jetzt sollte das Laufwerk vorhanden sein und Euer Verzeichnis raspberry verfügbar sein.

    Ihr könnt dort alles machen, Ordner erstellen, ändern, Dateien hochladen… Genauso wie in jedem anderen Laufwerk.


    Bei Windows 10 gibt es allerdings ein kleines Problem. Dort werdet ihr wahrscheinlich beim Neustart eine Meldung bekommen, dass nicht alle Systemlaufwerke geladen werden konnten, und das Laufwerk ist offline.


    Das liegt daran, das Windows 10 versucht das Laufwerk zu laden bevor die Netzwerkverbindung steht.

    Das lässt sich aber ändern, indem ihr eine Verknüpfung erstellt, die ihr in den Autostartordner legt.

    Das geht wie folgt:

    Erstellt auf dem Desktop eine Verknüpfung. Rechtsklick <neu><Verknüpfung>

    In dem sich öffnenden Fenster gebt ihr folgende Zeile ein.

    C:\Windows\System32\net.exe use Z: \\192.168.178.15\raspberry /user:smbuser smbpasswd

    Klickt auf <weiter> gebt einen Namen ein xxxxx.exe

    Nachdem ihr diese getestet habt, schiebt ihr sie in den Autostartordner.


    Dazu drückt ihr die Windowstaste und R, gebt shell:startup ein und bestätigt mit ENTER. Dann öffnet sich der Autostartordner.

    In diesen schiebt ihr die Datei rein und schließt in wieder.

    Nach einem Neustart sollte die Datei (nach dem Start des Systems) gestartet werden und das Laufwerk verbinden. (Das kann nach dem Start ein paar sek. dauern.)


    Jetzt seid ihr in der Lage euch mit jedem Gerät PC, Laptop, Android… im Heimnetzwerk mit eurem Speicher zu verbinden.

    Android setzt allerdings einen Dateiexplorer voraus, der smb unterstützt. Da gibt es eine ganze Reihe.



    3. Mediaserver minidlna installieren


    Als erstes installiert ihr minidlna mit folgendem Befehl

    sudo apt install minidlna 


    Jetzt öffnet ihr die Datei minidlna.conf


    Mit folgendem Befehl

    sudo nano /etc/minidlna.conf


    Dort sucht ihr nach der Zeile


    media_dir=/var/lib/minidlna und fügt am Anfang der Zeile eine # hinzu.


    Das sieht dann folgendermaßen aus


    # media_dir=/var/lib/minidlna


    Unterhalb dieser Zeile gebt ihr die Pfade eurer Mediendateien an.


    media_dir=V,/media/raspberry/Videos

    media_dir=P,/media/raspberry/Bilder

    media_dir=A,/media/raspberry/Musik


    V steht für Video

    P steht für Pictures

    A steht für Audio


    Wenn diese Ordner noch nicht existieren, solltet ihr sie nachher anlegen.


    Geht nun weiter nach unten bis zur Zeile


    # friendly_name=


    Entfernt die # am Anfang und gebt hinter dem = einen Namen für den Mediaserver an.


    Bsp. friendly_name=Raspi


    Mit diesem Namen wird euer Mediaserver in eurem Netzwerk angezeigt.


    Zu guter Letzt startet ihr minidlna einmal neu mit


    sudo service minidlna restart


    Damit der Server beim Neustart auch gestartet wird gebt ihr noch folgenden Befehl ein


    sudo service minidlna force-reload


    Jetzt sollte der Mediaserver in eurem Netzwerk auf allen Geräten angezeigt werden.


    So, ich hoffe, ich konnte euch mit diesem Tutorial behilflich sein. Sollte es Fragen geben, meldet euch im Forum.

  • Sehr schöne Anleitung, ich würde nur eine Sache ergänzen wollen:


    Die letzten beiden Befehle zum ändern der Rechte macht erst Sinn wenn der Datenträger eingebunden ist. Wenn vorher der Ordner smb-freigabe dem user gehört, dann ändert sich das ja mit einbinden des Laufwerks da die Rechte der Daten nicht verändert wurden und einem anderen Nutzer gehören können. Dann könnte man je nach Rechte Daten abrufen aber nicht löschen oder verändern..

  • Die letzten beiden Befehle zum ändern der Rechte macht erst Sinn wenn der Datenträger eingebunden ist.

    :thumbup: Hast Recht. Hab's ans Ende gesetzt, nach dem reboot und der Prüfung auf eine erfolgreiche Einbindung.

  • Code
    PARTUUID=7925c064-01 /media/smb-freigabe ext4 noatime,nofail 0 2

    nutzt du hier jetzt das linux dateiformat und kann ich nfts nutzen (in kombination mit deiner anleitung)?


    wenn ich  mount -a eingebe erhalte ich

    Mount: /xxx/xxx: must be superuser to use mount. 

    den Part hattest du auch mal anders gehabt. Welche bewandnis hat das?

  • ah sudo, es war wohl zuspät gerstern.das probiere ich nochmals.



    wenn ich mit ntfs weitermachen möchte, kann dann mit sudo apt install ntfs-3g nutzen und deiner aktuellen anleitung 1 zu 1 weiter folgen?


    Also mit

    PARTUUID=asdfcxy-01 /media/smd-freigabe nfts noatime,nofail 0 2




    und warum hast du das Dateiformat geändert? ich glaube du schriebst mal, dass es mit win und linux der bessere Kompromiss wäre.

  • wenn ich mit ntfs weitermachen möchte, kann dann mit sudo apt install ntfs-3g nutzen und deiner aktuellen anleitung 1 zu 1 weiter folgen?

    Ja, wenn du das neueste RaspberryPiOS (Bulllseye) hast, ist ntfs-3g schon installiert. Bei Buster bin ich mir nicht sicher.

    Du kannst den Befehl sudo apt install ntfs-3g ja einfach eingeben. Wenn es bereits installiert ist, wird halt nichts weiter installiert.

  • ok, ich habe Bullseye verwendet und es wird nix installiert.

    Jedoch bekomme ich, wenn ich in fstab die Zeile:

    Code
    PARTUUID=3uuj360f-01 /xxx/xxx nfts noatime,nofail 0 2

    einfüge und das ganze kontrolliere mit

    Code
    sudo mount -a

    nur:

    mount: /xxx/xxx: unknown filesystem type 'nfts'.

    bei

    Code
    lsblk

    bekomme ich:

    :~ $ lsblk

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

    sda 8:0 0 1.8T 0 disk

    └─sda1 8:1 0 1.8T 0 part

    mmcblk0 179:0 0 29.7G 0 disk

    ├─mmcblk0p1 179:1 0 256M 0 part /boot

    └─mmcblk0p2 179:2 0 29.5G 0 part /

  • bekomme noch ne Frage:

    Quote from Tutorial

    Wenn die Platte jetzt gemountet ist, den Eigentümer und die Rechte des Freigabeordners und eventuell bereits bestehender Daten auf der Platte ändern.


    sudo chown -R user:user /media/smb-freigabe

    sudo chmod -R 0755 /media/smb-freigabe

    Da ich deinen Usernamen nicht kenne, kann ich den im Beispiel auch nicht einfügen.

    Du musst "user:user schon gegen deinen Usernamen tauschen.

  • Will ja keine Rosinen scheißen, aber genau genommen ist das :user, also nach dem Doppelpunkt die Gruppe.

    Das stimmt schon, wenn beabsichtigt ist, dass die Gruppe "user" auch entsprechende Rechte erhalten soll. 8o

  • Das willst Du ja erreichen gelle?! ;) Sonst könntest Du das Verzeichnis auch nur dem User übergeben und die Gruppe so lassen wie sie ist.

    Das wäre dann:

    Code
    sudo chown -R user /media/smb-freigabe


    Oder das Verzeichnis nur der Gruppe geben:

    Code
    sudo chown -R :user /media/smb-freigabe


    Übrigens, wenn der aktuelle User der ist, der der neue Besitzer sein soll, dann kann man auch folgendes verwenden:

    Code
    sudo chown -R $USER:$GROUPS /media/smb-freigabe
  • Ich dachte, die Rechte am gemounteten NTFS-Filesystem werden durch die Mount-Optionen uid= , gid= bestimmt.


    Ab welcher ntfs(-3g) Treiberversion funktioniert chmod/chown denn nun plötzlich ?




    Servus !

    RTFM = Read The Factory Manual, oder so

  • Die Festplatte per USB mit dem Pi verbinden.

    Mit blkid die PARTUUID ermitteln.

    Leider scheitere ich schon an diesem Punkt. Festplatte angesteckt aufm desktop sagt er auch brav das die Platte da ist aber mit dem blkid befehl taucht sie nicht auf. Die Festplatte ist nfts formatiert und wurde bis jetzt immer an nem Windowslappy genutzt um via Dateifreigabe die Platte im Netzwerk nutzen zu können.


    *edit nach einem reboot mit der platte dran kam dann folgendes bei blkid herraus


    /dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="10EB-30C5" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="fab3c5c9-01"

    /dev/sda2: LABEL="rootfs" UUID="223ecc81-7069-45f9-9309-c641eba776c8" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="fab3c5c9-02"

    /dev/sdb1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="0386-1BF7" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="e8b99fb1-990f-451b-abe6-79e5963fc77d"

    /dev/sdb2: LABEL="Filme" BLOCK_SIZE="512" UUID="4E621D9A621D87BB" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="9c24fa3a-6b4b-4c5b-a25e-b1c001b35030"


    sdb1 und sdb2 sind neu dazugekommen auch wenn mir nicht ganz klar ist wieso ne einzelfestplatte da als 2 auftaucht (ist eine wd my passport 4tb)


    Muss ich da sdb1 und 2 bei sudo nano /etc/fstab eintragen oder reicht die 2? ich nehme an das man auch mehre festplatten so einbinden kann da ich vor habe 2-3 festplatten ins netzwerk netzwerk zu bringen oder muss man da was extra beachten?

    Edited 2 times, last by Gamma: ergänzung ().

  • wieso ne einzelfestplatte da als 2 auftaucht

    Das sind nicht 2 Festplatten, sondern 2 Partitionen.

    Deine Festplatte hat 2 Partitionen. sdb1 und sdb2. sdb1 ist eine EFI-Partition. (warum auch immer)

    Ich weiß ja nicht, wofür du die vorher am Windows-Rechner eingesetzt hast.

    Auf sdb2 hast du vermutlich deine Filme gespeichert.

    Muss ich da sdb1 und 2 bei sudo nano /etc/fstab eintragen oder reicht die 2?

    Mounten brauchst (solltest) du nur die sdb2. Die Efi-Partition ist hier als Datenspeicher sinnlos.


    da ich vor habe 2-3 festplatten ins netzwerk netzwerk zu bringen oder muss man da was extra beachten?

    Mehr als eine Platte kannst du aber nicht direkt am Pi anschließen. Dann brauchst du einen aktiven USB-Hub.

  • Mehr als eine Platte kannst du aber nicht direkt am Pi anschließen. Dann brauchst du einen aktiven USB-Hub.

    den habe ich ^^ extra mit hilfe ausm forum den richtigen gesucht ;) aber gehen würde das dann genau so oder?

    *edit nach einem reboot mit der platte dran

    wäre vielleicht ne idee das mit in die anleitung aufzunehmen? also das man bei manchem platten die nicht durchs reine anschließen auftauchen ein reboot mit der platte helfen kann?

  • aber gehen würde das dann genau so oder?

    Ja

    *edit nach einem reboot mit der platte dran kam dann folgendes bei blkid herraus

    Das Phänomen besteht unter Bullseye 32/64 bit, dass eine im Laufenden Betrieb angeschlossene Festplatte /SSD mit blkid nicht angezeigt wird.

    Mit sudo blkid jedoch schon.