Pi4 háziszerver áttelepítés (migrálása) másik Pi4-re

Sziasztok,

Elérkezett az idő - legalábbis én így gondolom, hogy a jelenleg is tökéletesen működő és napi szinten használt Pi4 raspbian 11 (bullseye) rendszert áttelepítsem az új 12 (bookworm) rendszerre. Ennek alapvetően két oka volt. Az egyik, hogy kb 2-3 hónapja semmilyen frissítés sem érkezett - még FF sem, valamint az új rendszeren aktuálisabb (biztonságosabb - legalábbis én azt hiszem) programok futnak. A másik, hogy szeretném kipróbálni az Openmédiavault nas oprendszert is majd - de ehhez ezt szerettem volna megcsinálni. Volt egy harmadik indok is, hogy csak szeretném kipróbálni. Megpróbálom megint lépésről, lépésre úgy hogy aki kezdő vagy nem ért semmennyire a linuxhoz (lásd én), az is megtudja oldani.

Vannak a telepítésben olyan folyamatok, amik nem változtak, de vannak - mivel meglévő már futó programok - aminek a beállításait át kellett vinni.

Megjegyzem, hogy pl a DC a 11-s verziónál még béta, míg a 12-ben már rég a 1.0.10. Ugyan ez a Qbittorrentnél a 11-ben 4.2.5, míg a 12-ben 4.5.2 stb.

Mielőtt nekikezdesz javaslom elolvasni az előzményt amit itt találsz:

https://linuxmint.hu/blog/2021/11/pi4-haziszerver

Amit alapvetően tudni kell, hogy mi fut nekem ezen és mire használom.

a) Plex media szerver,

b) Qbittorrent,

c) Házi szerver,

d) Unifi site manager,

e) Távoli elérés.

Van még pár dolog, de alapvetően ezek amire használom.

A Pi4 maradt ami volt. Argon ház ebben egy 240gb ssd, de most a bootolást és a rendszer telepítését egy sd kártyáról oldottam meg, azaz az sd-re raktam a rendszert. Így nem kell állandóan szétszednem a házat és a ssd-t kibányászni. Tudom, hogy így lassabb az egész rendszer, de hónapok óta nem volt kikapcsolva és max a FF-t töltöm be ha épp belépek valahová. Az Argon házban lévő ssd-t csak háttértárnak használom a programoknak amiket itt tárolok.

Akkor sorjában:

  1. Rendszer telepítés, alapvető IP beállítások, port forward:

Linux alá feltelepíted a gyári telepítő app imager-t

sudo apt install rpi-imager 

Majd fogod kiírod a kiválasztott iso-t. Én a grafikus minimál iso-t használom. Nekem nem kellenek a sok feltelepített programok, mert nem fogom használni.

Ha ez megvan és feltelepítette magát, akkor intézzük el a frissítést. Majd ha megvan minden, akkor én a routeren fix ip-re raktam ezt a Pi-t is és a már szándékozott portokat ki is nyitottam. Az otthoni routerek álltalában a 198.162.0.1 IP-n csücsülnek. Ide be kell lépni és az alábbiakat javasolt elvégezni. Leírom példával nem ezeket használom, de akár lehetnének ezek is:

  • A Pi mondjuk a 192.168.0.77-s IP-t kapta meg,
  • A Qbittorrent az 1975-s portot,
  • A Plex meg a 32400-t.

Szóval megvolt a telepítés és a frissítés, kiosztásra kerültek a portok, az IP rögzítve.

  1. Apróságok:

Az Argonháznak van egy kis ventilátora. Ennek meg egy apró sh fájlja,amit fel lehetett telepíteni Raspi11 alá, de ott is csak a 32 bit alatti verzión futott. Persze az Argon nem csinálta meg úgy hogy működjön - no comment. Szerencsére hosszas keresgélés után - majd egy adag levelezést követően - lásd #68 issue

https://gitlab.com/DarkElvenAngel/argononed/-/issues/68

a Gitlab-n DarkElvenAngel/ArgonOneDaemon működik. Vezérli a gombot és a beépített ventilátort is. Link:

https://gitlab.com/DarkElvenAngel/argononed

Erről az oldalról másoljuk le a vezérlőprogramot. Szájbarágósan írom, mivel anno, mikor elsőre találkoztam a git-l (persze senki sem magyarázta el mit kell) nehezen jöttem rá a teendőre. Szóval ezt úgy tudjuk megtenni, hogy van egy kék Code feliratú kis ikon/csempe, ezen van egy kis lefele mutató nyíl. Erre bökve megjelenik a "Clone with SSH" alatta a parancs, és alatt a "Clone with HTTPS" jelöljük ki vagy a parancs mellé bökve egyből vágólapra másolja.

Nyissunk egy terminált. A telepítés során a rendszer feltelepítette a git, bash utasításkészletet is. Szóval annyi a teendő, hogy beírjuk:

git clone https://gitlab.com/DarkElvenAngel/argononed.git

majd:

cd argononed

és végül:

sudo bash ./install

Erre lefut a kis installja. Ez azért jobb, mint anno a "gyári", mert nem telepít többet/mást.

Hozzunk létre egy konfig filet és azt helyezzük be az alábbi tartalmat ide (később módosíthatjuk az értékeket):

/etc/argononed.conf

#argononed configuration
fans = 80, 90, 100
temps = 50, 55, 60
hysteresis = 5

Indítsuk el a szolgáltatást:

sudo systemctl enable argononed

Majd, hogy boot során elinduljon a szolgáltatás (és ne manuálisan kelljen indítani):

sudo systemctl start argononed.service

Ha már fut a rendszer parancssorból ellenőrizzük le:

systemctl status argononed

Kb ilyet kell kapnunk:

● argononed.service - Argon One Fan and Button Daemon Service
     Loaded: loaded (/etc/systemd/system/argononed.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-03-28 15:23:52 CET; 55s ago
    Process: 1135 ExecStart=/usr/sbin/argononed (code=exited, status=0/SUCCESS)
   Main PID: 1143 (argononed)
      Tasks: 2 (limit: 8731)
        CPU: 28ms
     CGroup: /system.slice/argononed.service
             └─1143 /usr/sbin/argononed

Mar 28 15:23:52 Rpi64 systemd[1]: Starting argononed.service - Argon One Fan and Button Daemon Service...
Mar 28 15:23:52 Rpi64 systemd[1]: argononed.service: Can't open PID file /run/argononed.pid (yet?) after start: No such file or directory
Mar 28 15:23:52 Rpi64 systemd[1]: Started argononed.service - Argon One Fan and Button Daemon Service.

No... ez is megvan. :)

  • SSH kikapcsolása a Raspi-configban
sudo raspi-config

Majd itt a Interfaces fül és a SSH csuszkát elhúzod.

  • Synaptic csomagtelepítő, és így innét telepítek mindent már. Parancssorból így tudod telepíteni:
sudo apt-get install synaptic
  • Gdebi - deb csomagtelepítő (Synapticcal),
  • Gnome Disks - nekem nem egyértelmű a Gparted, sztm ez a jobb (Synapticcal),
  • Leszedtem a hátteret bootnál - minek?
sudo raspi-config

Majd itt a System fül és a Splash screen csuszkát elhúzod.

  • Double Commander (Synapticcal)
  • Autologin tiltása, parancssorból
sudo raspi-config

Majd itt a System fül és az AUto login csuszkát elhúzod.

  • Dark képernyő képernyő beállításokban
  • az alap pi user-t átneveztem másra

Ezt megtehetjük terminal-ban és a kis app-l is. Én a terminal-t mutatom meg.

passwd

A gyári beállítás "raspberry". Ezt üssük be, majd jöhet az új jelszó, majd ismételten az új jelszó. Lehet fokozni az élvezetet azzal, hogy a pi felhasználót megszüntetjük és létrehozunk egy másikat, de én ezt most hagytam. Sztm ez így most elég elsőre.

  • sudo utasításhoz jelszó kérése:
sudo nano /etc/sudoers

Itt keressük meg az alábbit (pi user):

pi ALL=(ALL:ALL) NOPASSWD:ALL

és írjuk át erre:

pi ALL=(ALL:ALL) PASSWD:ALL
  • root-nak is adtam jelszót (ez majd a Unifi telepítésnél fog kelleni) a 11 alatt ez nem kellett, de itt most valamiért a script lefuttatása miatt kell.
sudo passwd root

Jegyezzük meg jól, mert ha elfelejtjük, kezdhejük előlről!

  • swappiness beállítása:

Ez a beállítási lehetőség azt szabályozza, hogy a Pi memóriájából mennyi legyen használva és mennyi kerüljön a swap partícióra. A gyári beállítás 60. Hogy meggyőződjünk erről kérdezzük le. Ezt a következő képpen tudjuk megtenni:

cat /proc/sys/vm/swappiness

Ahhoz hogy ezt megváltoztassuk a sysctl.conf file-t kell mókolnunk. Ebben a Pi-ben (amit én használok) van 8gb RAM. A Htop nevő alkalmazással kiválóan látható, hogy mennyi memória van használva és mennyi kerül a swap-ra. Mivel a teljes konfiggal kb 1-1,2gb kerül a memóriába, én úgy döntöttem, hogy a swappiness értéket leveszem 10-re.

A következőt tegyük. A terminal-ba írjuk be a következőt:

sudo nano /etc/sysctl.conf

Majd írjuk bele:

vm.swappiness=10

Mentsük el, ctrl+o, ctrl+x.

  • Tűzfal telepítése

A Syníptic keresőjébe beírod, hogy gufw. Ez a grafikus felülete a tűzfalnak, ha ezt telepíted, akkor a ufw is feltelepül. A Start/Preferences/Firewall configuration alatt találod. Kapcsoljuk be a Status-nál. Majd hozzunk létre szabályokat a Plex és a Torrent részére. A "+" jelnél adjunk meg új szabályt, válasszuk a Simple fület, majd adjuk meg a nevét, a Policy-t (Allow), a Direction (Both), és a Protocol-t (Both), végül adjuk meg a szeretett portjainkat amit a plexben és a torrentben használunk. Ja és nyomjunk rá az add gombra. Ezután javaslom leellenőrízni hogy valóban nyitottak-e a portok.

Ugye emlékszünk még, hogy az alábbi portokat kell átengedni a tűzfalon - de lehet más is:

Qbittorrent 1975,

Plex 32400

Total commander: 445

Unifi: 8443; 8080

  • Fail2ban eszköz

Ez a brute-force támadások kivédésre szolgál. Azaz a jelszó feltörése csupán idő kérdése.  Nyissunk egy terminal-t és gépljük be a következőt:

sudo apt install fail2ban

A szolgáltatás a jelenlegi formájában nem fog futni. A pontos javítandókat itt találod:

https://github.com/fail2ban/fail2ban/issues/3292

A szolgáltatás futását ellenőrizd le:

systemctl status fail2ban

Kb ezt kell kapni:

● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: ena>
     Active: active (running) since Thu 2024-03-28 17:27:26 CET; 9s ago
       Docs: man:fail2ban(1)
   Main PID: 3484 (fail2ban-server)
      Tasks: 5 (limit: 8731)
        CPU: 1.067s
     CGroup: /system.slice/fail2ban.service
             └─3484 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Mar 28 17:27:26 Rpi64 systemd[1]: Started fail2ban.service - Fail2Ban Service.
Mar 28 17:27:26 Rpi64 fail2ban-server[3484]: 2024-03-28 17:27:26,774 fail2ban.c>
Mar 28 17:27:27 Rpi64 fail2ban-server[3484]: Server ready
lines 1-13/13 (END)

 

  1. Fstab

Minden meghajtóm ext4-re formatált. A különböző filmeket meg torrentes motyóimat külső winyón tárolom. Az Fstab-ban való meghajtó "rögzítéshez" az UUID-t kérdezzük le blkid-vel

sudo blkid

Erre kapunk valamit és benne egy jó hosszú adatsort, valami ilyesmit:

/dev/sda: LABEL="wd500a" UUID="xxxx3892-xxxx-1111-8b9b-e17a003159f0" BLOCK_SIZE="4096" TYPE="ext4"

Én a következőt másoltam bele az fstab-ba:

UUID=xxxx3892-xxxx-1111-8b9b-e17a003159f0 /mnt/store ext4 auto,nofail,noatime,rw,user 0 0

És így már mindjárt működött is. Ha lehúztam akkor is, mert nem az sda-t mountoltam fel, hanem az adott idhez tartozó meghajtót az mnt/store könyvtárba.

Ezzel felcsatoltam az SSD háttértárat és azt a külső vinyót, amin a már meglévő filmjeim és motyóim vannak.

  1. Qbittorrent

A tárolóban lévőt telepítettem fel. A beállításokat lásd fenn - kijelöltem egy portot, majd portforward-oltam, azaz a routeren kinyitottam az adott portot. Aztán megnéztem működik-e. Működik.

A rapsbianon meg automatikus indításban belerámoltam ide:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

ezt:

@qbittorrent

A programban még beállítottam, hogy nincs splash a tálcára rakja magát indítás után, de most jön aa trükk, mivel már volt egy "futó qbittorrent" korábbról a másik Pi-n és abban egy rakat torrent. A következőt kell tenni a régi pi-n lévő klienssel:

  • Pause all torrents, majd lépjünk ki.
  • DC-ben állítsd be, hogy lásd a rejtett file-t. A Home könyvtáradban másold ki az alábbi könyvtárakat egy az egyben:
    • /home/user név/.cache/qBittorrent/
    • /home/user név/.config/qBittorrent/
    • /home/user név/.local/share/data/qBittorrent/
    • ha megvannak, akkor az új Pi-n állítsd le a torrent klienst, ugyan úgy nyiss egy DC-t, rejtett file-t kapcsold be a régi könyvtárról csinálj egy mentést, majd egy az egyben másold bele a lemásolt tartalmakat.
    • Indítsd el a qbittorrent-t, és a régi beállítások, seedelés ugyan ott folytatódik, ahol abbahagytad.
  1. Plex mediaszerver telepítése

Annyit érdemes tudni a plex-ről, hogy tulajdonképp minden egyes műsor fajtát máshova kell rendezni. Pl. ha van egy sorozatod, ami xye01s01.mkv formátumban van, és belerámolod egy film formátumba, akkor azt a plex nem fogja "látni". Ugyan ez igaz vissza fele is. Ha filmet raksz sorozat könyvtárba - nem látja.

A Plex mediaserver-t et az alábbi módon tudjuk feltelepíteni a módosított leírásért, az útmutatóért és a segítségért köszönet kimarite-nak. :)

https://www.linuxcapable.com/install-plex-media-server-on-ubuntu-linux/

A fenit linkről telepítettem. Kicsit más metodika, mint a korábbi, de lássuk a lépéseket.

sudo apt update && sudo apt update

Majd telepítsük fel az csomagokat.

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl -y

Importáljuk be a GPG kulcsot:

curl -fsSL https://downloads.plex.tv/plex-keys/PlexSign.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/plex.gpg

majd a repository-t:

echo deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

Ezek után futtassuk le az update-t ismét és telepítsük fel a plexmediaserver-t:

sudo apt update
sudo apt install plexmediaserver

És íme fenn is van. Ellenőrizzük le a szolgáltatás állapotát:

systemctl status plexmediaserver

Ha szolgáltatás fut, akkor engedélyezzük rendszerindításnál is az indulást.

sudo systemctl enable plexmediaserver

Indítsd újra a Pi-t és nyiss egy böngészőt. Ide írd bele az ip címed:

192.168.0.20:32400

Jelentkezz be a plexbe. Én email címmel szoktam. Face-m nincs, google-t meg nem csatolom rá.

Ezek után megadhatod a könyvtárakat (itt figyelj arra, hogy milyen tartalom kerül bele - ahogy fent is írtam. Sorozat, film, zene, fénykép, stb. Adhatsz neki bármilyen nevet, csak a tartalom jellege a lényeg.

Ha ez megvan esetleg még a távoli hozzáférést is megadhatod, de akkor a 32500-s (vagy amilyen portot gondolsz) forwardolni kell a router-ben lásd fenn. Távolról (hálózaton kívül) csak megvásárolt Plex-le lehet filmet nézni.

Na ha ezekkel megvagy, akkor még egy dolgot javaslok megnézni, hogy a Plex a könyvtárak tartalmának változását automatikusan szinkronizálja.

Beállítások / a szerver neve / Library / Scan my library automaticaly

  1. Samba share

Míg a filmeket és sorozatokat külön vinyón tárolom, addig a mindenféle kellékeimet (telepítőlemezek és egy szoftveres kellékeket az SSD-n tárolom és ez szépen fel van mountolva.

Megint sokat szívtam - és bevallom nem tudom, hogy mitől kezdett el működni.

Első lépésként a Samba-t. Terminal, majd:

sudo apt-get install samba samba-common-bin

Ez ennyi is volt. A samba az smb.conf fileban tartja a beállításait. Csináljunk egy biztonsági másolatot.

sudo nano /etc/samba/smb.conf

Menjünk szépen a file végére, írjuk ezeket bele:

[share]
Comment = Pi shared folder
Path = /mnt/SSD
Browseable = yes
Writeable = Yes
read only = no
guest only = yes
create mask = 0777
directory mask = 0777
Public = no
Valid users = user név

Megjegyzem, hogy ezekkel a beállításokkal csak a megadott felhasználónak van jogosultsága van mindenhez. Meg kell még adni a samba felhasználót. nekem pi a felhasználó, de ha más a Tied akkor ezt írd át.

sudo smbpasswd -a pi

Majd ehhez a jelszót is.

Ezek után vagy indítsuk újra a Pi-t vagy terminalban írjuk be:

sudo service smbd restart

Ezzel újraindítjuk a szolgáltatást.

  1. Távoli hozzáférés

Anno még az Anydesk-t használtam, meg a Teamviewer-t. A Teamviewer ólomnehéz és egy idő után folyton piszkál, hogy mit akarok, de rájöttem, hogy van "gyárilag" Real VNC telepítve és töklegálisan lehet szervert készíteni. Jelenleg a Real VNC szolgáltatás nem fut Wayland alatt (kipróbáltam tényleg nem fut) csak X11-l.

Leírás itt:

https://help.realvnc.com/hc/en-us/articles/4417193011857-How-do-I-disable-Wayland-to-use-RealVNC-Connect#which-linux-distributions-use-wayland--0-1

Az alábbiakat kell tenni:

  • Indítsd el a raspi config alkalmazást
sudo raspi-config

Majd itt:

  • Menj a 6 Advanced Options, utána válaszd az A6 Wayland sorokhoz,
  • Válaszd a W1 X11 sor és fogadd el.
  • Reboot.

Elvileg a rendszer telepítésénél már feltelepítésre került a RealVNC szerver, a reader-re nem lesz szükség, mert nem akarunk mást irányítani. Megint menj be a Raspi-config-ba ahogy előbb is és itt:

  • Interfaces felületen kapcsolt be a VNC csuszkát Enabled-re, így mikor a Pi indul a VNC is elindul
  • Be kell regisztrálni a VNC oldalán
  • Indítsd újra a Pi-t és az alsó szalagon látnod kell a VNC ikon-t. Klikk, majd a Connectivity felirat alatt láthatod hogy ott van Sign in. Bejelentkezel és csatlakoztatva van.

Ha mégsem lenne feltelepítve a VNC, akkor az alábbi módon tudod:

sudo apt-get update 
sudo apt-get install realvnc-vnc-server 
  1. Unifi controller átvitele egyik Pi-ről a másikra (migrálás)

Na ez viszonylag egyszerű lesz. Elvileg már van egy meglévő Unifi és jelenleg is futó controller. Ha ezzel megvagy, akkor lépj be a webes felületen a Site manager oldalra

https://account.ui.com/login

 Itt a Settings (bal oldalon a fogaskerék), Backups fül, majd ott a Downloads-re klikkelve töltsük le a beállításokat. A lehetősége közül az Setting only opciót kell választani. Ezt a file-t mentsük le a Pi-re.

Ezek után a Unifi Installation Scriptet kell feltelepíteni. Ezt a korábbi blogban leírtam, de itt a teljes leírás:

https://community.ui.com/questions/UniFi-Installation-Scripts-or-UniFi-Easy-Update-Script-or-UniFi-Lets-Encrypt-or-UniFi-Easy-Encrypt-/ccbc7530-dd61-40a7-82ec-22b17f027776

Szintén itt lehet a Controllert updatelni, de ez egy másik téma.

Itt lesz fontos az, hogy a root-nak legyen jelszava, mert nem fog jól lefutni az új raspbian-n a script, ha csak simán sudo-val csináljuk.

Szóval ha a Script lefutott, akkor jelentkezzünk be és alul az oldal alján válaszzuk a Backup lehetőséget. Itt töltsük fel a lementett filet. Elvileg meg is vagyunk vele. Innéttől már az új Pi fogja a controller funkcióit ellátni. A régit meg törölhetjük. Mikor a régi kontroller megszűnik létezni, az új átveszi a szerepét pár másodperc alatt.

Megj.: Ha a Controller telepítése során elrontottunk valamit, akkor sem kell kétségbe esni, mert a

apt-get purge unifi

utasítással teljesen eltávolíthatjuk. Ezek után újra lehet kezdeni minden gond nélkül.