Log in

Bekijk de volledige versie : mount mit fstab; buggy automounter



tobitobsen
15-12-2007, 13:54
Moin moin!

Es gibt über den Weg der /etc/fstab doch einen Weg den etwas beschränkten automounter auszutricksen und gleichzeitig Ordnung in das post-boot-Script zu bringen.

habe mir folgende fstab angelegt:


#device Mountpoint FStype Options Dump Pass#
/dev/discs/disc0/part1 none swap sw 0 0
/dev/discs/disc0/part2 /opt ext3 rw 1 1
/dev/discs/disc3/part1 /tmp/harddisk/cf vfat rw 1 1


Speichern muss man die Datei etwas umständlich:

echo "/tmp/etc/fstab" >> /tmp/local/.files
und wie immer:

flashfs save && flashfs commit && flashfs enable

das Ganze hat ein paar Vorteile:
"swapon -a" sucht sich die Zeile mit der Option sw aus der fstab ...
damit kann ich die swapon-zeile in der post-boot ersetzen.
"mount -a" versucht alles was in der fstab steht zu mounten. Ok, in der ersten Zeile mit dem swap gibts einen Fehler, aber es läuft alles bis zum Ende durch.
Dabei werden die Laufwerke gleich ins angegebene Verzeichnis gemountet.

Wo sind die Vorteile?
- post-boot wird übersichtlicher, da nur noch 2 kurze Befehle drin sind. 'swapon -a' und 'mount -a'.
Alles andere ist übersichtlich in einer Datei
- Mounting nicht mehr in mehr oder weniger wirren post-boot Scripten
- verschiedene USB-Medien finden sich immer an den gleichen Orten wieder
- autocopy von Card-readern wird einfacher.


1x alle devs vom reader in der fstab definieren
in der post-mount das copy-script einbauen
mount -a alle x minuten via cron starten


neue post-boot:


#!/bin/sh

# USB module nachladen
insmod scsi_mod && insmod sd_mod && insmod usb-storage && sleep 5s

# Run Dropbear
dropbear

# Swap according to fstab
swapon -a

# Mounting according to fstab
mount -a

# wait for mount
sleep 5

# Run all active services - active means starts with S
/opt/etc/init.d/rc.unslung


Schaut doch besser aus als die Versionen aus dem Tuts- oder? ;)

Verbesserungsvorschläge? - Anmerkungen? - Kritik?
immer her damit ;)

newbiefan
15-12-2007, 22:56
Moin moin!

Es gibt über den Weg der /etc/fstab doch einen Weg den etwas beschränkten automounter auszutricksen und gleichzeitig Ordnung in das post-boot-Script zu bringen.

Verbesserungsvorschläge? - Anmerkungen? - Kritik?
immer her damit ;)

Super Tobitobsen, gute Sache!
Seit der 8er geht auch fstab - endlich!


Dennoch glaube ich fast, dass auch damit keine Loesung wie wir (ich) brauchen wuerden. Hast Du schon probiert was passiert wenn die CF Card abgesteckt und eine andere angesteckt wird? Werde ich morgen einmal probieren......

tobitobsen
15-12-2007, 23:26
durch das "mount -a" im cron-job geht das.
Da wird jede Zeile der fstab durchgegangen und nach Möglichkeit ausgeführt.

Etwas anderes machen ja deine Scripte auch nicht - nur, dass die vieeeel mehr Zeilen dafür brauchen. ;)

Die Lösung mit der fstab ist in der Hinsicht auch nur ein workaround. Da hast Du schon recht.

newbiefan
16-12-2007, 13:01
@Tobitobsen
fstab funktioniert einwandfrei nach Deinem Tut., es ist auch ganz einfach:
Wenn Du aus deiner post-boot die sleeps entfernst, geht es
sofort, ohne umount usw.

Das leidige Thema um ein unsauberes unmounten bleibt weiter bestehen.
Das ist eben Linux-spezifisch, dass man zuerst unmounten muss und danach erst den Stick entfernen kann....erst dadurch kann er nach einstecken wieder gemountet werden. Trotzdem hat fstab erhebliche Vorteile, meine post-boot ist wirklich endlich ordentlich aufgeraeumt, siehe Anhang.
Soweit ich den fstab manuals entnehmen kann, geht sogar smbfs od. cifs!!!
Das wuerde die Sache doch nochmals erheblich vereinfachen........sobald ich etwas mehr Zeit habe, versuche ich es, smbfs mit fstab - supiii!!

Jedenfalls macht jetzt das pre-shutdown dank fstab auch Sinn!
ein umount - a erledigt das, dazu kann man (vermutlich) sogar
die tabelle /etc/mtab verwenden ! Jezt fehlt nur noch ein script,
der mir mtab mit den richtigen Daten fuellt.

Edit: ehmmm...habein der post-boot einen kleinen Fehler, wenn webserver gestartet wurde, muss die zeile darunter lauten: let i=21 und nicht 11

tobitobsen
16-12-2007, 14:17
Jedenfalls macht jetzt das pre-shutdown dank fstab auch Sinn!
ein umount - a erledigt das, dazu kann man (vermutlich) sogar
die tabelle /etc/mtab verwenden ! Jezt fehlt nur noch ein script,
der mir mtab mit den richtigen Daten fuellt.


Daran hatte ich auch schon gedacht aber wenn ich in der Shell einfach umount -a eingebe bekomme ich ne Fehlermeldung wegen falscher Parameter. Hat vielleicht was mit den Parametern beim Kompilieren zu tun - nur da hab ich absolut keinen Plan von.

Naja mit dem Umounten ist ja kein Problem. Meine CF-Karte die ich dann auto-copy mäßig verarzte kann ich ja am Ende vom Script umounten lassen. Da muss man halt etwas erfinderisch sein. Wie so oft *g

newbiefan
16-12-2007, 15:05
Hast recht, umount -a geht auch nicht mit mtab, zwar bekomme ich keine Fehler, aber es tut sich gar nichts, mount zeigt mir immer noch dass alles gemountet ist.

tobitobsen
06-01-2008, 16:36
Habe das Tutorial oben überarbeitet.
Nach einem Tip von Newbiefan kann man bei richtig konfigurierter fstab auf "mount -a" und "swapon -a" verzichten

Wer's also ganz minimalistisch haben will kommentiert die 2 Zeilen aus. Wenns dann geht - OK sonst mus die Raute halt wieder weg ;)