Envato Elements - pobieraj co chcesz, ile chcesz

Raspberry Pi (jedną sztukę) wykorzystuje również jako serwer DLNA. Wprawdzie mój TV ma taką funkcję, mój domowy router ma taką funkcję, a nawet konsola – to jednak MiniDLNA (obecnie jako ReadyMedia) na Raspberry Pi jakoś najbardziej mi przypadło do gustu (dodatkowo nie ma problemów z różnymi formatami mediów, ani z napisami).

Oczywiście multimediów nie trzymam na karcie pamięci, a na dysku USB – ale sam dysk nie jest wpięty bezpośrednio do Pi (nawet nie przez aktywnego HUBa) ze względu na relatywnie mały transfer jaki wyciąga tak podłączony dysk (USB 2.0 + LAN 100 Mbps, i to jako jeden układ), co przy oglądaniu/słuchaniu nie ma znaczenia, to przy kopiowaniu materiałów już jak najbardziej.

Dlatego MiniDLNA korzysta z dysku twardego, który jest podłączony do routera (1000 Mbps), i następnie zamontowany w Raspberry Pi jako zasób sieciowy.

To wszystko (montowanie zasobów sieciowych – Samba) oczywiście odbywa się przy starcie systemu, tak by było gotowe przed uruchomieniem się procesu MiniDLNA.

I wszystko pięknie działało za czasów Debiana 7 (Wheezy), a przestało wraz z nadejściem Debiana 8 (Jessie), zarówno jako aktualizacja systemu, jak i nowa instalacja, więc postanowiłem sięgnąć po alternatywne rozwiązanie…

Automatyczne montowanie zasobów sieciowych w Raspbian/Debian 8 Jessie

Z samym MiniDLNA nie było większych problemów (poza zmianą nazwy procesu), to dyski sieciowe za nic nie chciały się podłączyć prawidłowo podczas startu systemu – nie pomogły zaklęcia w pliku „fstab” ani „rc.local” (ręczne wywołanie już po starcie normalnie montowało zasoby, więc tu raczej wszystko OK).

Przeszukałem internet – nie tylko ja miałem taki problem… Stron z poradami pełno, tyle, że w większości ciągle pojawiały się te same – a dodatkowo, u mnie żadna albo nie chciała działać, lub działanie pozostawiało wiele do życzenia.

Problem można też rozwiązać za pomocą opcji „Wait for Network at Boot” jaka pojawiła się w aplikacji raspi-config (wtedy nie ma potrzeby korzystania ze skryptu, zadziałają standardowe metody).

LSBInitScripts przychodzi z pomocą

Tak więc trzeba było podejść do sprawy trochę mniej konwencjonalnie, i napisać skrypt, który będzie się uruchamiał automatycznie podczas startu – jako usługa (LSBInitScripts).

Nie będę tutaj opisywał podstaw – jeśli ktoś zainteresowany to zapraszam do wcześniejszych wpisów, w tym np. tego dotyczącego automatycznego uruchamiania skryptów/poleceń podczas startu systemu Linux.

Przykładowy skrypt – przerobiony tak, by można go było upublicznić – wygląda tak:

#!/bin/bash  ### BEGIN INIT INFO  # Provides:          mount-smb  # Required-Start:    $all  # Required-Stop:     $local_fs $syslog  # Default-Start:     2 3 4 5  # Default-Stop:      0 1 6  # Short-Description: Mount SMB @ system start + miniDLNA start  # Description:       Mount SMB @ system start + miniDLNA start  ### END INIT INFO    ## -----  ## Script URL:  ## //webinsider.pl/add/download/?link=mount-smb  ## Info URL (@PL):  ## http://WebInsider.pl/debian-8-jessie-automatyczne-montowanie-zasobow-sieciowych  ## -----    NAME=mount-smb  SCRIPTNAME=/etc/init.d/$NAME    COMMANDS="{start|stop|restart|install|uninstall}"    $USER_NAME= webinsider.pl # Samba user name   $USER_PASSWORD= 123456 ;-) # Samba user password    REMOTE_FS= //10.0.0.1/hdd01 # Remote dir  LOCAL_FS= /media/smb01 # Local mount dir    f_install()  {  	sudo cp -r $0 /etc/init.d  	# Debian 7 Wheezy:  	#sudo update-rc.d $NAME defaults  	# Debian 8 Jessie:  	sudo insserv $NAME  	sudo /etc/init.d/$NAME start  	sudo ln -s /etc/init.d/$NAME /bin/$NAME  	exit 0  }    f_uninstall()  {  	sudo /etc/init.d/$NAME stop  	sudo update-rc.d $NAME remove  	sudo rm /etc/init.d/$NAME  	sudo rm /bin/$NAME  	exit 0  }      f_start()  {  	sudo mount -t cifs -o username=$USER_NAME,password=$USER_PASSWORD $REMOTE_FS $LOCAL_FS  	#sudo service minidlna start  	exit 0  }    f_stop()  {  	sudo umount -l $LOCAL_FS  	exit 0  }    # f_restart() only restart) ...      case "$1" in    start)  	f_start  	;;    stop)  	f_stop  	;;    restart)  	f_stop  	f_start  	;;    install)  	f_install  	;;    uninstall)  	f_uninstall  	;;    *)  	echo "Use: "$SCRIPTNAME $COMMANDS  	exit  	;;  esac    exit 0

MiniDLNA

A jeśli tak jak ja chcecie dodatkowo – po zamontowaniu zasobów sieciowych – uruchamiać serwer miniDLNA, to wystarczy lekko zmodyfikować sekcję „f_start”, dodając:

sudo service minidlna start

Czyli całość (sama sekcja „f_start”) będzie wyglądała tak:

f_start()  {  	sudo mount -t cifs -o username=$USER_NAME,password=$USER_PASSWORD $REMOTE_FS $LOCAL_FS  	sudo service minidlna start  	exit 0  }

Pamiętajcie tylko by w takiej sytuacji wyłączyć automatyczny start usługi miniDLNA:

sudo update-rc.d -f minidlna remove

Konfiguracja

Pamiętajcie tylko, by wpisać swoje ustawienia/dane między te 2 linijki:

# START CONFIG HERE:    # END CONFIG

Po instalacji konfiguracja możliwa jest za pomocą polecenia:

sudo nano /etc/init.d/mount-smb

I ew restart:

sudo /etc/init.d/mount-smb restart

Instalacja

Skrypt możecie utworzyć np. za pomocą polecenia:

sudo nano mount-smb

Otworzy Wam się edytor, do którego należy wkleić kod skryptu (zmieniając odpowiednio ustawienia).

Możecie też pobrać skrypt za pomocą polecenia:

sudo wget //webinsider.pl/add/download/?link=mount-smb -O mount-smb

I pamiętajcie o edycji ustawień/parametrów:

sudo nano mount-smb

Następnie wystarczy zapisać i zainstalować:

sudo chmod +x mount-smb    sudo mount-smb install

I to właściwie tyle  – sprawdziłem u siebie, wreszcie rozwiązanie które w 100% działa :-)

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Janusz i Janusz dzięki motywowi Divi od Elegant Themes koszą siano robiąc strony
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Młody Szymon powiedział tacie o promocji dla czytelników WebInsider.pl i zaoszczędzili 80% na księgowości internetowej wFirma