From Fedora Project Wiki
Nota
Questa pagina deve essere ancora completata.
Considerazioni per la sicurezza
FedUp non assicura ancora che Fedora venga avviata senza problemi sul proprio sistema quando si effettua un upgrade da rete. Far riferimento al Bug: #877623 per maggiori dettagli. E' possibile scaricare le immagini ISO e verificarne l'autenticità indipendentemente prima dell'upgrade con Fedup tramite media o tramite immagini per risolvere questi problemi; comunque l'upgrade da rete è ancora l'opzione raccomandata visto che permette una migliore gestione dei pacchetti. Si noti che ne Anaconda ne il PreUpgrade verificano l'autenticità della fonte.

Cos'é FedUp ?

FedUp (FEDora UPgrader) è lo strumento ufficiale per l'aggiornamento (upgrade) delle installazioni Fedora. Anaconda, l'installer di Fedora non ha alcuna funzionalità d'aggiornamento integrata a partire da Fedora 18, tale funzionalità è stata delegata completamente a Fedup.

Ad oggi, FedUp è in grado di aggiornare qualsiasi attuale installazione Fedora usando un repository di rete o un DVD come sorgente di pacchetti.

Cosa fa FedUp ?

FedUp consiste in due parti: il client usato per scaricare i pacchetti e per la preparazione all'upgrade ed un ambiente di pre-avvio che effettua l'attuale aggiornamento usando systemd e yum. Maggiori dettagli sono disponibili in un articolo sul blog del principale autore di FedUp

I file vengono scaricati in /var/cache/system-upgrade poi automaticamente rimossi ad upgrade terminato.

Il Client FedUp

Il Client di FedUp parte nel sistema che deve essere aggiornato. Raccoglie i pacchetti necessari per l'aggiornamento oltre a scaricare gli initramfs del kernel richiesti e necessari per l'aggiornamento vero e proprio. In questo momento è implementata la sola interfaccia a riga di comando di fedup ma ci si aspetta un'interfaccia GUI prima del rilascio di Fedora 18.

L'Upgrade

L'aggiornamento attuale ha luogo quando il sistema viene riavviato dopo l'esecuzione del client fedup. I filesystem sono montati durante l'avvio, i pacchetti già scaricati vengono installati ed alcune attività relative all'aggiornamento vengono eseguite. Durante il processo di aggiornamento, un tema speciale plymouth è utilizzato per visualizzare una barra di avanzamento per indicare i progressi in corso.

Domande frequenti

Come posso riportare eventuali problemi trovati durante gli aggiornamenti ?

Innanzitutto leggere Common F21 bugs or Common F22 bugs per sapere se il problema è tra quelli conosciuti. Se non lo è, il componente principale del problema dipende dall'esatta questione che s'incontra:

Questioni nella preparazione all'aggiornamento

Per problemi del genere con il client FedUp (fedup) prima del riavvio, ricercare o riportare un bug in rapporto a fedup usando la versione di partenza dalla quale si aggiorna.

Questioni durante l'upgrade

Per i problemi incontrati dopo la preparazione ed al riavvio iniziale, ricercare o riportare un bug in rapporto a fedup-dracut usando la versione alla quale si sta aggiornando.

Questioni dopo l'upgrade

Per problemi con un pacchetto specifico, riportare un bug in rapporto al pacchetto stesso.

Come posso risolvere un problema durante l'upgrade ?

Una guida per la risoluzione ed il debug verrà presto redatta e collegata alla presente pagina wiki.

FedUp verifica il software che avvia od installa durante l'upgrade ?

Sì. Le chiavi di firma del pacchetto per ogni nuovo rilascio di Fedora vengono inviate alle release precedenti in modo da permettere a FedUp di verificare l'integrità dei pacchetti che scarica. E' possibile disabilitare questa funzione con il parametro --nogpgcheck.

I pacchetti dei repository terzi verranno aggiornati?

Sì, se sono impostati come normali repository yum/DNF. I repositry terzi comunemente usati funzionano bene, a meno che non si tenti un upgrade troppo presto rispetto all'uscita della nuova Fedora, infatti potrebbero non essere aggiornati con la stessa tempestività di quelli ufficiali. Tuttavia questo non impedisce di avviare Fedora con successo.

Posso usare FedUp per aggiornare la mia Fedora ad una pre-release (ad esempio una beta)?

Sì. Successivamente alla diramazione di un nuovo rilascio di Fedoa, è possibile passare ad una pre-release con FedUp, anche con i rilasci della alpha e della beta.

Leggere questa email per maggiori dettagli.

Come posso aggiornare il mio sistema con FedUp?

Come accennato sopra, ci sono tre passaggi per aggiornare con FedUp - preparazione, esecuzione e pulizia.

Prma di iniziare qualsiasi operazione, assicurarsi di aver dato uno sguardo a Common F21 bugs#Upgrade_issues or Common F22 bugs#Upgrade_issues ed aver letto qualcosa riguardo ai bug conosciuti.

Upgrade da Fedora 20 o precedente: i Products

Al fine di scegliere uno dei nuovi prodotti Fedora, FedUp ha una nuova opzione:"--product=<PRODUCT>". Quando si parte da Fedora 20 o precedente per aggiornare a Fedora 21 o successiva, bisogna passare l'opzione --product.

E' possibile usare i seguenti valori workstation, server, cloud o nonproduct. Se si aggiorna a Workstation o Server, tutti i pacchetti che vengono inclusi nella installazione predefinita di quella scelta verranno installati dopo l'upgrade. La propria configurazione del firewall verrà inoltre resettata a quella predefinita del prodotto voluto (Product) (nella Workstation, si tratta di una configurazione discretamente aperta). Se non si desidera resettare la configurazione del firewall, usare il valore nonproduct.

Preparazione

Ultimo fedup
Assicurarsi di aver installato l'ultima versione del client fedup sul sistema da aggiornare. Ad oggi (2013-10-07), è fedup-0.7.3-4
  1. Fare un aggiornamento completo del sistema e riavviare per essere sicuri che qualsiasi modifica kernel sia stata effettuata
  2. Installare fedup
  3. Di solito, meglio prima provare l'ultimo fedup disponibile nei repository stabili. Se si incontrano problemi con l'upgrade ed è disponibile un nuovo fedup nei updates-testing, allora è possibile utilizzarlo: yum --enablerepo=updates-testing install fedup)

Ci sono tre opzioni per cercare i pacchetti necessari - usare un repository di rete, un file ISO locale od un dispositivo locale (hard drive, disco ottico, etc.).

L'aggiornamento da rete è fortemente raccomandato
E' fortemente raccomandato usare la rete invece delle modalità d'aggirnamento offline (ISO, dispositivo locale). L'aggiornamento online assicurerà di ricevere gli ultimissimi pacchetti. In caso contrario, si potrebbe ottenere un mix di pacchetti vecchi e nuovi ed il sistema potrebbe non funzionare adeguatamente.

Rete

Usare una sorgente d'aggiornamento online è il metodo più facile, implica il richiamo dei pacchetti più aggiornati possibile eliminando potenziali intoppi quando il sistema dispone dell'ultimissimo kernel.

  1. Iniziare l'upgrade utilizzando i seguenti comandi
    • sudo yum update fedup fedora-release
    • sudo fedup --network 21 --product=[workstation | server| cloud | nonproduct]
  2. Una volta completati, controllare che il file /var/log/fedup.log non mostri alcun errore da fedup

File ISO

I rilasci più vecchi di Fedora includevano un'immagine d'installazione con un gran numero di pacchetti, che li rendeva adatti per l'aggiornamento di alcuni sistemi. L'aggiornamento, avviando questa immagine, era possibile fino a Fedora 17, mentre l'uso della stessa immagine con FedUp era supportato fino a Fedora 20. Il DVD immagine universale non viene prodotto per Fedora 21 e successive; per ora, non ci sono supporti disponibili per gli aggiornamenti offline.

Altri dispositivi

Dispositivi ottici ed altro stoccaggio montabile possono anche essere utilizzati come fonte di pacchetti per le preparazioni.

  1. Montare la sorgente
    • Per esempio, supponiamo che tale sorgente sia montata in /mnt/fedora ma si potrebbe montarla ovunque indicandone l'esatta collocazione.
  2. Iniziare la preparazione eseguendo il seguente comando
    • sudo fedup --device /mnt/fedora --debuglog=fedupdebug.log
  3. Una volta completata, controllare il file fedupdebug.log per sapere se alcun errore è apparso da fedup-cli

Eseguire l'upgrade

  1. Riavviare il sistema se fedup ha finito senza errori.
  2. Dopo il riavvio, ci dovrebbe essere una nuova voce nel menu GRUB titolata System Upgrade.
  3. Selezionare l'opzione System Upgrade
    • Nota: Se System Upgrade non viene mostrato nel grublist all'avvio, è probabile si stia utilizando un Grub differente, spesso installato da altre distribuzioni Linux. Per correggere, reinstallare Grub:
      1. grub2-mkconfig -o /boot/grub2/grub.cfg
      2. grub2-install /dev/sda (rimpiazzare /dev/sda con il proprio dispositivo d'avvio)
  4. Il sistema dovrebbe avviare il processo di upgrade ed uno schermo plymouth dovrebbe apparire
    • Esiste una shell root su VT2 in modo da poter sperimentare con il sistema se qualcosa va storto. (Per disabilitarlo, avviare con rd.upgrade.noshell)
    • Se si preme 'esc', verrà mostrato un log dettagliato del processo; se si torna indietro, rimarrà allo 0% per il resto dell'aggiornamento ma questo non significa che l'aggiornamento si è fermato.
  5. Una volta completato, il sistema si riavvierà ed apparirà un'opzione per l'avvio Fedora 41 nel menu di grub

Aggiornamenti di GRUB

Aggiornamenti necessari
Questa parte della documentazione è in aggiornamento.
Non sempre opzionale
Mentre l'aggiornamento di GRUB sul sistema aggiornato non è strettamente necessario, è invece raccomandato per i sistemi BIOS ed estremamente raccomandato per i sistemi UEFI a causa della transizione da grub-efi a grub2-efi

Aggiornare GRUB2 (sistemi BIOS)

  • Dopo l'upgrade, il boot loader grub2 in uso sarà ancora in versione F17; il suo aggiornamento deve essere fatto manualmente
  • Seguire i passaggi in questa pagina per reinstallare ed aggiornare grub

Aggiornare GRUB (sistemi UEFI)

Grub2 non viene installato come parte del processo di upgrade, quindi bisogna farlo manualmente come root:

yum install grub2-efi

Migrare la configurazione di Grub

Sfortunatamente, molte impostazioni di avvio non vengono ereditate da grub2 senza un intervento manuale. Per mantenerle, bisognerà prenderle dalla configurazione del Grub di partenza. Aprire il /boot/efi/EFI/redhat/grub.conf e recuperarne le voci. I numeri di versione non devono necessariamente corrispondere con l'esempio, basta trovare quella più recente.

title Fedora (3.6.11-1.fc17.x86_64)
        root (hd0,2)
        kernel /vmlinuz-3.6.11-1.fc17.x86_64 rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12
                rd.md=0 rd.dm=0  KEYTABLE=us SYSFONT=True rd.lvm.lv=vg_test/lv_root
                root=/dev/mapper/vg_test-lv_root ro rd.lvm.lv=vg_test/lv_swap
                LANG=en_US.UTF-8 rhgb quiet
        initrd /initramfs-3.6.11-1.fc17.x86_64.img

Non siamo interessati a tutti gli argomenti seguenti al kernel, ma a quelli che iniziano con rd. ed a pochi altri specifici. Nell'esempio mostrato sopra:

rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12
rd.md=0
rd.dm=0
rd.lvm.lv=vg_test/lv_root
root=/dev/mapper/vg_test-lv_root
ro
rd.lvm.lv=vg_test/lv_swap
rhgb
quiet


Per mantenere la configurazione, aprire /etc/default/grub come root ed incollarci dentro il seguente modello:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_RECOVERY="true"
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
Tastiere e linguaggi non-US
Bisogna documentare vconsole

Prendere le args kernel estratte precedentemente ed inserirle all'interno delle virgolette corrispondenti a GRUB_CMDLINE_LINUX, come nell'esempio sotto.

Notare che la formattazione è stata leggermente modificata dal wiki - non ci dovrebbero essere a capo nel testo che segue GRUB_CMDLINE_LINUX.
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-f664c3a9-e939-410e-8478-891f48b80f12
rd.md=0 rd.dm=0 rd.lvm.lv=vg_test/lv_root root=/dev/mapper/vg_test-lv_root
ro rd.lvm.lv=vg_test/lv_swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_THEME="/boot/grub2/themes/system/theme.txt"

Ora, siamo in grado di concludere generando una nuova configurazione di grub con queste nuove impostazioni e collegarla con symlink a /etc/grub2-efi.cfg.

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
ln -s /boot/efi/EFI/fedora/grub.cfg /etc/grub2-efi.cfg

Aggiornare la voce d'avvio EFI

Una volta che il pacchetto grub2-efi è stato installato, bisogna aggiungere una nuova voce d'avvio EFI. Il modo più facile per farlo prevede la sola modifica del comando usato quando Fedora è stata installata la prima volta. Notare che non si userà esattamente lo stesso comando dell'aggiornamento a grub2 visto che la posizione di alcuni file è cambiata. Il comando di riferimento più vecchio può essere trovato in /var/log/anaconda/anaconda.program.log e dovrebbe terminare con un comando simile a:

efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l \EFI\redhat\grub.efi

Trovare il numero di avvio corrente per Fedora con efibootmgr:

efibootmgr -v

Cercare una linea simile a:

Boot0004* Fedora  HD(1,800,34800,6733749f-b42a-4b8c-a0de-5a1d3505f8af)File(\EFI\redhat\grub.efi)

Il numero di avvio in questo esempio è 0004.

Rimuovere la vecchia voce di avvio utilizzando il seguente comando, notare che <boot number> è il numero di avvio trovato prima:

efibootmgr -b <boot number> -B
Utilizzare le virgolette
Assicurarsi di usare le virgolette per '\EFI\fedora\grubx64.efi' altrimenti bash interpreterà \E, \f e \g come caratteri di controllo ed il sistema non si riavvierà come deve

Una volta ottenuto il comando che è stato utilizzato ed il numero di avvio della vecchia voce, è possibile cambiarlo per usare la nuova installazione grub2-efi:

# efibootmgr -c -w -L Fedora -d /dev/sdX -p Y -l '\EFI\fedora\grubx64.efi' -b <boot number>

Ora il sistema dovrebbe avere un boot loader grub2-efi funzionante che dovrebbe essere caricato al riavvio.

Pulizia successiva all'upgrade

In attesa di
Questa parte della documentazione deve ancora essere scritta

Bug rilevanti: Bug 888085

Ci sono delle cose da fare dopo l'upgrade. Alcune delle quali sistemate con una sincronizzazione distro:

yum distribution-synchronization --disablepresto

Se si utilizza google-chrome del repository di Google, è necessario reinstallarlo dopo l'upgrade a causa di un bug di imballaggio. Cambiare il seguente comando in base alla versione utilizzata:

yum remove google-chrome-\* && yum install google-chrome-[beta,stable,unstable]

Documenti da fare

  • Scrivere una guida per il debug e la risoluzione dei problemi di fedup
  • Aggiungere dettagli sull'installazione Secure Boot/ shim
  • Indicare i bug comuni in questa pagina
  • Aggiungere note sui driver blob se necessario
  • Aggiungere note su come usare altri repository oppure indicare discussioni/istruzioni a riguardo