upgrade zo 6.4-R na 7.3-R - Poznatky I. / i386 na amd64

Miroslav Lachman 000.fbsd at quip.cz
Thu Nov 25 22:33:19 CET 2010


Teda vy tu pisete hrozny romany... jdu se pridat :)

Lubomir Majersky wrote:
> Dňa 25.11.2010 18:26, Dan Lukes  wrote / napísal(a):
>> ...
>> 1 vytvoris si seznam portu, na kterych nezavisi zadny dalsi port.
>> ...

> Ano, trafil si klinec po hlavicke... Aspon dva razy do roka si na
> serveroch preklepuvam porty a ich zavislosti. Ked som si isty, ze je pre
> moj system ten ktory port mrtvy, likvidujem ho.

Tenhle pripad je popsany v manualu portmasteru - v praxi uz jsem ho 
pouzil pro "prenos" stejne konfigurace z jednoho serveru na jiny.

      Using portmaster to do a complete reinstallation of all your ports:
            1. portmaster --list-origins > ~/installed-port-list
            2. Update your ports tree
            3. portmaster --clean-distfiles-all
            4. portmaster --check-port-dbdir
            5. portmaster -Faf
            6. pkg_delete '*'
            7. rm -rf /usr/local/lib/compat/pkg
            8. Manually check /usr/local and /var/db/pkg
               to make sure that they are really empty
            9. Re-install portmaster
            10. portmaster `cat ~/installed-port-list`

Az do bodu 5 bych to patrne provedl na stare verzi systemu a od bodu 6 
dal na nove verzi, ale neni to nevyhnutelne.

>>> V sobotu sa chystam na upgrade dalsieho servera zo 6.4-R na 7.3-R...
>>
>> KDYZ UZ se nemuzes vyhnout situaci, ze mas nekonzistentni verzi jadra a
>> worldu (a ze lepsi je vyhnout se ji) tak za bezpecnejsi variantu
>> povazuju "novy kernel, stary world" nez obracene.
> No, toto neviem ako by som docielil (myslim tym obratenie), ked vezmem v
> uvahu fakt, ze upgrade (napriek vystrahe ohladom jadra, hned v uvode
> upgrade) prebieha s mojim jadrom 'MYKERN', v ktorom z pochopitelnych
> dovodov nie je zahrnute (a ani nemoze byt) 'FREEBSD_COMPAT6', kedze
> prechadzam zo 6-ovej na 7-kovu verziu... Dokedy je vlastne v systeme
> stary world?

Jelikoz musim souhlasit s Danem, tak bych popsal i postup, jak bych to v 
pripade freebsd-update ve tve situaci udelal ja (ja ale az na vyjimky 
pouzivam GENERIC viz jiny e-mail, co jsem pred chvili poslal)

1] Nejprve bych si stroj rebootnul se soucasnou verzi systemu a GENERIC 
jadrem. Pokud  ho nemas zkompilovany, muzes si ho stahnout z FTP a 
nainstalovat klidne do /boot/generic.old a rebootovat na tento kernel 
pomoci prikazu nextboot (doporucuju precist man nextboot)

(dokud jsem jeste pouzival source upgrade, tak jsem si vzdy kompiloval 
svuj kernel a k nemu i GENERIC, ten jsem ale neinstaloval, nicmene jsem 
ho mel pripraveny pro pripad ze se neco po...)

2] freebsd-update upgrade -r 7.3-RELEASE
tim se stahne vse potrebne, pokud /usr/src obsahuje zdrojaky, tak se 
stahuji i nove zdrojaky

3] freebsd-update install
tim se nainstaluje novy GENERIC pro 7.3

4] shutdown -r now
tady nam po restartu nabehne system se 7.3 GENERICem a 6.4 worldem

5] freebsd-update install
timhle se nainstaluje 7.3 world a pripadne i /usr/src

6] shutdown -r now
tady nam po restartu nabehne system se 7.3 GENERIC kernelem a 7.3 
worldem vcetne /usr/src

7] a ted bych si pripadne zkompiloval a nainstaloval vlastni kernel... 
ale pokud vlastni kernel znamena GENERIC a z neho vyhazeno par veci "jen 
tak pro ten pocit" i kdyz masina nejede nikdy naplno, tak bych se s 
vlastnim kernelem rozhodne nedelal - ne za situace, ze chci pouzivat 
freebsd-update. To bych pak snad radeji zustal u toho postupu s kompilaci

A skutecne bych u remote upgrade nezkousel rebootovat novy world a stary 
kernel. Ze to ted vyslo je fajn, ale nemusi tomu tak vzdy byt. Opacny 
postup (novy kernel a stary world) je "overeny funkcni" postup uz prave 
proto, ze ho pouziva freebsd-update.

>> 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 a na 
jednom z disku bych si udelal novou binarni instalaci te cilove 
architektury (stahnout z FTP base + kernel a pustit install.sh s cilem 
na druhem disku), zapnout v rc.conf ssh, pridat potrebne uzivatele, pak 
rebootnul z toho druheho disku namisto gmirroru, dodelal vse potrebne, 
nainstaloval porty, otestoval, ze vsechno bezi jak ma, zrusil gmirror na 
prvnim disku, vytvoril na tomhle druhem, rebootnul, vlozil prvni do 
gmirroru... zni to relativne snadno, ale jeste jsem nemel tu potrebu to 
zkouset :)

Jak te znam, Dane, tak ty gmirror asi nepouzivas, takze pak bych udelal 
neco podobneho s tim, ze bych zrusil /tmp (pokud je dost velky, aby se 
tam vesel novy world i kernel) a do tohoto oddilu udelal tu novou 
instalaci jine architektury tak jako v te prvni variante a rebootnul na 
tuhle variantu. Myslim, ze by to melo s nextbootem jit vyresit...
Pripadne misto /tmp pouzit swap a udelat z neho normalni oddil...

Mam jeste takovy pocit, ze driv pro amd64 musel byt i 64bit BTX loader, 
ale to uz mam v hlave jen nejakou mlhavou vzpominku z doby, kdy jsem si 
na flashdisk delal nekolik oddilu s ruznymi verzemi FreeBSD 
instalatoru... nakonec tam ale pouzivam GRUB.

Na pristi tyden mam v planu upgrade jednoho odstaveneho stroje, tak 
jestli je nejaky enormni zajem, muzu zkusit udelat upgrade ze 7.3 i386 
na 8.1 amd64 a postup sem pak napsat ;o)

Mirek


More information about the Users-l mailing list