Cross-plaform upgrade 8.4 i386 na 10.3 amd64
Miroslav Lachman
000.fbsd at quip.cz
Tue Sep 20 03:27:41 CEST 2016
Vytahnul jsem tenhle 6 let stary e-mail, jen tak pro zajimavost. Dnes
jsem tenhle typ upgrade provedl (nejprve ve virtualboxu a pak na
produkcnim stroji). V minulosti jsem se tomu vzdycky nejak vyhnul tim
upgradem na rozdelenem gmirroru.
info nize
Dan Lukes wrote on 11/25/2010 23:02:
> On 11/25/10 22:33, Miroslav Lachman:
>>>> Mimochodem, cross-architecture (i386 -> amd64) remote upgrade je
>>>> neco, o
>>>> cem bych si s nekym rad prumluvil ...
>>
>> V mem pripade, kde pouzivam gmirror bych mozna rozlozil gmirror
>
> Ano, to by slo - dokonce i bez gmirroru, pokud mas na disku dost
> nealokovaneho mista (nebo si pomuzes tim /tmp, jak navrhujes - pokud ho
> ovsem mas samostatny).
>
> Ja bych ale zase radeji jednokolovy postup (jeden reboot, plus maximalen
> druhy az bude hotovo naprosto vsechno, tj. vcetne reinstalace vsech portu).
>
> Vlastne mam v tehle chvili jediny hlavni problem - a tim je
>
> /libexec/ld-elf.so.1
Mohl bych te poprosit o rozvinuti toho problemu s ld-elf.so.1? Zda se,
ze jsem tenhle problem nepotkal.
> Ten na zivem systemu nelze aktualizovat a soucasne ho nelze "pres
> restart" ponechat neaktualizovany.
Me se ho poradilo prepsat bez problemu a na beh aktualniho systemu to
nemelo zadny mnou viditelny vliv.
> Az budu mit cas, coz ted nemam, musim nastudovat, jak presne vlastne
> system loaduje soubory, a zejmena, kde se bere toto jmeno a cesta. Pak
> bych mohl an bezicim systemu udelat kopii tohoto klicoveho souboru,
> zmenit systemove nastaveni tak, aby se zacal pouzivat ten - a pak bych
> uz mohl puvodni aktualizovat aniz by to melo fatalni nasledky.
>
> Ostatni knihovny a binary bych uz nejak vyresil ...
Muj postup byl nasledujici a obnaselo to dva rebooty, z toho ten druhy
byl jen pro jistotu po reinstalaci vsech portu.
1) na buildserveru jsem si "nainstaloval" cisty system do prazdneho
adresare a ten zabalil do tar archivu (make installkernel a make
installworld bez make distribution)
2) do druheho archivu jsem si zabalil nektere soubory z make
distribuition (/etc/rc.d/, /etc/periodic a asi 10 dalsich "dulezitych" -
dalo by se urcite vyresit lepe)
3) tar archivy jsem si nahral na upgradovany i386 stroj
4) zaloha 32bit rescue - bude se hodit:
mv /rescue /resc32
5) povypinat lokalni sluzby
6) Povolit zapis bootsektoru na disk sysctl kern.geom.debugflags=16
7) Rozbalit archivy
cd / && tar xvf 10.3_release-dist.tgz (nejprve soubory do /etc/)
tar xvf 10.3_release.tgz
8) Zapsat novy bootcode
/resc32/gpart bootcode -b /boot/boot mirror/gm0s1
9) Reboot
/resc32/reboot
Po rebootu system normalne nabehne, hlasi se jako 10.3 amd64
Jen tak pro jistotu jsem v tomhle bode udelal jeste:
make installkernel
make installworld
make delete-old
mergemaster
/usr/src a /usr/obj se mountuje pres NFS z buildserveru, kde jsem
vytvarel i ten puvodni tar, takze installkernel a installworld je vazne
duplicitni a stacilo by delete-old a mergemaster
A pak zbyva jen provest upgrade vsech portu
Jako prvni /usr/local/sbin/pkg-static install -f pkg
Nejdriv jsem si to cele nasimuloval ve VirtualBoxu, kam jsem si
prekopiroval system vcetne baliku z toho produkcniho stroje. A kdyz jsem
tam odladil par drobnosti a tvarilo se to funkcne, tak jsem to udelal i
na produkcnim stroji - to byl posledni, ktery bezel na i386. :)
Asi uz v dnesni dobe tuhle informaci nikdo nevyuzije, ale chtel jsem si
to zkratka vyzkouset a dopadlo to dobre.
Mirek
More information about the Users-l
mailing list