Debian Bookworm und usb Platte mount, System startet zu schnell?

Begonnen von franky08, 20 August 2024, 22:30:04

Vorheriges Thema - Nächstes Thema

franky08

Ich habe meine backup Platte in der fstab eingebunden:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=4e74b604-27dc-4b51-9e38-c6e6433730ec /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=e65d199f-6b94-448a-88b1-76be6e1fdb59 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0 0
UUID=206318a8-5dc6-e2b5-357d-41507e965820   /media/usb   ext4  auto,nofail,sync,users,rw   0   0

ist nach /media/usb gemountet. Beim starten des Systems wird die hdd (sdb1 oder UUID=206318a8-5dc6-e2b5-357d-41507e965820) jedoch nicht automatisch eingebunden. Wenn ich die hdd über mount -a einbinde ist sie da und unter /media/usb eingehangen. Ich denke das das System zu schnell ist und die usb hdd dadurch noch nicht verfügbar ist wenn die Laufwerke in der fstab eingebunden werden. Eine rc.local gibt es unter Bookworm direkt nicht, nur unter /usr/lib/systemd/system/rc-local.service.
Im Netz habe ich gefunden das man mit mount -a die Laufwerke in der rc.local einbinden kann.
Meine Frage: geht dieser Weg auch mit mount -a in der /usr/lib/systemd/system/rc-local.service ?

VG
Frank
Debian Bookworm auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
mit FHEM aktuell (fhem.pl:28849/2024-05-07)
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

betateilchen

Du kannst das mount -a auch mit @reboot in die /etc/crontab einbinden.

Alternativ gibt es ja inzwischen genug Optionen für ein automount, die man verwenden könnte, um eine USB Platte einzuhängen, sobald sie verfügbar wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

#2
@betateilchen

Habe mit sudo nano /etc/crontab folgendes angelegt:
# /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; }
#
@reboot mount -a

Wäre das so OK?
Debian Bookworm auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
mit FHEM aktuell (fhem.pl:28849/2024-05-07)
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

betateilchen

Zitat von: franky08 am 21 August 2024, 10:05:29Wäre das so OK?

Nein. Bitte beachte die in der Datei aufgeführten Anmerkungen/Kommentare und die Beispiele.

Der einzige Unterschied zu den Beispielen ist, dass Du keine Uhrzeit zur Ausführung angibst, sondern den Zeitpunkt @reboot. Das ändert nichts daran, dass Du auch einen Benutzer angeben musst, unter dem der Befehl ausgeführt werden soll.

Und es hat sich als gute Praxis bewährt, den vollständigen Pfad eines Befehls anzugeben - auch das ist im Beispiel so angegeben.

Vielleicht mal die Doku zu crontab lesen?

https://manpages.debian.org/unstable/manpages-de/crontab.5.de.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

#4
Wenn ich das richtig verstanden habe (manpages zu crontab5) müsste das Kommando:

@reboot root /usr/bin/mount -a
sein.

Die Zeitangabe entfällt bzw. reboot ist der Zeitpunkt zur Ausführung des Befehls. Aber vlt. ist mit cron die Ausführung ebenfals wieder zu früh (wie die Ausführung der fstab)?

Beachten Sie, dass der Startzeitpunkt, soweit es @reboot betrifft, die Zeit ist, zu der der cron(8)-Daemon gestartet wurde. Insbesondere könnte dies früher sein, als der Start von einigen System-Daemons oder anderen Einrichtungen. Dies erfolgt aufgrund der Systemstartreihenfolgesequenz der Maschine.
Der PATH ist ja zum Start der Datei mit:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
schon angegeben.

Einige Beispiele im Netz geben keinen Benutzer an:

@reboot [Pfad/zum/Befehl]
Ergo:
@reboot /usr/bin/mount -a

VG
Frank
Debian Bookworm auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
mit FHEM aktuell (fhem.pl:28849/2024-05-07)
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

RalfRog

Hi
Dann schau doch mal im syslog oder mit dmesg nach was wann in welcher Reihenfolge beim Hochlauf passiert.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

betateilchen

#6
Zitat von: franky08 am 21 August 2024, 15:02:35Einige Beispiele im Netz geben keinen Benutzer an:

Dabei musst Du unterscheiden, ob es sich um die crontab eines bestimmten Benutzers handelt, oder um die systemweite crontab

Das steht doch auch ausdrücklich im Kopf der von Dir geposteten Datei:

Zitat
# /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.


Ergo:

@reboot root /usr/bin/mount -a
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

@betateilchen
Ich war mir erst nicht sicher ob ich mit crontab -e oder mit sudo nano /etc/crontab arbeiten soll. Die Erste ist dann wohl die für den User und die in /etc/ die Systemweite. Editiert habe ich, wie oben gepostet, die /etc/crontab.

Vielen Dank
Frank
Debian Bookworm auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
mit FHEM aktuell (fhem.pl:28849/2024-05-07)
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...