FreeBSD Install per Install Script -> Kernel Trap 18 (Swapper)

R

rcmc_ronny

Guest
Hallo,

ich muss FreeBSD manuell installieren, da mir Sysinstall in manchen Punkten derzeit zu unflexibel ist. Habe mir durch Anregung aus "FreeBSD from Scratch" ein kleines Installscript geschrieben, was im Grunde das SLICE erstellt und darin die Partitions. (a=root , b = swap , d=/var , e = /usr).
Danach wird durch newfs das entsprechende Filesystem angelegt und die FreeBSD Packete ausgepackt an die entsprechenden Stellen.

Mein Problem ist nun folgendes:
Nach der Installation und einem Reboot, startet wie gewohnt der Loader, das Menu erscheint, danach der Kernel, dieser bricht jedoch an folgender Stelle mit einem Trap ab (den habe ich abgetippt, man möge mir Tipfehler nachsehen :) ):
PHP:
ad0: 157066MB <HDT722516DLAT80 V4330OA96A> at ata0-master UDMA133

Fatal trap 18: integer divide fault while in kernel mode
cpuid = 0 ; papic = 00
instruction pointer 0x20:0xc0853017
stack pointer		= 0x28:0xc0c20b28
frame pointer		= 0x28:0xc0c20bb0
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1; gran 1
proccessor flags	= interrupt enabled, resume IOPL = 0
current process 	= 0 (swapper)
trap number		= 18
panic: integer divide fault
cpuid = 0
Uptime: 1s
Cannot dump. No dump device defined.
Automatic reboot in 15 seconds - press a key on the console to abort.

Ich habe danach schon gegoogled und in Newsgroups gesucht, aber leider keine weiteren Hinweise finden können woran dies liegen kann. Da ich mehr auf der Linux Welt aktiv bin und mich für kleine Projekte in die BSD Scene begeben will und muss, bin ich diesbezüglich quasi "Anfänger". Bei OpenBSD war das Installscript sehr viel leichter, da man dort alles in einem Kernel mit Ramdisk packen kann, vielleicht geht sowas auch bei FreeBSD ( NetBSD).

Aktuell habe ich den PXELINUX Loader, dieser lädt den Kernel memdisk (pxelinux projekt) dieser lädt ein Image von FreeBSD, welches alles nötige enthält. Dies funktioniert wunderprächtig, bis auf den Kernel Trap.

Im folgenden die relevanten Ausschnitte aus dem Installscript:

dd if=/dev/zero of=/dev/ad0 bs=512 count=32
fdisk -BI ad0 # Initialisieren der neuen Platte
dd if=/dev/zero of=/dev/ad0s1 bs=512 count=32
bsdlabel -w -B ad0s1
bsdlabel -R ad0s1 partition
# das partition file enthält die o.a. Definition der Partition (a/b/d/e)

DEVICE=ad0s1a
mkdir -m 755 -p /newroot
chown root:wheel /newroot
newfs -U $DEVICE
mount -o noatime ${DEVICE} /newroot

DEVICE=/dev/ad0s1d
mkdir -m 755 -p /newroot/var
chown root:wheel /newroot/var
newfs -U ${DEVICE}
mount -o noatime ${DEVICE} /newroot/var

# mount point /usr
DEVICE=/dev/ad0s1e
mkdir -m 755 -p /newroot/usr
chown root:wheel /newroot/usr
newfs -U ${DEVICE}
mount -o noatime ${DEVICE} /newroot/usr

#etc/fstab
# Device Mountpoint FStype Options Dump Pass
#
/dev/ad0s1a / ufs rw,noatime 1 1
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1d /var ufs rw,noatime 1 1
/dev/ad0s1e /usr ufs rw,noatime 1 1
#
proc /proc procfs rw 0 0

bootmanager installieren
/usr/sbin/boot0cfg -v -B -o packet /dev/ad0


Vielen Dank schonmal im vorraus für entsprechende Hinweise :)

Ronny
 
proc /proc procfs rw 0 0

keine Ahnung, was du da erzählst, also entschuldige, wenn ich nur Mist verzapfe. Du sagtest aber, du kämest von GNU/Linux und was mir bei BSD aufgefallen ist: dass die noch hinterherhinken und keinen proc definieren.
Vielleicht scheitert dein script daran?
 
proc /proc procfs rw 0 0

keine Ahnung, was du da erzählst, also entschuldige, wenn ich nur Mist verzapfe. Du sagtest aber, du kämest von GNU/Linux und was mir bei BSD aufgefallen ist: dass die noch hinterherhinken und keinen proc definieren.
Vielleicht scheitert dein script daran?

Käse. Der Grund warum FreeBSD per default kein /proc mounted ist einfach der, das es kaum gebraucht wird. Im Gegensatz zu Linux, wo extrem viel von /proc abhängt.

Kurz - das ist bestimmt nicht des OP's Problem.
 
ich finde, ihr reagiert hier ziemlich gereizt und noch dazu vollkommen grundlos.
Wie schon gesagt: ich weiß damit überhaupt nicht Bescheid, mir ist nur die Zeile mit dem proc Aufruf aufgefallen und es könnte sein, dass jemand, der neu in die BSD Landschaft kommt darauf vertraut, dass so was automatisch läuft, besonders, da die Entwicklung eigentlich aus der unix-Ecke stammt und so viel ich mich erinnere einen Ansatz von plan9 realisiert.
Wenn also bei Linux etwas eingeflosen ist, was in d e m unix-Nachfolger vorgeführt wurde, kann der Ausdruck, BSD hinke da hinterher, sehr wohl stehen. Das meint absolut nichts negatives und ihr braucht nicht so angeschossen zu reagieren.
Doch, bevor es nun OT wird, entschuldige ich mich artig für meinen vor Unwissenheit triefenden Beitrag. Einfach vergessen und ignorieren.
 
Hinterherhinken ist nun mal abwertend.

Mit Emotionen ist dann zu rechnen. Wenn man sie nicht erzeugen will, sollte man sich eben neutral ausdrücken.
 
procfs für freebsd ist genauso sinnlos wie sysctl unter linux....

@rcmc_ronny:
versuchs doch erstmal mit einem anderen bootloader. gag lässt sich zum beispiel von nem medium starten ohne in den mbr zu müssen. ansonsten hat grub auch immer funktoiniert....
 
Nur ganz kurz:
Bis FreeBSD 4.9(?) gab es nach der Standard Installation ein /proc, wobei man das nicht direkt vergleichen konnte/kann mit dem was Linux als /proc hat.
Es wurde zum Bleistift für ps (oder war es top?) gebraucht. Nach dem solche lasten beseitigt waren ist /proc aus der Standard Installation rausgeflogen weil es wirklich kaum bis gar nicht gebraucht wurde. Mit diesem Hintergrund ist »Hinterherhinken« wirklich ganz leicht fehl am Platz. Der Vermerk selber nicht, nur eben die Wertung dadrinnen. Grüße Aron

Nachtrag: /proc kann sogar unangenehme Nebenwirkungen haben.
Hat man security.bsd.see_other_uids=1 gesetzt, so kann das man das mit Hilfe von /proc teilweise aushebeln in dem man sich nen "eigenes" ps schreibt was /proc ausliest.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben