Использовал/читал предварительно
wiki.freebsd.org
lissyara.su (migration from i386 to amd64 article)
и ещё что-то по теме, с хабра..
Но везде для 11.2 было не всё корректно, и так собрал все шаги тут
Дано:
arc-5.21p = up-to-date with index
arj-3.10.22_7 = up-to-date with index
ca_root_nss-3.40 = up-to-date with index
clamav-0.100.2 = up-to-date with index
curl-7.61.1 = up-to-date with index
dialog4ports-0.1.6 = up-to-date with index
dmidecode-3.2 = up-to-date with index
expat-2.2.6_1 = up-to-date with index
fontconfig-2.12.6,1 = up-to-date with index
freetype2-2.9.1 = up-to-date with index
gettext-runtime-0.19.8.1_1 = up-to-date with index
gmake-4.2.1_2 = up-to-date with index
iftop-1.0.p4 = up-to-date with index
indexinfo-0.3.1 = up-to-date with index
ipsec-tools-0.8.2_6 = up-to-date with index
isc-dhcp44-server-4.4.1_3 = up-to-date with inde
xjbigkit-2.1_1 = up-to-date with index
jpeg-8_7 = up-to-date with index
json-c-0.13.1 = up-to-date with index
lha-1.14i_8 = up-to-date with index
libedit-3.1.20170329_2,1 = up-to-date with inde
xlibgd-2.2.5,1 = up-to-date with index
libiconv-1.14_11 = up-to-date with index
libltdl-2.4.6 = up-to-date with index
libxml2-2.9.7 = up-to-date with index
lightsquid-1.8_4 = up-to-date with index
lua52-5.2.4 = up-to-date with index
mini_httpd-1.30 = up-to-date with inde
xopendkim-2.10.3_11 = up-to-date with index
p5-CGI-4.40 = up-to-date with index
p5-ExtUtils-PkgConfig-1.16 = up-to-date with index
p5-GD-2.68 = up-to-date with index
p5-HTML-Parser-3.72 = up-to-date with index
p5-HTML-Tagset-3.20_1 = up-to-date with index
pcre-8.42 = up-to-date with index
perl5-5.26.2 = up-to-date with index
pkg-1.10.5_5 = up-to-date with index
pkgconf-1.5.4,1 = up-to-date with index
png-1.6.35 = up-to-date with index
portmaster-3.19_18 = up-to-date with index
sarg-2.3.11 = up-to-date with index
squid-4.3_1 = up-to-date with index
tiff-4.0.9_1 = up-to-date with index
unzoo-4.4_2 = up-to-date with index
vim-console-8.1.0443 = up-to-date with index
System: Host: XXX.YYY.ru Kernel: FreeBSD 11.2-RELEASE-p4 i386 bits: 32 compiler: clang v: 6.0.0 Console: tty 0
dm: N/A OS: FreeBSD 11.2-RELEASE-p4
Machine: Type: Desktop System: Gigabyte product: H110-D3 v: N/A serial: N/A
Mobo: Gigabyte model: H110-D3-CF serial: N/A BIOS: American Megatrends v: F23 rev: 5.12 date: 12/14/2017
rom size: 8192 kB
Memory: RAM: total: 2.88 GiB used: 2.80 GiB (97.2%)
Array-1: capacity: 64 GiB slots: 4 EC: None max module size: 16 GiB note: est.
Device-1: ChannelA-DIMM0 size: 4 GiB speed: 2133 MT/s type: DDR4 detail: synchronous bus width: 64 bits
total: 64 bits manufacturer: Kingston part-no: 9905665-014.A00G serial: 9yyyyyyD
Device-2: ChannelA-DIMM1 size: No Module Installed
Device-3: ChannelB-DIMM0 size: 4 GiB speed: 2133 MT/s type: DDR4 detail: synchronous bus width: 64 bits
total: 64 bits manufacturer: Kingston part-no: 9905665-014.A00G serial: 9yyyyyyD
Device-4: ChannelB-DIMM1 size: No Module Installed
CPU: Topology: Dual Core model: Intel Pentium G4500 bits: 64 type: MCP arch: N/A L1 cache: 128 KiB L2 cache: N/A
L3 cache: 3072 KiB
features: lm nx pae sse sse2 sse3 ssse3 vmx
Speed: 3504 MHz min/max: 800/3500 MHz Core speeds (MHz): No speed data found for 2 cores.
Graphics: Device-1: Intel HD Graphics 530 driver: vgapci bus ID: 0:0:2.0 chip ID: 8086:1912
Display: server: No display server data found. Headless machine? tty: 190x54
Message: Unable to show advanced data. Required tool glxinfo missing.
Audio: Device-1: Intel Sunrise Point-H HD Audio driver: hdac bus ID: 0:0:31.3 chip ID: 8086:a170
Network: Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: re port: N/A bus ID: 0:2:0.0
chip ID: 10ec:8168
IF: re0 state: no mac: 11:22:33:44:55:66
Device-2: Realtek RTL-8100/8101L/8139 PCI Fast Ethernet Adapter driver: rl port: N/A bus ID: 0:4:0.0
chip ID: 10ec:8139
IF: rl0 state: active speed: 100baseTX duplex: full-duplex mac: 77:88:99:aa:bb:cc
Device-3: D-Link System DGE-528T Gigabit Ethernet Adapter driver: re port: N/A bus ID: 0:4:1.0 chip ID: 1186:4300
IF: re1 state: active speed: 1000baseT duplex: full-duplex mac: dd:ee:ff:00:11:22
Device-4: Intel 82574L Gigabit Network driver: em port: N/A bus ID: 0:6:0.0 chip ID: 8086:10d3
IF: em0 state: active speed: 100baseTX duplex: full-duplex mac: 33:44:55:66:77:88
Device-5: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: re port: N/A bus ID: 0:7:0.0
chip ID: 10ec:8168
IF: re2 state: no mac: 99:aa:bb:cc:dd:ee
Drives: Local Storage: total: 418.47 GiB used: 28.82 GiB (6.9%)
ID-1: /dev/ada0 vendor: Seagate model: ST3160827AS 3.42 size: 145.56 GiB speed: 150MB/s serial: 4LJxxxx6
ID-2: /dev/ada1 vendor: Seagate model: ST3300822AS 3.AAE size: 272.91 GiB speed: 300MB/s serial: 4NFxxxxA
Partition: ID-1: / size: 142.72 GiB used: 8.51 GiB (6.0%) fs: ufs dev: /dev/mirror/zerkalo
ID-2: swap-1 size: 4.00 GiB used: 30.4 MiB (0.7%) fs: swap dev: /dev/ada1p3
Sensors: Platform: No Freebsd support. Is a comparable sensors tool available?
Info: Processes: 66 Uptime: 29d 57m Init: init (BSD) v: N/A Compilers: gcc: N/A clang: 6.0.0 Shell: tcsh v: 6.20.00
running in: tty 0 pinxi: 3.0.27-6
=> 34 312581741 ada0 GPT (149G)
34 128 1 freebsd-boot (64K)
162 304086912 2 freebsd-ufs (145G)
304087074 8388608 3 freebsd-swap (4.0G)
312475682 106093 - free - (52M)
=> 34 586072301 ada1 GPT (279G)
34 128 1 freebsd-boot (64K)
162 304086912 2 freebsd-ufs (145G)
304087074 8388608 3 freebsd-swap (4.0G)
312475682 273596653 4 freebsd-ufs (130G)
$ glabel status
Name Status Components
gptid/dd501c06-4057-11e1-8ab4-0011d875add1 N/A ada0p1
gptid/6f9b195e-41d7-11e1-b6b0-0011d875add1 N/A ada1p1
label/not_in_raid N/A ada1p4
gptid/dd52810f-4057-11e1-8ab4-0011d875add1 N/A ada0p3
mirror/zerkalo COMPLETE ada0p2 (ACTIVE)
ada1p2 (ACTIVE)
/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/mirror/zerkalo / ufs rw 1 1
#/dev/ada0p3 none swap sw 0 0
/dev/ada1p3 none swap sw 0 0
/dev/label/not_in_raid /mnt ufs rw,failok 2 2
#/dev/ada1p4 /mnt ufs rw,failok 2 2
ПЛАН:
1. ставим amd64 систему на ada0p3 и настраиваем пароли/логины, и только sshd + amd64 ядро в /boot/kern64 1.1. не забыть про файлы fstab passwd* sshd.conf hosts.allow resolv.conf
2. грузимся в неё по nextboot -o 'vfs.root.mountfrom="ufs:/dev/ada0p3' -k kern64
3. собираем world и generic ядро, монтируем старую систему и ставим всё туда + mergemaster
log:
1. newfs -U -n ada0p3
mount /dev/ada0p3 /media/
cd /usr/src && daemon -fo /tmp/iw.amd64 make installworld TARGET=amd64 TARGET_ARCH=amd64 DESTDIR=/media/
cd etc/ && daemon -fo /tmp/dstr.amd64 make distribution TARGET=amd64 TARGET_ARCH=amd64 DESTDIR=/media/
>> install -o root -g wheel -m 644 /usr/src/etc/sendmail/freebsd.mc freebsd.cf /media//etc/mail
>> install: freebsd.cf: No such file or directory
>> *** Error code 71
>>
>> Stop.
pushd /usr/src/etc/sendmail && touch freebsd.cf freebsd.submit.cf && popd
daemon -fo /tmp/dstr.amd64-1 make distribution TARGET=amd64 TARGET_ARCH=amd64 DESTDIR=/media/
cd .. && daemon -fo /tmp/ikern.amd64 make installkernel TARGET=amd64 TARGET_ARCH=amd64 DESTDIR=/media/
cp -rp /media/boot/kernel /boot/kernel.amd64
cp -vp /boot/loader.conf /media/boot/
cd /media/
>> copy from /etc: group host.conf master.passwd passwd pwd.db spwd.db ssh/ssh_host_dsa_key ssh/ssh_host_dsa_key.pub ssh/ssh_host_ecdsa_key ssh/ssh_host_ecdsa_key.pub ssh/ssh_host_ed25519_key ssh/ssh_host_ed25519_key.pub ssh/ssh_host_key ssh/ssh_host_key.pub ssh/ssh_host_rsa_key ssh/ssh_host_rsa_key.pub
>> $ cat fstab
# Device Mountpoint FStype Options Dump Pass#
#/dev/mirror/zerkalo / ufs rw 1 1
/dev/ada0p3 / ufs rw 1 1
#/dev/ada0p3 none swap sw 0 0
/dev/ada1p3 none swap sw 0 0
/dev/label/not_in_raid /mnt ufs rw,failok 2 2
#/dev/ada1p4 /mnt ufs rw,failok 2 2
>> $ cat rc.conf
hostname=xx.yy.ru
ifconfig_em0='inet xx.yy.zzz.230 netmask 255.255.255.252'
defaultrouter=xx.yy.zzz.229
sshd_enable=YES
dumpdev=NO
firewall_enable=NO
local_unbound_enable=YES
sendmail_enable=NO
fsck_y_enable=YES
>>
cp -vp ~/.tcshrc ../root/
cp -p /etc/nsswitch.conf /media/etc/
nextboot -e vfs.root.mountfrom="ufs:/dev/ada0p3" -k kernel.amd64
^^^
нет. Фиг!!!
пришлось ехать
вот как надо было:
$ cat /boot/_amd64.nextboot.conf
nextboot_enable="YES"
vfs.root.mountfrom="ufs:ada0p3"
kernel="kernel.amd64"
$ gmirror status
Name Status Components
mirror/zerkalo COMPLETE ada0p2 (ACTIVE)
ada1p2 (ACTIVE)
ada1p2 - remove (backup), then fsck && try to mount
маунтим zerkalo и собираем опять всё из сорцов т.к.
daemon -fo /tmp/iw make installworld TARGET=amd64 TARGET_ARCH=amd64 DESTDIR=/media/ -------------------------------------------------------------- >>> Installing everything -------------------------------------------------------------- cd /media/usr/src; make -f Makefile.inc1 install ===> lib (install) ===> lib/csu (install) ===> lib/csu/amd64 (install) cc -target x86_64-unknown-freebsd11.2 --sysroot=/usr/obj/media/usr/src/tmp -B/usr/obj/media/usr/src/tmp/usr/bin -O2 -pipe -I/media/usr/src/lib/csu/common -I/media/usr/src/lib/libc/include -fno-omit-frame-pointer -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -Wthread-safety -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Qunused-arguments ERROR-tried-to-rebuild-during-make-install -S -o crt1.s /media/usr/src/lib/csu/amd64/crt1.c /tmp/install.rXK3ejX9/sh: cc: not found *** Error code 127 Stop. make[6]: stopped in /media/usr/src/lib/csu/amd64 *** Error code 1 Stop. make[5]: stopped in /media/usr/src/lib/csu *** Error code 1 Stop. make[4]: stopped in /media/usr/src/lib *** Error code 1 Stop. make[3]: stopped in /media/usr/src *** Error code 1 Stop. make[2]: stopped in /media/usr/src *** Error code 1 Stop. make[1]: stopped in /media/usr/src *** Error code 1 Stop. make: stopped in /media/usr/src
ну и стандартно:
cd /usr/src; daemon -fo /tmp/bw.log make -j`sysctl -n hw.ncpu` buildworld DESTDIR=/media/ daemon -fo /tmp/bkern.log make -j`sysctl -n hw.ncpu` buildkernel DESTDIR=/media/ daemon -fo /tmp/iw.log make installworld DESTDIR=/media/ daemon -fo /tmp/ikern.log make installkernel DESTDIR=/media/ daemon -fo /tmp/merge.log /usr/sbin/mergemaster -aCt /tmp/root.diff -D /media/
контролировать процесс можно командой типа такого:
egrep '^>+' [logfile] ; pgrep -fd, '^(make|c[c+]+|ld)' && tail -3 [logfile] | sed -E 's/^(.{144}).+$/\1.../' || printf '\nThat'\''s all, dude\n\n' ; uptime
подставляя вместо [logfile] нужный лог
----------------------------------
--- take2 i386 -> amd64 @dive1 ---
----------------------------------
1. коментируем swap1 в /etc/fstab и монтируем её так, чтобы /usr/obj был на нём
$ glabel status
Name Status Components
...
gpt/swap1 N/A ada0p2
2. newfs -U -n ada0p2
mount /dev/ada0p2 /mnt/
-- mkdir -p /mnt/usr/obj
-- mv -v /usr/obj /usr/obj.org && ln -sf /mnt/usr/obj /usr/
-- ??? /usr/src/Makefile:MAKEOBJDIRPREFIX?= /usr/obj
-- because of not enough space --
daemon -fo /tmp/bw_amd.log make world TARGET=amd64 TARGET_ARCH=amd64 DESTDIR=/mnt/
Комментарии