Backup Festplatte nicht gemountet

lethuer

Member
Apr 18, 2024
43
0
6
Hi !

Ich habe eine externe Platte an meinem Nuc und bekomme bei Ausführung meines automatischen Backups manchmal diese Fehlermeldung:
Code:
TASK ERROR: could not activate storage 'Backup': unable to activate storage 'Backup' - directory is expected to be a mount point but is not mounted: '/mnt/pve/Backup'

Das Thema ist nach einem einfachen Reboot von Proxmox wieder gelöst.
Das Problem ist jetzt nur, dass ich das nicht unbedingt sofort mitbekomme und ich damit einige Zeit ohne Backup unterwegs bin.
Kann man:
1. Proxmox automatisiert neu starten wenn die Backup Platte als nicht gemountet erkannt wird ?
2. Irgendwie eine Benachrichtigung (am liebsten per Telegram) schicken lassen ?
3. automatisch 1x die Woche proxmox neu starten ?
 
Warum nicht einfach so eine Lösung wie AutoFS nutzen? Sonst einfach regelmäßig mount -a durchführen lassen.
Ich würde aber mal schauen warum sich die Disk immer wieder unmountet, eventuell ist da ein Powersafe Feature aktiv.
 
  • Like
Reactions: Johannes S
Ist schon wieder passiert und die externe platte war nicht mehr gemounted...
ein power saving feature finde ich aber nicht, wo muss ich danach suchen ?

mount -a habe ich in der proxmox shell eingegeben, das hat aber nichts geändert und die platte war weiterhin nicht gemountet ?!
hab ich was falsch gemacht oder was musss ich genau eingeben ?

laut doku werden mit mount -a alle filesystems die in fstab gelistet sind gemounted.
das steht bei mir in "fstab":
1739115169576.png

wie könnte ich den befehl dann regelmäßig ausführen lassen ?

Nach dem proxmox reboot steht da wieder das:
1739114214876.png
 
Last edited:
Da der Mountpoint nicht in der fstab steht, hilft natürlich auch ein mount -a nicht.
Da ich sonst unter Proxmox nie mit Dateisystemen arbeite, weiß ich auch nicht wie du das löst.
Die Mount informationen stehen in der: /etc/pve/storage.cfg
 
Könnte man nicht statt mount -a ein mount mit genauer Bezeichnung des Laufwerks machen ?

wenn ich mount -l eingebe finde ich unter anderem diese zeile für die externe platte:
/dev/sdb1 on /mnt/pve/Backup type ext4 (rw,relatime)

anschließend hab ich nun die platte mal kurz ausgesteckt und wieder eingesteckt.
danach ist die platte nicht mehr gemounted und der oben stehende eintrag ist nach erneuter eingabe von mount -l auch nicht mehr zu finden
1739211676512.png

Die Mount informationen stehen in der: /etc/pve/storage.cfg
Code:
root@proxmox:~# cat /etc/pve/storage.cfg
dir: local
        path /var/lib/vz
        content backup,vztmpl,iso

lvmthin: local-lvm
        thinpool data
        vgname pve
        content images,rootdir

dir: Backup
        path /mnt/pve/Backup
        content rootdir,backup,vztmpl,iso,snippets,images
        is_mountpoint 1
        nodes proxmox
 
Last edited:
Könnte man nicht statt mount -a ein mount mit genauer Bezeichnung des Laufwerks machen ?
wenn ich jetzt mount /dev/sdb1 /mnt/pve/Backup eingebe ist die platte anschließend wieder gemounted.

1739213459148.png

nach mount -l taucht der eintrag der platte auch wieder auf
/dev/sdb1 on /mnt/pve/Backup type ext4 (rw,relatime)

das würde also funktionieren...
wie kann ich den befehl 1x täglich zu einer bestimmten uhrzeit ausführen ?
oder noch besser wenn sich der "Mounted" zustand zu "No" ändert...?!
 
Könnte man nicht statt mount -a ein mount mit genauer Bezeichnung des Laufwerks machen ?
mount -a mountet automatisch alles, was in der fstab drin steht und nicht gemountet ist.
 
mount -a mountet automatisch alles, was in der fstab drin steht und nicht gemountet ist.
jap. müsste ich mal testen ob ich in die fstab was eintragen kann…

wie kann ich den befehl 1x täglich zu einer bestimmten uhrzeit ausführen ?
oder noch besser wenn sich der "Mounted" zustand zu "No" ändert...?!
Kann mir hierbei jemand helfen ?
 
jap. müsste ich mal testen ob ich in die fstab was eintragen kann…
hab ich jetzt gemacht.

Zunächst mit lsblk -lf /dev/sdb1 die UUID meiner externen Platte identifiziert.
Code:
NAME FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sdb1 ext4   1.0         c4be5d52-d690-40e2-ab5f-98f28939f117  526.4G    37% /mnt/pve/Backup

und dann mit nano /etc/fstabdie fstab ergänzen:
Code:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
UUID=0A88-C15E /boot/efi vfat defaults 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
UUID=c4be5d52-d690-40e2-ab5f-98f28939f117 /mnt/pve/Backup ext4 defaults 0 0

Dann habe ich die platte nochmals abgesteckt und sie wurde auch nicht mehr angezeigt oder als mount point gelistet.
Mit wieder angesteckter Platte konnte ich nach einem mount -a wieder auf die Platte zugreifen.
Das scheint also geklappt zu haben :)

Dann habe ich versucht mit abgesteckter Platte zu booten woraufhin sich mein proxmox aufgehängt...
Mit wieder angesteckter platte gehts dann wieder...

ohne eintrag in der fstab kann der proxmox ja auch ohne angehängte platte booten, was ist falsch ?!
 
mach mal in deine fstab folgendes rein
UUID=c4be5d52-d690-40e2-ab5f-98f28939f117 ext4,noauto defaults 0 0

mit noauto wird die nicht beim booten eingebunden direkt und dein System hängt dann nicht

dann erstellst du unter /usr/local/bin/checkmount
mit folgendem Inhalt
Code:
mountpoint -q /mnt/pve/Backup && echo "mounted" || systemctl start /etc/systemd/system/mnt-backup.service
dann chmod +x /usr/local/bin/checkmount

und dann noch diese Datei erstellen
/etc/systemd/system/mnt-backup.service
mit folgendem Inhalt
Code:
[Unit]
Description=Attempting to mount backup
After=network.target
Conflicts=umount.target
Before=umount.target
StopWhenUnneeded=true

[Service]
Type=oneshot

# Add a high metric default to 'lo' interface into route table.
# This prevents the mount command from failing with "Network unreachable" is case no external phy link is available.

ExecStart=/bin/mount /dev/disk/by-uuid/c4be5d52-d690-40e2-ab5f-98f28939f117 /mnt/pve/Backup

[Install]
WantedBy=network.target
dann systemctl enable /etc/systemd/system/mnt-backup.service

dann sollte deine Platte beim booten gestartet werden
dann noch unter cron
mit dem Befehl cron -e folgendes eintragen
Code:
*/5 * * * *          /usr/local/bin/checkmount >/dev/null 2>&1

das prüft dann alle 5 Minuten ob deine ext HDD gemountet ist
 
Last edited:
alternativ könntest du auch mit einem hook script vor dem Backup prüfen ob die hdd gemountet ist

Code:
#!/bin/bash

if [ "$1" == "job-init" ]; then
       /usr/local/bin/checkmount
       echo "Job init"
fi

if [ "$1" == "backup-start" ]; then
    echo "Backup started"
fi

if [ "$1" == "backup-end" ]; then
    echo "Backup finished"
fi

if [ "$1" == "job-end" ]; then
    echo "Job end"
fi

exit 0

diese Datei unter /usr/local/bin/hook-script speichern
dann chmod +x /usr/local/bin/hook-script

dann noch folgendes in deine /etc/vzdump.conf
script: /usr/local/bin/hook-script
eintragen

das scipt /usr/local/bin/checkmount vom ersten Post von mir übernehmen und auch die Änderung in der fstab
 
mach mal in deine fstab folgendes rein
UUID=c4be5d52-d690-40e2-ab5f-98f28939f117 ext4,noauto defaults 0 0
sieht jetzt so aus, das noauto muss anscheinend an die stelle wo vorher das defaults stand:

Code:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
UUID=0A88-C15E /boot/efi vfat defaults 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
UUID=c4be5d52-d690-40e2-ab5f-98f28939f117 /mnt/pve/Backup ext4 noauto,x-systemd.automount 0 0

damit startet proxmox auch ohne angehängte platte, außerdem habe ich noch die option gefunden: x-systemd.automount
https://wiki.ubuntuusers.de/fstab/
Option noauto,x-systemd.automount sorgt dafür, dass die Datenquelle nicht schon beim Systemstart, sondern erst bei einem Zugriffsversuch automatisch eingebunden wird.

Damit kann ich die platte einfach anstecken und sie wird sofort gemounted.
Wenn ich jetzt proxmox mit angesteckter platte starte wird sie ebenfalls gemounted angezeigt, den rest deiner vorschläge habe ich daher aktuell noch nicht gemacht.
dann noch unter cron
mit dem Befehl cron -e folgendes eintragen
*/5 * * * * /usr/local/bin/checkmount >/dev/null 2>&1
das prüft dann alle 5 Minuten ob deine ext HDD gemountet ist

ich hab jetzt einfach einen zusätzlichen cronjob mit mount -a angefügt, da fehlt aber das erste "*", ist das so korrekt ? und wofür steht das >/dev/null 2>&1in deinem beispiel ?

Code:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
 0 4    * * *   root    /usr/sbin/pct fstrim 100
 0 4    * * *   root    /usr/sbin/pct fstrim 101
/5 *    * * *   root    mount -a


mountpoint -q /mnt/pve/Backup && echo "mounted" || systemctl start /etc/systemd/system/mnt-backup.service
das finde ich ziemlich clever, könnte der cron job auch so aussehen und würde dann entsprechend nur dann mount -a ausgeführt wenn die platte nicht gemountet ist ?
Code:
/5 *    * * *   root    mountpoint -q /mnt/pve/Backup && echo "mounted" || mount -a
 
Last edited:
das
Code:
>/dev/null 2>&1
ist nur dafür da das es keine Ausgabe gibt in der Konsole
hatte gestern etwas wenig geschlafen aber Hauptsache es funktioniert nun bei Dir
 
Ich hatte das jetzt genau so bei mir aber bekomme keine ausgabe auf der konsole... die hätte ich ja jetzt erwartet oder wie kann ich prüfen ob der cron job tatsächlich alle 5 min ausgeführt wird ?
/5 * * * * root mountpoint -q /mnt/pve/Backup && echo "mounted" || mount -a
 
Nein das war nicht korrekt…
da fehlt aber das erste "*", ist das so korrekt ?

Hab es jetzt so, also mit dem ersten „*“:
Code:
*/5 *    * * *   root    mountpoint -q /mnt/pve/Backup && echo "mounted" || mount -a

Und damit sehe ich im syslog alle 5min das hier:
Bild 22.02.25 um 19.33.jpeg

Ich hätte jetzt aber gedacht, dass im log nur „mounted“ steht und nicht die gesamte Zeile 1:1 im log auftaucht ?!
Bin mir jetzt nicht sicher ob das wirklich so funktioniert und ob die Zeile auch wirklich ausgeführt wird ?
 
kannst ja zum Test einfach mal unmounten manuell und dann sehen ob die wieder gemountet wird