Compactflash advanced

f41thr

Well-Known Member
Vielleich nicht ganz neu, aber diverse Internetrecherche bringt nichts rechtes an den Tag.

Problemstellung

Wir haben ein OpenBSD auf einer normalen Compactflashkarte installiert.
Um die Anzahl der Schreibzyklen auf der CF zu verringern sind /var, /tmp und /dev bereits in das mfs Filesystem verlagert.

Alle unnötigen Jobs aus der crontab sind eliminiert, die Anzahl der Schreibaktivitäten auf ein Minimum reduziert.

Da mein Internetzugang ein Kabelanbieter ist, der IP Adressen mit einer sehr kurzen Leasetime vergibt, wird resolf.conf* ca alle 60 min neugeschrieben.Was der Lebensdauer der CF nicht dienlich ist.

Ursache

dhclient ruft abhängig von der leasetime das Script dhclient-script auf, dass die Konfigurationsdateien /etc/resolf.conf* immer wieder neu anlegt.

Lösung:

Code:
mkdir /var/etc 
cp /etc/resolv.conf* /var/etc/.
cd /etc
rm resolv.conf*
ln -s /var/etc/resolv.conf resolv.conf 
ln -s /var/etc/resolv.conf.tail resolv.conf.tail

Dann müssen im Script /sbin/dhclient-script alle Pfade von /etc/ in /var/etc/ verändert werden.

Beispiel:

Code:
.....
 if [ -f /var/etc/resolv.conf.std ]; then
     92                 if [ -f /var/etc/resolv.conf.tail ]; then
     93                         cat /var/etc/resolv.conf.tail >>/var/etc/resolv.conf.std
     94                 fi
     95
     96                 # In case (e.g. during OpenBSD installs) /etc/var/resolv.conf
     97                 # is a symbolic link, take care to preserve the link and write
     98                 # the new data in the correct location.
     99
    100                 if [ -f /var/etc/resolv.conf ]; then
    101                         cat /var/etc/resolv.conf > /var/etc/resolv.conf.save
    102                 fi
    103                 cat /var/etc/resolv.conf.std > /var/etc/resolv.conf
    104                 rm -f /var/etc/resolv.conf.std
....

Wie immer legt man eine Sicherungskopie des zu bearbeitenden Script an, oder verwendet RCS.

Dauertest läuft. Ich gehe davon aus mit einem FreeBSD verhält es sich ganz analog.
Ob das bei einem DSL Zugang notwendig ist, kann ich nicht beurteilen.

Gruss

F41THR
 
Auszug aus dhclient.conf

Code:
interface "???" {
supersede domain-name-servers {permanenter Eintrag in resolv.conf};
}

?
man dhclient.conf(5)

hth
 
Mein ketzerischer Tipp: Kaufe eine Industrial-Class CD-Card, tausche sie alle 3 Jahre aus und spare dir das Gehampel.
 
Auszug aus dhclient.conf

Code:
interface "???" {
supersede domain-name-servers {permanenter Eintrag in resolv.conf};
}

?
man dhclient.conf(5)

hth

Die Datei wird jedesmal neu geschrieben, nur der vom DHCP Server gelieferte Eintrag wird dadrurch mit den eigenen Informationen "supserseded".

Und die Idee mit der Industrial habe ich natürlich auch. Aber die steckt in der ALIX mit FreeBSD ;-> Und da ich noch einige normale CF's besitze ;->
 
Die Datei wird jedesmal neu geschrieben, nur der vom DHCP Server gelieferte Eintrag wird dadrurch mit den eigenen Informationen "supserseded".

O.K. Macht der hier zwar nicht, bzw. nur beim ersten lease,, aber gut.

Code:
chflags schg resolv.conf
fällt mir dann noch ein. Dann gibt's keine Schreibaktivität.
 
Zuletzt bearbeitet:
Hi,
ich mount da in FreeBSD oifach en tmpfs druf und dann kann der schreiben so lang bis er schwarz wird :)

Gruß Bär
 
O.K. Macht der hier zwar nicht, bzw. nur beim ersten lease,, aber gut.

Code:
chflags schg resolv.conf
fällt mir dann noch ein. Dann gibt's keine Schreibaktivität.

Der hier(!) schon!

Code:
 # Try to ensure correct ownership and permissions.
               chown -RL root:wheel $path/resolv.conf
                chmod -RL 644 $path/resolv.conf

$path zeigt bei mir jetzt auf path="/var/etc"


f41thr
 
Zurück
Oben