Qnap
Inhaltsverzeichnis
Allgemein
Qnap Port List
FTP - 21 by default and configurable. Passive FTP port - 55536 ~ 56559 by default and configurable SSH - 22 by default and configurable. SMTP - 25 by default and configurable. Web Server/HTTP - 80; HTTPS - 8081 by default and configurable. Netbios/SAMBA - 137, 138, 139, 445 SSL/HTTPS - 443 by defualt and configurable AFP - 548 Rsync - 873 by default and configurable. RTRR - 8899 by default and configurable MySQL - 3306 by defualt and configurable System management, Web File Manager, Multimedia Station, Download Station, Surveillance Station 8080 by default and configurable. Twonkymedia - 9000 Telnet - 13131 by default and configurable BitTorrent - 6881~6999 by default and configurable. Syslog - 514 by defualt and configurable SNMP - 161 by default and configurable TFTP - 69 by default and configurable PPTP - 1723 OpenVPN - 1194 by defualt and configurable RADIAUS - monitors UDP ports 1645, 1812 (for RADIUS Authentication) and 1646, 1813 (for RADIUS Accounting) for RADIUS requests. LDAP Server - 389 NFS - 2049, 111 and dynamic ports
Support
QNAP Support Deutschland: 0900/1845678 (1,49€/min Festnetz, 2,79€ Mobilfunknet)
Logs erstellen:
- QNAP APP Center öffnen
- QNAP Diagnostic Tools herunterladen & öffnen
- Dump der Logs erstellen & herunterladen
- Mail an "desupport@qnap.com" senden inkl. Kontakt Rufnummer & Log Dump`s
Dienste
Backup with Restic
Da es QNAP selber nicht schafft ordentliche Backup Tools mitzuliefern...
Restic installieren
- Restic besorgen entweder selber machen (via Shell)
- oder bereits als qpkg herunterladen und via WebGUI über den AppStore manuell hinzufügen
Restic Wrapper
Vereinfacht die ohnehin unkomplizierte Bedienung noch mehr = restic Wrapper (Mit Nagios/Icinga Support), habe ich hier gefunden :-)
wget https://raw.githubusercontent.com/binarybucks/restic-tools/master/bin/backup mv backup restic-backup.sh chmod +x restic-backup.sh
Noch etwas config - Ich erstelle ein Backup aller Freigabeorder auf eine via USB verbundene Externe HDD
mkdir /etc/backup vim /etc/backup/local.config BACKUP_HOSTNAME=$(hostname -f) BACKUP_DIR="/share/CACHEDEV1_DATA/" / Pfad ggf. anpassen BACKUP_ARGS="--tag filesystem" vim /etc/backup/extern.repo RESTIC_REPOSITORY="/share/WD30EFRX" RESTIC_PASSWORD='AENDER-MICH'
Man sollte noch eine exclude Datei anlegen, um nicht benötigte Ordner vom Backup auszuschließen. Der nachfolgende Befehl kann dafür hilfreich sein:
ls -al /share/CACHEDEV1_DATA/ | cut -d " " -f 9,10
Exclude Datei erstellen & öffnen
vim /etc/backup/local.exclude
Ordner die ich nicht sichern möchte eintragen
.antivirus/ .appDB/ aquota.user .@backup_config/ .@backup_qbox/ .codesigning/ .idmap/ .ldapdb/ .locks/ .log/ .nc/ .php_session/ .php_session_sys/ .qbox/ .qbox_view/ .@qmariadb/ .@qmonitor/ .@qsync/ .qpkg/ .samba/ .spool/ .SSDLaboratory/ .swap/ .system/ .team_folder/ .tmp/ .versioning/
so das wars =)
testen
Repository initialisieren
./restic-backup.sh extern.repo init
Erstes Backup erstellen
./restic-backup.sh extern.repo local
Entware
Um Busybox etwas zu berreichern gbt es nun Entware, wer lämnger dabei ist -> Früher gab es ipgk Optware für diesen Zweck. Vorher kurz Architektur prüfen (siehe Shell befehle) und entsprechendes Paket downlaoden & manuell über den WebGUI App-Center installieren.
Für Screen sieht das dann so aus:
opkg update && opkg upgrade && opkg install screen export TERMINFO=/opt/share/terminfo <pre> == Rsync == Auf der Shell zu finden unter namen "qsync" unter dem Pfad "/etc/config/qsync". === Profile === In Profilen werden Verbindungsinformationen zu Server abgelegt. <pre> #/etc/config/qsync/hbrm_profile.conf Hier werden die Profile abgelegt, sieht dann wie folgt aus: [Profile0] Name = Local_Profile InUse = 0 [Profile2] StorageType = 1 Ssh = 0 Name = RSYNC_Old1 INetAddr = 192.168.23.5 Account = admin Port = 873 EnPassword = V2@De3TlXYZbC94JqfXYZCnfA== Ssl = 0 InUse = 1 RsyncMode = 0
Speicher
/etc/config/qsync/hbrm_storage.conf [Storage1] Name = Storage_Old1 Path = /XYZ-Pfad ProfileID = Profile1 ConnectStatus = 0 TotalCapacity = 44796761 UsedCapacity = 44796105 [Storage0] ProfileID = Profile1 Name = Remote Storage 1 DestRoot = / Path = /XYZ-Pfad/ ConnectStatus = 0 TotalCapacity = 105708282 UsedCapacity = 0
Links
TimeMachine
NFS
- QTS 4.2.2 -> NFSv2/v3 Server auf Port 2049
- http://kodi.wiki/view/NFS#QNAP
/etc/config/nfssetting // nfs rechte config /etc/exports // freigabe /etc/init.d/nfs {start|stop|restart|reexport|remountd|create_keytab}
Virtualization Station
Paralells Desktop VM migration
Wer von eine VM von einen OSX Paralells Desktop auf einen QNAP VM Host migrieren möchte, nimmt dafür am besten die Testversion von VMware Fusion, hier kann man im Gegensatz zum Paralells Desktop die VM direkt in .ovh (Open Virtualization Format) exportieren und somit direkt in das QNAP Virtualization Station importieren. Mit Paralells Desktop müsste man nach dem Export noch eine Konvertierung durchführen, kann man so machen aber ist halt.....
WIndows ACL
Shell Befehle
Hier läuft Busybox!
Server Linux version
busybox | head -1 hal_app --se_sys_get_board_sn enc_sys_id=root // S/N auslesen
CPU & Architektur
cat /proc/cpuinfo cat /proc/cpuinfo |grep model uname -m
Dump Qnap Logs
Falls die GUI mal nicht funktioniert, geht das auch via Shell ;)
/mnt/ext/opt/qdesk/www/data/script/get_log $(get_hwsn)
Der gepackte Dump liegt dann hier, und kann mit scp (von der lokalen shell) dann nach Hause kopiert werden
cd /tmp/helpdump/ scp admin@192.168.XXX.XXX:/tmp/helpdump/QXXXXXXXXX.zip Pfad/auf/euren/client/
Enclosure
rm /etc/config/enclosure.map // Erweiterngseinheiten zurücksetzen cp /etc/config/raid.conf /etc/config/raid.conf.bckp // Sicherheitskopie vim /etc/config/raid.conf // Altes Raidgruppe + HDD`s entfernen
HDD
df -h // Mit "disk free" eingehängte Partitionen auflisten, "-h" = human radable fdisk /dev/sdg1 // Mit "Fixed Disk" z.B. externe Platten auswählen, hier z.B. "/dev/sdg1" p // fdisk menü: Partionen der o.g. Platte anzeigen d // fdisk menü: Partitionen der o.g. Platte löschen m // fdisk menü: Verfügbare Dateisysteme anzeigen n // fdisk menü: Neue Partition anlegen
Netzwerk
ifconfig eth4 10.0.2.20 netmask 255.255.255.0
Raid
cat /proc/mdstat // Kurze Zusammenfassung aller Raid // Ausgaben: md9 // System (Raid 1) md13 // Swap (Raid 1) md321 // Extended Swap (Raid 1)
Qsync
cat /etc/logs/qsync/qsync-Job0.log
qcli
qcli -l user=admin pw=admin saveauthsid=yes // login first ;-) qcli_admin qcli_firmwareupdate qcli_log qcli_pool qcli_rtrrserver qcli_timezone qcli_vpnserver qcli_backuprestore qcli_hardware qcli_mysqlserver qcli_power qcli_sharedfolder qcli_usergroups qcli_wifi qcli_cache qcli_hdd qcli_nastonas qcli_quota qcli_snapreplica qcli_users qcli_domaincontroller qcli_iscsi qcli_network qcli_raid qcli_snapshotvault qcli_virtualdisk qcli_domainsecurity qcli_iscsiacl qcli_networkrecyclebin qcli_rsync qcli_storage qcli_volume qcli_encrypt qcli_iscsibackup qcli_networkservice qcli_rsyncserver qcli_systemstatus qcli_volumesnapshot qcli_externaldevice qcli_iscsisnapshot qcli_ntp qcli_rtrr qcli_timemachine qcli_vpnclient qcli_hdd -l // Zeigt alle aktiven enclosures qcli_hdd -D enclosureID=0 // Zeigt alle Disks der gewählten enclosure
Debian
- ARM = https://wiki.qnap.com/wiki/Debian_Installation_On_QNAP
- x86 = https://www.pro-linux.de/artikel/2/1530/2,installation-von-debian.html
Produkte
TS-439 Pro II+
Specs
- CPU: Intel(R) Atom(TM) CPU D425 @ 1.80GHz
- RAM: 1GB
Openssh
Eigentlich hat die Orginale Firmware schon einen sshd, aber der will nur den user "admin" reinlassen unter anderem. Das war anfangs kein problem, bis ich git über den ipkg-manager installiert hatte und einen anderen user via ssh einloggen wollte. Eine kurze Recherche ergab, das jemand schon ein Kochrezept dafür bereitliegen hat.
RAM Upgrade
- Default RAM: 1x 1GB ADATA AD2S800B1G6-B (SODIMM, DDR2, PC-6400, CL6, 800MHz)
- Upgrade RAM: 1x 2GB Kingston KVR800D2S6/2G (SODIMM, DDR2, PC2-6400, CL6, 800 MHz)
SNMP
Check_mk
Da war jemand schon schneller ;-)
OpenNMS
Icinga Plugin
Gibt es schon, mehr dazu hier
Debian
- https://www.cyrius.com/debian/kirkwood/qnap/ts-41x/install/
- https://wiki.debian.org/InstallingDebianOn/QNAP
OID`s
MIB | OBJECT LABEL | OBJECT ID | Data Type | Value (Example) |
MIB-2 | .1.3.6.1.2.1 | - | ||
- | system | .1.3.6.1.2.1.1 | - | |
- | sysDescr.0 | .1.3.6.1.2.1.1.1.0 | OctetString | "GS1910-24HP 24x1G Ethernet Switch" |
- | sysUpTime.0 | .1.3.6.1.2.1.1.3.0 | TimeTicks | "Timeticks: (9400662) 1 day, 2:06:46.62" |
- | sysContact.0 | .1.3.6.1.2.1.1.4.0 | OctetString | "your@email.tld" |
- | sysName.0 | .1.3.6.1.2.1.1.5.0 | OctetString | "switch_23" |
- | sysLocation.0 | .1.3.6.1.2.1.1.6.0 | OctetString | "Rack 3" |
Interfaces | .1.3.6.1.2.1.2 | - | ||
at | .1.3.6.1.2.1.3 | - | ||
IP | .1.3.6.1.2.1.4 | - | ||
ICMP | .1.3.6.1.2.1.5 | - | ||
TCP | .1.3.6.1.2.1.6 | - | ||
UDP | .1.3.6.1.2.1.7 | - | ||
SNMP | .1.3.6.1.2.1.11 | - | ||
HOST-RESOURCES-MIB | host | .1.3.6.1.2.1.25 | - | |
- | hrStorageSize | .1.3.6.1.2.1.25.2.3.1.5.33 | Integer | - |
- | hrStorageUsed | .1.3.6.1.2.1.25.2.3.1.6.33 | Integer | - |
Enity MIB | .1.3.6.1.2.1.47 | - | ||
MAC Adress | entPhysicalSerialNum | 1.3.6.1.2.1.47.1.1.1.1.11.1 | OctetString | "aa-bb-cc-dd" |
Firmware Version | entPhysicalFirmwareRev | .1.3.6.1.2.1.47.1.1.1.1.9.1 | OctetString | "V2.00(AAAY.0)C0" |
NAS-MIB | storage | .1.3.6.1.4.1.24681 | - | - |
- | SystemCPU-Usage | .1.3.6.1.4.1.24681.1.2.1.0 | OctetString | "0,90 %" |
- | SystemTotalMem | .1.3.6.1.4.1.24681.1.2.2.0 | OctetString | "989.0 MB" |
- | SystemFreeMem | .1.3.6.1.4.1.24681.1.2.3.0 | OctetString | "266.0 MB" |
- | CPU-Temperature | .1.3.6.1.4.1.24681.1.2.5.0 | OctetString | "43 C/109 F" |
- | SystemTemperature | .1.3.6.1.4.1.24681.1.2.6.0 | OctetString | "42 C/107 F" |
- | HdNumber-Usage | .1.3.6.1.4.1.24681.1.2.10.0 | OctetString | "4" |
- | SysFanNumber | .1.3.6.1.4.1.24681.1.2.14.0 | Integer | "1" |
- | SysFanSpeed | .1.3.6.1.4.1.24681.1.2.15.1.3.1 | OctetString | "1280 RPM" |
- | SysVolumeNumber | .1.3.6.1.4.1.24681.1.2.16.0 | Integer | "1" |
- | SysVolumeStatus | .1.3.6.1.4.1.24681.1.2.17.1.6 | OctetString | "Ready" |
- | HdSmartInfo | .1.3.6.1.4.1.24681.1.2.11.1.7.{1-4} | OctetString | "Good" |
- | HdTemperature | .1.3.6.1.4.1.24681.1.2.11.1.3.{1-4} | OctetString | " 36 C/96 F" |
TS-470 Pro
RAM Upgrade
Es müssen die Festplatten ausgebaut werden, anschließend sind die RAM Slots erreichbar. Slot 1 ist gut erreichbar, Slot 2 etwas schwerer, wer es sich leicht machen will, baut nur 8GB RAM auf Slot 1 nach, der Standard 2GB RAM ist auf Slot 2 verbaut. Für den geschickten Techniker sollte es aber auch kein Problem sein beide Riegel zu tauschen.
- Kompatibler RAM
TVS-471
Gibt es mit in folgenden Ausführungen:
- TVS-471-PT-4G: Dual-core Intel G3250 3.2 GHz Processor + 4 GB DDR3 RAM
- TVS-471-i3-4G: Dual-core Intel Core i3-4150 3.5 GHz Processor + 4 GB DDR3 RAM
RAM Upgrade
Bei diesen Modell wird ein Riegel von der Innenseite (HDD Schacht1) ausgetauscht, der andere ist von der Außenseite sehr gut erreichbar nachdem das Gehäuseblech (3 Schrauben) entfernt wurde.
- Default RAM: Transcend 4GB kit (2x2GB) DDR3 PC3-12800,1600MHz, 702662-3524
- Upgrade RAM: Crucial 16GB kit (2x8GB) DDR3 PC3-12800,1600MHz, CT2K8G3S160BM
TS-879U-RP
Zubehör
Rails
- A03-Serie (Gehäuse), Schienenset, maximale Belastbarkeit 57 kg
RAM Upgrade
Anforderung: DDR3 - 8 GB - DIMM 240-PIN - 1600 MHz / PC3-12800 - ungepuffert - nicht-ECC - für QNAP TS-1270U-RP, TS-1279U-RP, TS-1679U-RP, TS-870U-RP, TS-879U-RP
- Default RAM:
- Upgrade RAM: Bsp.
VTx aktivieren
Um auch bei diesen Modell die Virtualization Station nutzen zu können, muss man zuerst im Bios die VTx (Intel Virtualization Technology, Intel) Funktion aktivieren. Dafür einen Monitor + Tastatur am QNAP anschliessen & ins Bios neustarten. Wie das genau geht ist hier beschrieben:
- de https://www.qnap.com/de-de/qa/con_show.php?op=showone&cid=258
- en https://www.qnap.com/en/qa/con_show.php?op=showone&cid=258
TVS-871U-RP
Zubehör
Rails
- RAIL-B02
TVS-872XU-RP
Zubehör
Rails
- RAIL-B02
Zubehör
SAS-12G2E-U
Es handelt sich hier um einen SAS Controller von LSI vom Typ SAS3008 (SAS3008 PCI Express® to 8-Port 12 Gb/s SAS+SATA Controller)
- https://www.broadcom.com/products/storage/sas-sata-controllers/sas-3008
- https://docs.broadcom.com/docs/12351998
Troubleshooting
AFP
CNID-DB
Fehlerbeschreibung: Es erscheint folgende Fehlermeldung beim Zugriff auf eine Freigabe via AFP: "Something wrong with the volume's cnid db using temporary cnid db instead. Check server messages for details!"
Fehlerursache: Es scheint die CNID-DB ("Catalog Node ID" Datenbank) der AFP-Freigabe Schaden genommen zu haben.
Fehlerbehebung: .AppleDB der jeweiligen Freigabe löschen via ssh, AFP erstellt den Ordner neu. QNAP Howto
ssh admin@<nas-ip> // Als admin via ssh anmelden find / -name cnid2.db | sed 's/\/share/rm -r \/share/' > rm_cnid // CNID-DB`s suchen | "rm -r" einfügen > Ergebnis in Datei speichern chmod u+x rm_cnid // User Rechte zur Ausführung des Skripts geben ./rm_cnidb // Skript ausführen
- Hier gibts es auch noch was http://netatalk.sourceforge.net/2.1/htmldocs/dbd.1.html
Freigabeorder weg
Wenn der Server mit einen Stromausfall heruntergefahren wurde, kann es passieren das AFP Freigabe Ordner verschwinden unter SMB noch sichtbar. Aus bisher unbekannten Gründen wird der Ordner auf "versteckt" gesetzt, so macht ihr in wieder Sichtbar:
Netzlaufwerk mounten via Finder
- Den Finder öffnen anschliessend Shortcut "CMD+K" ausführen (Dialog "Mit Server verbinden zu öffnen")
- Im neuen Dialog Fenster Pfad angeben: "afp://<SERVER-IP>/<PFAD>", falls es keine öffentliche Freigabe ist werdet ihr anschließen nach Benutzernamen + Passwort gefragt.
Alternativ Netzlaufwerk mounten via Terminal
sudo mkdir /Volumes/<FREIGABENAME> // Ordner für die Freigabe anlegen sudo mount -t afp afp://user:pass@<SERVER-IP>/<PFAD> /Volumes/<FREIGABENAME> // Netzlaufwerk einhängen
Jetzt zu den Pfad Navigieren wo sich der fehlende Ordner befindet und unsichtbare Ordner anzeigen:
cd /Volumes/<FREIGABENAME>/ // In das entsprechende Verzeichnis wechseln defaults write com.apple.finder AppleShowAllFiles TRUE // Versteckte Ordner sichtbar machen
Anschliessend entsprechende Ordner wieder sichtbar machen
sudo SetFile -a v <UNSICHTBARER-ORDNER>/ // Datei Attribute auf in/visible setzen sudo chflags nohidden <UNSICHTBARER-ORDNER>/ // Datei Flags auf sichtbar stellen (nur GUI) defaults write com.apple.finder AppleShowAllFiles FALSE // Versteckte Ordner unsichtbar machen sudo umount /Volumes/<FREIGABENAME> // Netzlaufwerk aushängen falls es nicht mehr gebraucht wird
Dateien werden zeitverzögert gelöscht
Dateien werden stark zeitlich versetzt (15-60sek.) gelöscht
Freigabe -> Option "Erweiterte Ordnerzugriffsrechte aktivieren" -> Ein & wieder ausschalten Manchmal reicht es auch schon den Netzwerkpapierkorb zu deaktiveren und wieder aktivieren
- forum.qnap.com/viewtopic.php?f=189&t=41733
Malware
Derek
curl https://download.qnap.com/Storage/tsd/utility/derek-be-gone.sh | sh
Quelltext:
#!/bin/sh ###################### # Derek Be Gone v1.1 # # Author: qnapd # ###################### set_mutable() { if [ ! -e "$1" ]; then return 0 fi if [ -e /etc/IS_64BITS ]; then # 64bit set mutable SET_M_64="$1" echo " [*] Setting mutable 64bit on $SET_M_64" python -c "import os,fcntl,sys,struct;fd = os.open('${SET_M_64}', os.O_RDONLY); rec = struct.pack('L', 0); x = fcntl.ioctl(fd, 0x80086601, rec); flags = struct.unpack('L',x)[0]; was_immutable = flags & 0x00000010; flags = flags & ~0x00000010; f = struct.pack('i', flags); fcntl.ioctl(fd, 0x40086602, f); os.close(fd)" else # 32bit set mutable SET_M_32="$1" echo " [*] Setting mutable 32bit on $SET_M_32" python -c "import os,fcntl,sys,struct;fd = os.open('${SET_M_32}', os.O_RDONLY); rec = struct.pack('L', 0); x = fcntl.ioctl(fd, 0x80046601, rec); flags = struct.unpack('L',x)[0]; was_immutable = flags & 0x00000010; flags = flags & ~0x00000010; f = struct.pack('i', flags); fcntl.ioctl(fd, 0x40046602, f); os.close(fd)" fi } remove_bad_thing() { badpath="$1" if [ -e "$badpath" ]; then echo " [*] Removing $badpath" rm -rf "$badpath" if [ $? -eq 0 ]; then echo " [+] Success!" else echo " [-] Failed" fi fi } # clear fake qpkg bdir= test -f "${confdir}/smb.conf" && for i in homes Public Download Multimedia Web Recordings; do bdir=`getcfg "$i" path -f "${confdir}/smb.conf"` && test ! -z "$bdir" && bdir=`dirname "$bdir"` && test -d "$bdir" && testwriteable=$(mktemp "${bdir}/.tmp.XXXXXX") && rm "${testwriteable}" && break; bdir=''; done test -z "${bdir}" || test ! -d "${bdir}" && { command -v readlink >/dev/null 2>&1 || ln -sf /bin/busybox /usr/bin/readlink; for i in Public Download Multimedia Web Recordings homes; do bdir=`readlink "/share/${i}" 2>/dev/null` && test ! -z "$bdir" && bdir=`dirname "$bdir"` && bdir=/share/${bdir##*/} && test -d "$bdir" && break; done; test -z "${bdir}" || test ! -d "${bdir}"; } && { bdir=`getcfg SHARE_DEF defVolMP -f "${confdir}/def_share.info"` test -z "${bdir}" || test ! -d "${bdir}"; } && { bdir=`mount | sed -n "s/.*\(\/share\/[^ /]\+\) .*/\1/gp" | head -n 1` test -z "${bdir}" || test ! -d "${bdir}"; } && { for i in CACHEDEV3_DATA CACHEDEV2_DATA CACHEDEV1_DATA MD0_DATA; do test -d "/share/${i}" && bdir="/share/${i}" && break; done; test -z "${bdir}" || test ! -d "${bdir}" && bdir=/mnt/HDA_ROOT; } echo "[o] System path: ${bdir}" echo "[o] Removing fake qpkg" remove_bad_thing "${bdir}/.qpkg/.liveupdate/" remove_bad_thing "${bdir}/.qpkg/.config/" echo "---" # clear dom mdir=/tmp/config __BOOT_DEV= __model=`getcfg System "Internal Model"` CONFIG_DEV_NODE=`getcfg "CONFIG STORAGE" DEVICE_NODE -f /etc/platform.conf` CONFIG_DEV_PART=`getcfg "CONFIG STORAGE" FS_ACTIVE_PARTITION -f /etc/platform.conf` CONFIG_DEV_FS=`getcfg "CONFIG STORAGE" FS_TYPE -f /etc/platform.conf` __BOOT_CONF=`test -f /etc/default_config/BOOT.conf && cat /etc/default_config/BOOT.conf 2>/dev/null || cat "${confdir}/BOOT.conf"` || { test "$arch_o" = arm && __BOOT_CONF=TS-NASARM; } command -v hal_app > /dev/null 2>&1 && { __BOOT_DEV=$(hal_app --get_boot_pd port_id=0); } test "${__BOOT_CONF}" = TS-NASARM || test "$arch_o" = arm && { test -f /etc/IS_TAS && __BOOT_DEV="${__BOOT_DEV:-/dev/mtdblock}7" || __BOOT_DEV="${__BOOT_DEV:-/dev/mtdblock}5"; } || __BOOT_DEV="${__BOOT_DEV:-/dev/sdx}6" test "x${CONFIG_DEV_NODE}" != "x" && { ubiattach -m "${CONFIG_DEV_PART}" -d 2; mount -t ubifs ubi2:config "${mdir}" > /dev/null 2>&1 || { test -f /etc/IS_TAS && mount -t ext4 /dev/mmcblk0p7 "${mdir}"; } } || mount ${__BOOT_DEV} -t ext2 ${mdir} || { test "${__model}" = "TS-201" && mount -t ext2 /dev/mtdblock4 ${mdir}; } || { ubiattach -m "${CONFIG_DEV_PART}" -d 2; mount -t ubifs ubi2:config "${mdir}"; mount -t ext4 /dev/mmcblk0p7 "${mdir}"; } || { test "${__model}" = "TS-269L" && mount -t ext2 /dev/sdc6 ${mdir}; } || { test "${__model}" = "TS-869" && mount -t ext2 /dev/sdi6 ${mdir}; } || { test "$arch_o" = arm || ${__BOOT_CONF} = "TS-NASARM" && { for i in 5 7 4 6 3 8; do mount -t ext2 "/dev/mtdblock${i}" ${mdir} && break; done; }; } || { test "$arch_o" = x86 && for n in /dev/sdc /dev/sdx /dev/sdi $__BOOT_DEV; do for i in 6 $CONFIG_DEV_PART; do mount -t ext2 ${n}${i} ${mdir} && break 2; done; done; } || { mount -t ext2 $(/sbin/hal_app --get_boot_pd port_id=0)6 ${mdir}; } echo "[o] Cleaning DOM" remove_bad_thing "$mdir/autorun.sh" for i in $mdir/K0*.sh; do remove_bad_thing "$i" done umount "$mdir" echo "---" # reinstall MR echo "[o] Remove old MR" mrpath="${bdir}/.qpkg/MalwareRemover/" set_mutable "$mrpath" set_mutable "$mrpath/modules/10_derek_3.pyc" set_mutable "$mrpath/modules/12_derek_3.pyc" remove_bad_thing "$mrpath" rmcfg MalwareRemover -f /etc/config/qpkg.conf echo "---" echo "[o] Install new MR" mrpkg=MalwareRemover_3.4.0_20190121_173849.qpkg wget -nv "https://download.qnap.com/Storage/tsd/utility/$mrpkg" sh "$mrpkg" > /dev/null 2>&1 getcfg MalwareRemover Enable -f /etc/config/qpkg.conf > /dev/null if [ $? -eq 0 ]; then echo " [+] Success!" else echo " [-] Failed" fi rm -f "$mrpkg" echo "---" echo "Finished!" rm -f "$0"
Migration
4.2.X -> 4.3.X
Am besten gar nicht erst migrieren sondern neu anlegen ist mein Fazit...
Hier die Dinge die auf jeden Fall nicht mehr funktionieren:
- RSYNC Backup Jobs müssen neu angelegt werden
- NFS Freigaben funktionieren nur noch Fehlerhaft (Ordner werden nicht korrekt angezeigt/verschwinden im Zugriff)
NFS
In der Nachfolgenden Fehlersuche gehen wir mal davon aus der Server die IP-Adresse 192.168.23.23 hat und der Client sich im gleichen Netz befindet mit einer abweichende IP-Adresse (z.B. 192.168.23.42).
- Physikalische Verbindung prüfen (Client: Ping 192.168.23.23)
- Prüfen ob RPC Messages durch das Netzwerk gelassen werden (Firewall Log prüfen)
- Prüfen ob der entsprechende RPC Dienst läuft (Server & Client) ggf. neustarten (/etc/init.d/nfs restart)
- Server: "rpc.nfsd -d"
- Client: "rpcinfo -p 192.168.23.23 | grep nfs"
- Funktioniert die Freigabe (Client: showmount -e 192.168.23.23)
- Freigabe neu verbinden (Client: umount)
- Wenn es hier noch probleme gibt wird es tricky, am besten pakete mitschneiden (z.B. Wireshark) und nachfolgende Befehle
ls -ld /pfad/zur/freigabe getfacl /pfad/zur/freigabe dmesg | grep NFS* nfsstat
Links
- https://linux.die.net/man/8/nfsstat
- https://wiki.archlinux.org/index.php/NFS/Troubleshooting#Debugging
- https://www.linuxquestions.org/questions/linux-newbie-8/can-see-my-nfs-share-but-not-the-files-folders-inside-it-4175621092/page3.html
- https://www.thegeekdiary.com/troubleshooting-common-nfs-issues-in-linux/