Forum: PC Hard- und Software /var in fstab mounten


von Andreas B. (bitverdreher)


Lesenswert?

Hi,
ich bin gerade dabei mir ein Nanopi Neo2 mit friendlyarm einzurichten.
Dazu möchte ich neben /home auch /var auf eine externe FP mounten. Das 
funktioniert soweit auch gut.
Dummerweise werden aber die Einträge in den links /var/run und var/lock, 
die auf /run und /run/lock verweisen, angelegt bevor die FP gemountet 
wird. Somit gehen mir diese Einträge nach dem Mounten verloren.
Wie geht man üblicherweise vor, wenn man /var auf eine andere FP legen 
will?

Edit: Gemounted ganz simpel in fstab mit:
 /dev/sda2  /var ext4 defaults 0 0

: Bearbeitet durch User
von Gerd E. (robberknight)


Lesenswert?

Andreas B. schrieb:
> Nanopi Neo2 mit friendlyarm

Wie wird da das mounten gemacht? Über ein init-Skript oder über systemd?

Modernere Desktop/Server-Distributionen machen das meist mit systemd, 
ältere Distributionen machten das über ein init-Skript. Im 
Embedded-Bereich sind Init-Skripte für sowas auch noch verbreitet.

Wenn systemd:

systemd erzeugt aus der /etc/fstab virtuelle systemd-mount-units und 
mounted die dann.

Du kannst aber auch explizit mount-units in /etc/systemd/system anlegen 
anstatt die /etc/fstab zu verwenden. Und dort kannst Du dann die 
Prioritäten über das systemd-typische Before= und After= genau 
festlegen. Damit dann das /var vor run, lock,... mounten lassen.

von Daniel A. (daniel-a)


Lesenswert?

Andreas B. schrieb:
> Dummerweise werden aber die Einträge in den links /var/run und var/lock,
> die auf /run und /run/lock verweisen, angelegt bevor die FP gemountet

Wieso werden die überhaupt neu angelegt? Auf einem frisch gebootstraptem 
devuan/sysvinit system sind /run und /var/run eigenständige Ordner. Dann 
ersetze ich einen davon manuell einmal durch einen link, und die Sache 
ist gegessen. Wäre zwar auch nicht zwingend nötig. Ich könnte alternativ 
auch in der fstab ein bindmount machen, oder ein weiteres tmpfs mounten. 
Man kann auch automatisch gemountete dinge explizit in der fstab 
eintragen, um z.B. proc und tmp einige Zusatzoptionen zu verpassen. Und 
die Reihenfolge in der fstab wird auch beachtet. Wobei, in wie fern 
systemd in der hinsicht kaputt ist kann ich nicht sagen.

Inwiefern es sinvoll ist, das ganze var auf einer externen FP zu haben, 
ist natürlich wieder eine andere frage.

von Gerd E. (robberknight)


Lesenswert?

Daniel A. schrieb:
> Andreas B. schrieb:
>> Dummerweise werden aber die Einträge in den links /var/run und var/lock,
>> die auf /run und /run/lock verweisen, angelegt bevor die FP gemountet
>
> Wieso werden die überhaupt neu angelegt?

vermutlich sind die als tmpfs gemounted. Macht für die ja auch Sinn: zum 
einen müssen die nicht auf einer HDD liegen und zum anderen willst Du da 
nach einem Reboot keine Daten von vorher drin rumliegen haben.

von Andreas B. (bitverdreher)


Lesenswert?

Gerd E. schrieb:
> Du kannst aber auch explizit mount-units in /etc/systemd/system anlegen
> anstatt die /etc/fstab zu verwenden. Und dort kannst Du dann die
> Prioritäten über das systemd-typische Before= und After= genau
> festlegen. Damit dann das /var vor run, lock,... mounten lassen.

Es ist systemd. Das werde ich mir mal anschauen. Danke!

Daniel A. schrieb:
> Inwiefern es sinvoll ist, das ganze var auf einer externen FP zu haben,
> ist natürlich wieder eine andere frage.
Das kann ich Dir sagen:
1. Kann man auf die externe FP lustig logs schreiben, ohne daß die SD 
Karte drunter leidet.
2. Habe ich auch MySQL am laufen. Das legt seinen ganzen Krempel unter 
/var ab.

Gerd E. schrieb:
>>
>> Wieso werden die überhaupt neu angelegt?
>
> vermutlich sind die als tmpfs gemounted.

Genau so ist es.

von Daniel A. (daniel-a)


Lesenswert?

Gerd E. schrieb:
> Daniel A. schrieb:
>> Wieso werden die überhaupt neu angelegt?
>
> vermutlich sind die als tmpfs gemounted. Macht für die ja auch Sinn: zum
> einen müssen die nicht auf einer HDD liegen und zum anderen willst Du da
> nach einem Reboot keine Daten von vorher drin rumliegen haben.

Bei /run macht das ja sinn, aber bei /var? Obwohl die dateien darin 
"oprional" sein sollten, legt man als Benutzer normalerweise dinge wie 
seine Webseiten (/var/www, apache) und DBs rein, etc. Will man das alles 
da behalten, macht man /var kein tmpfs, und wenn var kein tmpfs ist, 
sind auch links darin, wie /var/run, nicht temporär. Ansonsten kann man 
das auch immer gut mit aufs/overlayfs oder unionfs(-fuse) kombinieren.

>> Inwiefern es sinvoll ist, das ganze var auf einer externen FP zu haben,
>> ist natürlich wieder eine andere frage.
> Das kann ich Dir sagen:
> 1. Kann man auf die externe FP lustig logs schreiben, ohne daß die SD
> Karte drunter leidet.

Dann würe ich aber eher nur /var/log mounten, bzw. Ich würde es Readonly 
mounten, und per rsyslog an einen logging server senden lassen. Selbst 
bei kaputten Programmen, die nicht syslog nutzen, mach ich das, mit 
meinem redirfs: https://github.com/Daniel-Abrecht/redirfs . Ist aber 
wohl nicht für jeden was.

> 2. Habe ich auch MySQL am laufen. Das legt seinen ganzen Krempel unter
> /var ab.

Ok, dann macht es sinn /var woanders zu mounten. Bei nicht systemd 
systemen ist das aber sowieso kein problem, dort passiert das sowieso 
bevor der ganze rest gestartet wird, der darauf zugreifen wollen könnte.

Edit: Ist das bei systemd nicht sowieso so geregelt, das die Units eine 
Dependency zu den Dateisystemenen haben sollten?

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Daniel A. schrieb:
> Will man das alles
> da behalten, macht man /var kein tmpfs, und wenn var kein tmpfs ist,
> sind auch links darin, wie /var/run, nicht temporär.

Das habe ich nicht so gemacht, das war in der Distri so drin. Das 
scheint bei Ubuntu so zu sein, weil es bei meinem Desktop Mint 19 
genauso aussieht. Das friendlyarm ist auch ein Ubuntu Abkömmling.

Daniel A. schrieb:
> Edit: Ist das bei systemd nicht sowieso so geregelt, das die Units eine
> Dependency zu den Dateisystemenen haben sollten?

Scheinbar nicht, zumindest nicht bei denen, die via fstab gemountet 
werden.
Es sieht bei mir auch wie ein Mix aus systemd und initd aus :-( Da muß 
ich erst mal durchsteigen.

Daniel A. schrieb:
> Bei /run macht das ja sinn, aber bei /var? Obwohl die dateien darin
> "oprional" sein sollten, legt man als Benutzer normalerweise dinge wie
> seine Webseiten (/var/www, apache) und DBs rein, etc.

Ja, das habe ich auch nie verstanden, warum das in /var gemacht wird. 
Ich möchte mal wissen, wer diesen Unsinn angefangen hat.

von Andreas B. (bitverdreher)


Lesenswert?

Also, ich habe mir das nochmal angeschaut und habe zwischendurch auch 
nochmal Armbian (auf Debian Jessy basierend) auf eine andere Karte 
installiert.
Bei Armbian gibt es eine Option das ganze OS auf die FP zu installieren. 
Dazu braucht man dann nur noch eine 2GB SD um den /boot Teil zu halten.
Auch sieht Armbian aufgeräumter aus, so daß ich das jetzt erst mal so 
beibehalten werde.
Dort ist das übrigens mit dem /var gut gelöst, so daß man das auch so 
hätte lassen können. Hier werden die log und lib Verzeichnisse von /var 
in das Ram  (zram) gemountet (folder2ram) und beim herunterfahren oder 
via cron job wieder auf die SD geschrieben. Clever gemacht!

von various artists (Gast)


Lesenswert?

Andreas B. schrieb:

>> "oprional" sein sollten, legt man als Benutzer normalerweise dinge wie
>> seine Webseiten (/var/www, apache) und DBs rein, etc.

> Ja, das habe ich auch nie verstanden, warum das in /var gemacht wird.
> Ich möchte mal wissen, wer diesen Unsinn angefangen hat.

Wo hin möchtest du es sonst haben? Das ist wäre ja der 'Systemwebserver' 
einen auschliesslich von einem Benutzer unterhaltenen, würde man ggf. in 
dessen home-verz. ansiedeln. Im Heimgebrauch sitzt halt idR. nur eine 
Person am Mehrbenutzersystem.

https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html

/usr is the second major section of the filesystem. /usr is shareable, 
read-only data. That means that /usr should be shareable between various 
FHS-compliant hosts and must not be written to. Any information that is 
host-specific or varies with time is stored elsewhere.


/var is specified here in order to make it possible to mount /usr 
read-only. Everything that once went into /usr that is written to during 
system operation (as opposed to installation and software maintenance) 
must be in /var.

von Andreas B. (bitverdreher)


Lesenswert?

various artists schrieb:
> Wo hin möchtest du es sonst haben? Das ist wäre ja der 'Systemwebserver'
> einen auschliesslich von einem Benutzer unterhaltenen, würde man ggf. in
> dessen home-verz. ansiedeln.

Von der Logik hätte ich z.B. für mysql ein Verzeichnis /home/mysql dafür 
angelegt. Eine Gruppe mysql existiert ja schon. Dann wären alle 
Userdaten im Home zu finden. Analog für Apache und Konsorten.
Daß man sich anders entschieden hat, weiß ich. Nur logisch finde ich das 
nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.