[diskussions frage] FreeBSD 32bit zu 64bit System update?

miwi

Well-Known Member
Guten Abend.

Erstmal frohes Fest euch allen.

Nun zu meiner Frage. Ich habe ein FreeBSD system das derzeit auf einer 32bit maschiene laeuft. Ist es moeglich dieses System zu dumpen und auf die neue Maschiene (64bit) zu restoren anschliessent ein src update mit update auf einen 64bit Kernel ?

Ich hoffe das mich niemand fuer diese Frage auslacht. Das es ist so, die Maschiene arbeitet in einer Produktiven umgebung, es laeuft dort Software die ich so nicht wieder installiert bekommen wuerde bzw mir auch die Zeit fehlt es komplett neu einzurichten.


Gruss miwi
 
das system läuft laut irc als ich mal gefragt habe ohne probleme im 32bit modus, kannst also eigentlich alles übernehmen, eigentlich solltest du ohne probleme auf ein 64bit fbsd umcompilieren können

ohne gewähr...
 
Hallo und Danke fuer deine Antwort. Ein Update auf 64 Bit scheint nicht zugehn.

Ich bin wie folgt vorgegangen. Ich ein neues SRC gezogen und bin nach /usr/src/sys/amd64/config gegangen und hatte config GENERIC gemacht.

danach sagte er ja bekanntlich make dependens etc jedenfalls fuehrte ich das aus und hatte die Fehlermeldung.

cc -c -Os -funroll-loops -pipe -fno-strict-aliasing -march=athlon-mp -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -g -nostdinc -I- -I. -I../../.. -I../../../contrib/altq -I../../../contrib/ipfilter -I../../../contrib/pf -I../../../contrib/dev/ath -I../../../contrib/dev/ath/freebsd -I../../../contrib/ngatm -I../../../dev/twa -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -ffreestanding ../../../i386/i386/genassym.c
../../../i386/i386/genassym.c:38:22: opt_apic.h: No such file or directory
In file included from ../../../sys/types.h:44,
from ../../../sys/param.h:63,
from ../../../i386/i386/genassym.c:42:
./machine/endian.h: In function `__bswap64':
./machine/endian.h:162: warning: right shift count >= width of type
./machine/endian.h:162: warning: right shift count >= width of type
./machine/endian.h:162: warning: left shift count >= width of type
./machine/endian.h:162: warning: left shift count >= width of type
./machine/endian.h:162: warning: left shift count >= width of type
./machine/endian.h:162: warning: left shift count >= width of type
./machine/endian.h:162: warning: left shift count >= width of type
In file included from ../../../sys/param.h:96,
from ../../../i386/i386/genassym.c:42:
../../../sys/time.h: In function `bintime2timespec':
../../../sys/time.h:112: warning: right shift count >= width of type
../../../sys/time.h:112: warning: right shift count >= width of type
../../../sys/time.h: In function `bintime2timeval':
../../../sys/time.h:129: warning: right shift count >= width of type
../../../sys/time.h:129: warning: right shift count >= width of type
In file included from ../../../sys/systm.h:42,
from ../../../i386/i386/genassym.c:43:
./machine/cpufunc.h: In function `rdmsr':
./machine/cpufunc.h:361: warning: left shift count >= width of type
./machine/cpufunc.h: In function `rdpmc':
./machine/cpufunc.h:370: warning: left shift count >= width of type
./machine/cpufunc.h: In function `rdtsc':
./machine/cpufunc.h:379: warning: left shift count >= width of type
./machine/cpufunc.h: In function `wrmsr':
./machine/cpufunc.h:400: warning: right shift count >= width of type
In file included from ../../../sys/proc.h:59,
from ../../../sys/buf.h:253,
from ../../../i386/i386/genassym.c:46:
../../../sys/ucontext.h: At top level:
../../../sys/ucontext.h:60: error: field `uc_mcontext' has incomplete type
In file included from ../../../i386/i386/genassym.c:53:
../../../sys/signalvar.h:80: error: field `si_sc' has incomplete type
../../../i386/i386/genassym.c:55:30: machine/bootinfo.h: No such file or directory
In file included from ./machine/cpu.h:43,
from ../../../i386/i386/genassym.c:72:
./machine/frame.h:97: error: width of `<anonymous>' exceeds its type
./machine/frame.h:98: error: width of `<anonymous>' exceeds its type
./machine/frame.h:99: error: width of `<anonymous>' exceeds its type
./machine/frame.h:100: error: width of `<anonymous>' exceeds its type
./machine/frame.h:127: error: width of `<anonymous>' exceeds its type
./machine/frame.h:128: error: width of `<anonymous>' exceeds its type
./machine/frame.h:129: error: width of `<anonymous>' exceeds its type
./machine/frame.h:130: error: width of `<anonymous>' exceeds its type
In file included from ./machine/cpu.h:44,
from ../../../i386/i386/genassym.c:72:
./machine/segments.h:89: error: width of `sd_hibase' exceeds its type
./machine/segments.h:107: error: width of `gd_hioffset' exceeds its type
./machine/segments.h:160: error: width of `rd_base' exceeds its type
../../../i386/i386/genassym.c:75:26: machine/vm86.h: No such file or directory
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:89: error: structure has no member named `md_ldt'
../../../i386/i386/genassym.c:102: error: `NPDEPTD' undeclared here (not in a function)
../../../i386/i386/genassym.c:103: error: `NPGPTD' undeclared here (not in a function)
../../../i386/i386/genassym.c:112: warning: left shift count >= width of type
../../../i386/i386/genassym.c:112: warning: left shift count >= width of type

Ich geh davon aus das es nicht Funktioniert.
 
miwi schrieb:
Hallo und Danke fuer deine Antwort. Ein Update auf 64 Bit scheint nicht zugehn.

Ich bin wie folgt vorgegangen. Ich ein neues SRC gezogen und bin nach /usr/src/sys/amd64/config gegangen und hatte config GENERIC gemacht.

danach sagte er ja bekanntlich make dependens etc jedenfalls fuehrte ich das aus und hatte die Fehlermeldung.

Ich habe sowas zwar auch noch nie gemacht, aber kann es sein, daß
in /etc/make.conf (oder wie die Datei heißt - ich kann im Moment nicht
nachsehen, da ich noch mit 4.8-Release unterwegs bin) noch
die falsche Architektur eingetragen ist?

-Gregor.
 
Hallo,
ich habe es zwar noch nicht probiert, aber nach dem Restore auf dem 64-Bit-System kannst Du, laut dem Makefile in /usr/src, mit make TARGET_ARCH=amd64 buildworld eine Crosscompilierung starten.

Frohe Weihnachten
Sven Marcel Buchholz
 
beim kernel benötigst du kein config GENERIC, nimm einfach die GENERIC datei, kopiere sie auf nen anderen namen und compiliere sie mit make buildkernel KERNCONF=CONFIGFILE, nachdem du wie marmorkuchen schreibt deine amd64 welt gebaut hast
 
Hallo :)

Erstmal danke fuer eure Antworten.

Ich habe es mit make TARGET_ARCH=amd64 buildworld probiert. Er compeliert auch alles fein sauber. Das problem ist das er bei make TARGET_ARCH=amd64 installkernel ich soll ein Destdir angeben. Jemand eine idee ?

Gruss
 
Zuletzt bearbeitet:
Erstens fehlt nach dem buildworld noch das buildkernel, bevor du ans installkernel gehen kannst. Und zweitens willst du das Teil ja nach / installieren. Also DESTDIR=/

VORHER BACKUP MACHEN!

Und dann den neuen Kernel booten, und hoffen, dass er das 32bittige /bin/init laden kann. Die COMPAT32 Optionen hast du auch im Kernel, ja?
 
Zurück
Oben