BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

FAT-Partition, welche grösser als 128GB ist, mounten

Muss man eine FAT-Partition, welche grösser als 128GB ist, mounten, so muss man zuerst einen Kernel erstellen, welcher folgende Option beinhaltet:

options   MSDOSFS_LARGE

Danach kann die FAT-Partition ganz normal gemountet werden. Dies sollte man allerdings nur machen, wenn man keine andere Option hat, da gemäss src/sys/conf/NOTES für jede Datei auf der FAT-Partition 32 Byte im Kernel-Speicher benötigt werden, was bei zu vielen Dateien auf der FAT-Partition zu einer Kernel-Panic führen könnte.

Besser ist es FAT-Partitionen, welche kleiner als 128GB sind, zu verwenden, oder besser noch ganz auf FAT zu verzichten.

 Permalink

Datei aufteilen

Soll eine Datei auf eine CD, ein ZIP-Drive oder eine Floppy gespeichert werden, ist aber für das Medium zu gross, so kann man die Datei mit split(1) aufteilen.

# split -b <Grösse der Teile> <Zu grosse Datei> <Dateinamen-Prefix der Teile>

Möchte man zum Beispiel die folgende Datei auf drei Floppys verteilen, so kann man dies wie folgt tun:

# ls -al dump.tar.gz 
-rw-r--r-- 1 root wheel 2719811 Dec 29 22:18 dump.tar.gz
# split -b 1m dump.tar.gz dump.part.
# ls -l dump.part.*
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.aa
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.ab
-rw-r--r-- 1 root wheel 622659 Dec 29 22:23 dump.part.ac

Nun wurden drei Dateien erzeugt, welche maximal 1 MB gross sind und auf den Floppys gespeichert werden können. Die Grösse der einzelnen Teile kann mit der -b Option bestimmt werden. Der Buchstabe nach der Zahl bestimmt die Einheit. Ein k bedeutet Kilobyte, ein m bedeutet Megabyte. Für Gigabyte gibt es allerdings keine Abkürzung.

Sollen die Teile nun wieder zusammengefügt werden, nimmt man cat(1) zu Hilfe:

# cat <Dateinamen-Prefix der Teile>* > <Dateinamen der ursprünglichen Datei>

Die Reihenfolge der Dateien wird automatisch anhand der Endungen der einzelnen Dateien erkannt. In diesem Beispiel würde dies folgendermassen aussehen:

# ls -al dump.*
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.aa
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.ab
-rw-r--r-- 1 root wheel 622659 Dec 29 22:23 dump.part.ac
# cat dump.part.* > dump.tar.gz
# ls -al dump.*
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.aa
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.ab
-rw-r--r-- 1 root wheel 622659 Dec 29 22:23 dump.part.ac
-rw-r--r-- 1 root wheel 2719811 Dec 29 22:31 dump.tar.gz
 Permalink

portsopt Version 1.0 erschienen

Die Version 1.0 von portsopt ist erschienen. Folgende Änderungen wurden vorgenommen:

  • Störende Leerzeichen in der Anzeige entfernt
  • IGNORE_WITH werden nicht mehr angezeigt
  • Code aufgeräumt und verbessert

portsopt durchsucht Port-Makefiles nach WITH- und WITHOUT-Optionen und gibt diese aus. Auch lassen sich die Optionen der Abhängigkeiten eines Ports anzeigen. Das Skript kann hier heruntergeladen werden.

Comments (2)  Permalink

Arbeitsspeicher auf Fehler überprüfen

Möchte man seinen Arbeitsspeicher auf Fehler überprüfen, so kann man dies mit memtest(8) tun. memtest findet man in den FreeBSD-Ports unter /usr/ports/sysutils/memtest:

# cd /usr/ports/sysutils/memtest && make install clean

An memtest können zwei Argumente übergeben werden. Wieviel Arbeitsspeicher in MB alloziert und getestet werden soll und wieviele Testdurchgänge durchgeführt werden sollen:

# memtest <Zu prüfender Speicher in MB> <Anzahl Durchgänge>

Wird die Anzahl Durchgänge nicht angegeben, so wird der Test solange durchgeführt, bis der Benutzer diesen abbricht.

In folgendem Beispiel werden 100MB Arbeitsspeicher in einem Durchgang geprüft. Während dieses Durchgangs traten keine Fehler auf:

# memtest 100 1
memtester version 4.0.6 (32-bit)
Copyright (C) 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 100MB (104857600 bytes)
got 100MB (104857600 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : ok
Walking Ones : ok
Walking Zeroes : ok

Done.

Sollten während des Tests Fehler auftreten, so sollte man seine Hardware überprüfen, da auch überhitzte Prozessoren oder überlastete Netzteile Fehler verursachen können.

 Permalink

Zeilenlänge von Texten limitieren

fmt(1) formatiert Textdateien so, dass standardmässig eine Zeile aus 65, maximal jedoch aus 75 Zeichen besteht.

# more freebsd
FreeBSD® is an advanced operating system for x86 compatible (including Pentium® and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC®, IA-64, PC-98 and ARM architectur
es. It is derived from BSD, the version of UNIX® developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in vari
ous stages of development.
# fmt freebsd
FreeBSD® is an advanced operating system for x86 compatible (including
Pentium® and Athlon), amd64 compatible (including Opteron, Athlon64,
and EM64T), UltraSPARC®, IA-64, PC-98 and ARM architectures. It is
derived from BSD, the version of UNIX® developed at the University
of California, Berkeley. It is developed and maintained by a large
team of individuals. Additional platforms are in various stages of
development.

Die Anzahl Zeichen pro Zeile kann auch selber bestimmt werden:

# fmt <Optimale Anzahl Zeichen> <Maximale Anzahl Zeichen> <Textdatei>

Es kann auch nur eine maximale Anzahl Zeichen angegeben werden:

# fmt -w <Maximale Anzahl Zeichen> <Textdatei>

So kann man zum Beispiel eine pkg-descr auf 80 Zeichen pro Zeile beschränken:

# fmt -w 80 pkg-descr.raw > pkg-descr
 Permalink

Zufällige Nummern generieren

Möchte man zum Beispiel in einem Bourne-Shellskript eine zufällige Nummer generieren, so kann man jot(1) zur Hilfe nehmen.

# jot -r <Anzahl zu generierende Nummern> <Untere Grenze> <Obere Grenze>

Um eine Zahl zwischen 10000 und 99999 zu generieren, verwendet man jot wie folgt:

# jot -r 1 10000 99999

jot ist auf FreeBSD und OpenBSD bereits im Basissystem vorhanden. Was jot noch alles kann, findet man in der Manpage jot(1).

 Permalink

/tmp und /var in einer RAM-Disk erstellen

Möchte man /tmp in einer RAM-Disk erstellen, so muss folgender Eintrag in der /etc/rc.conf eingetragen werden:

tmpmfs="YES"

Nach dem nächsten Neustart wird standardmässig eine 20 MB grosse RAM-Disk erstellt und nach /tmp gemountet. Ein Eintrag in der /etc/fstab für /tmp wird nicht benötigt. Möchte man eine grössere RAM-Disk, zum Beispiel 128 MB, so kann dies mit folgendem zusätzlichen Eintrag gemacht werden:

tmpsize="128m"

Auch die /var Partition kann durch folgenden Eintrag in der /etc/rc.conf in eine RAM-Disk ausgelagert werden:

varmfs="YES"

Standardmässig wird die RAM-Disk für /var mit einer Grösse von 32 MB angelegt. Auch diese Grösse kann durch einen Eintrag in der /etc/rc.conf geändert werden:

varsize="<Grösse>"

Auch hier wird danach kein /etc/fstab Eintrag für /var benötigt.

Bei einem Neustart sind natürlich die Daten auf den Partitionen verloren, besitzt man allerdings eine CF-Karte als Disk, die nur eine begrenzte Anzahl Schreibvorgänge erlaubt, so können mit dieser Methode trotzdem Log- und temporäre Daten bis zum nächsten Neustart geschrieben werden.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (1)  Permalink
1-7/7