Installare o Aggiornare openSUSE 11.4 da disco rigido (con vecchia versione installata)

Mar, 26/07/2011 - 01:39
Ritratto di aksaf

Installare o Aggiornare openSUSE 11.4 da disco rigido (con vecchia versione installata)

Inviato da aksaf 18 commenti

Quella che segue è una mini-guida per installare openSUSE nel caso in cui non si voglia o non si possano usare un DVD o una chiavetta USB.
Questa guida affronta il caso particolare in cui il sistema abbia già una vecchia versione di openSUSE installata. Ma la condizione può essere facilmente rimossa: basterà avere un'altra distro GNU/Linux installata.
L'altra condizione necessaria è la presenza di almeno 4GB di spazio libero in una partizione che non verrà toccata dall'installazione, nell'esempio in questione considereremo la partizione che ospita /home, che di solito non viene formattata durante un'installazione o un aggiornamento (sempre che si siano seguite le linee guide di installazione e si siano create almeno tre partizioni: / che contiene il sistema che verrà aggiornato o sovrascritto, /home che contiene i preziosi dati utente, e la partizione di swap).

Prenderò ad esempio l'installazione per 64 bit, ciascuno userà la iso della versione di openSUSE adatta all'architettura del suo sistema.
I punti in breve sono:

1 Montaggio del file.iso, immagine del DVD di installazione

Aprire la console e diventare root con su - e poi inserire la password.
Dare i comandi (# indica che si sta agendo come root)

# mkdir /mnt/iso
# mount -t iso9660 -o loop /percorso_iso/openSUSE-11.4-DVD-x86_64.iso /mnt/iso

sostituire percorso_iso col percorso in cui si trova il file.iso (esempio: /home/tux/Scaricati/openSUSE-11.4-DVD-x86_64.iso. Se l'architettura è a 32 bit: openSUSE-11.4-DVD-i586.iso).

2 Copia dei file necessari per avvio e installazione

Controllare di avere abbastanza spazio in /home, dato che vi dovremo copiare il contenuto dell'immagine del DVD di openSUSE ($: eseguire come utente normale):
$ df -Th
e controllare nel risultato del comando che nella riga corrispondente a /home ci siano almeno 5G di spazio Disp. Es.

File system   Tipo    Dim. Usati Disp. Uso% Montato su
...
/dev/sda1(X)     ext4     20G  10G   10G  50% /
/dev/sda5(Y)     ext4     20G  10G   10G  50% /home
...

Si presti attenzione al nome del device: /dev/sdaY (dove Y è un numero diverso a seconda della configurazione del disco rigido, qui vale 2) che ci servirà alla fine per indicare all'installazione di openSUSE la cartella da cui installare il sistema.
Ovviamente si tratta solo di un esempio: i nomi cambieranno a seconda della propria configurazione del disco rigido, se ci sono due dischi rigidi potranno essere sdbX e sdbY, e così via.
Nel comando seguente sostituire x86_64 con i386 se l'architettura è a 32 bit:
# mkdir /home/opensuse
# cp -a /mnt/iso/* /home/opensuse
# cp /mnt/iso/boot/x86_64/loader/linux /home
# cp /mnt/iso/boot/x86_64/loader/initrd /home

linux e initrd saranno il kernel e l'immagine RAM che saranno usati per far partire l'installazione/aggiornamento da disco fisso. Devono essere nella root della partizione da cui verrà fatta partire l'installazione.
I file di installazione vanno nella stessa partizione, ma in una sotto-cartella, in questo caso si è scelto di copiarli nella cartella opensuse.

3 Configurazione di GRUB

Con i seguenti comandi da root aggiungiamo la nuova voce "iso-install" in fondo al file di configurazione di grub (copiare le linee una alla volta con attenzione), si presti attenzione che il parametro (hd0,M) sarà specifico della propria installazione, vedere sotto per una spiegazione:

# cp /boot/grub/menu.lst /root/menu.lst # backup di sicurezza
# echo -e "\ntitle iso-install\nkernel (hdX,N)/linux\ninitrd (hdX,N)/initrd" >> /boot/grub/menu.lst

se si vuole si può usare l'editor vi lanciato da root (# vi /boot/grub/menu.lst), spostarsi in fondo al file col tasto G , premere o per iniziare una nuova linea e inserire (sostituendo (hdX,N) col parametro appropriato, vedi dopo):
title iso-install
kernel (hdX,N)/linux
initrd (hdX,N)/initrd

(hdX,N) indica la partizione che verrà avviata da grub al riavvio del sistema.
Nel caso in cui supponiamo di avere un unico disco rigido, con openSUSE installata sulla prima partizione primaria e i dati nella prima unità logica della partizione estesa, (hdX,N) sarà (hd0,4) dato che in (hd0,0) ci sarà il sistema installato, hd0 indica il primo, e forse unico, disco rigido, hd1 sarà il successivo e così via.
Dovremo quindi sostituire X con   ed N con 4, nei comandi sopra.
Al termine delle modifiche con vi, premere Esc e salvare digitando :wq seguito da Invio.
Il funzionamento di grub non può essere affrontato in questa sede,ovviamente.
Tuttavia se (hd0,4) non è la partizione con i dati (cioè si cui è montata /home) (ed è anche possibile che (hd0,0) non si la partizione di sistema), sarà comunque possibile risalire al nome della partizione d'avvio, o in ogni caso verificarlo, con il seguente comando interattivo (è necessario essere superutenti, diventarlo col comando su -):
# grub

il comando risponderà con
grub>

è attenderà un nostro comando. Scriviamo allora, sulla stessa linea
find /linux

premiamo invio/enter ed otterremo il nome della partizione in cui si trova il kenel linux da avviare (e initrd):
grub> find /linux
 (hd0,7)

Se le risposta è unica (cioè una sola partizione contiene il file che cerchiamo) siamo a posto: nel caso del comando d'esempio (hdX,N) sarà (hd0,7). Lo usiamo nel comando all'inizio di questa sezione (o lo scriviamo se usiamo vi) e poi passiamo al paragrafo 4.

Se invece ci sono più linee (e partizioni) di risposta,leggere quando segue.
Possiamo conoscere il nome della partizione d'avvio di openSUSE secondo la convenzione di grub analizzando il file /boot/grub/menu.lst e cercando la voce corrispondente all'avvio della propria versione di openSUSE se questa per esempio sarà

title Desktop -- openSUSE 11.4 - 2.6.37.6-0.7
    root (hd0,6)
    kernel /boot/vmlinuz-2.6.37.6-0.7-desktop root=/dev/disk/by-id/ata-[..]-part7

incrociando i dati col risultato del comando # fdisk -l /dev/sdYY potremo risalire al corretto disco rigido da usare (nel nostro caso hd0 (quindi X=0). Nel comando sostituire sdYY col nome del proprio disco fisso (es.: sda se c'è un solo disco rigido (S)ATA), usare p.es. # fdisk -l per un elenco dei dispositivi disponibili.
Il file /boot/grub/device.map fornisce inoltre l'associazione disco rigido-partizione (cioè hdX)
(Per maggiori info:
http://en.opensuse.org/SDB:All_about_GRUB)

Suggerimento: Per avere rapidamente un elenco con i nomi delle partizioni, secondo la convenzione usata da grub dare il comando
# grub

al prompt scrivere
root (

seguito da Tab, grub risponderà con l'elenco dei dispositivi avviabili, sceglierne uno (scrivendolo al prompt) o lasciare che grub completi automaticamente con hd0 se c'è n'è uno solo:
root (hd0,

un altro Tab e grub presenta l'elenco delle partizioni:
root (hd0,
 Possible partitions are:
   Partition num: 0,[..]

Vedere http://doc.opensuse.org/products/opensuse/openSUSE/opensuse-reference/cha.grub.html.

4. Riavvio e installazione

Riavviare la vecchia versione di openSUSE o GNU/Linux.
Sulla schermata che all'avvio presenta la lista dei sistemi avviabili sarà comparsa la nuova voce "iso-install". Se non sono stati fatti errori in precedenza il kernel verrà caricato e dopo un po' comparirà una schermata scura con una finestra grigia al centro (vedere la prima schermata più avanti).
Seguire allora i seguenti comandi, tenendo conto che si dovranno usare le frecce (e, o in alternativa, il tasto Tab) per selezionare le voci indicate e il tasto Invio per confermare (tra parentesi indico le voci che dovrebbe essere selezionate per impostazione predefinita).


Premere "Back"

Selezionare "Italiano"
Premi OK

(Selez. "Italiano")
Premi OK

(Sel. "Inizio Installazione")
Premi OK

(Sel. "Inizializzare l'Installaz. o Update")
Premi OK

Seleziona "Disco Rigido"
Premi OK

Seleziona "/dev/sda5"
Tieni conto che nel tuo caso probabilmente la partizione sarà diversa, oltre che più grande Wink

Premi OK


Scrivi /opensuse
Premi OK

E a questo punto (può darsi che si debba premere OK ancora una volta) ci accoglierà l'installazione di openSUSE 11.4 in modalità grafica, quindi con il consueto aspetto familiare delle guide sul forum o altrove.

In questo articolo (con argomento diverso) è possibile vedere alcune delle schermate per la versione in inglese, potrebbero servire se la versione italiana delle finestre non fosse indisponibile (installazione da Live CD)





Commenti

Ritratto di ILSECCO
#1

Inviato da ILSECCO il Mar, 09/08/2011 - 11:07.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

C'era qualcosa che non andava e ho modificato le cartelle scritte in grassetto:

localhost:/home/secco # mount -t iso9660 -o loop /home/secco/Scaricati/openSUSE-11.4-DVD-i586.iso /mnt/isolocalhost:/home/secco # cp -a /mnt/iso/* /home/opensuse
cp: target `/home/opensuse' is not a directory
localhost:/home/secco # cp -a /mnt/iso/* /home/suse
localhost:/home/secco # cp /mnt/iso/boot/i386/loader/{linux,initrd} -t /home
cp: impossibile sovrascrivere la directory `/home/linux' con una non-directory
localhost:/home/secco # cp /mnt/iso/boot/i386/loader/{linux,initrd} -t /home/linux

/Home/opensuse ---> /home/suse
e
/home ---> /home/linux
Ho copiato questi comandi
localhost:/home/secco # cp /boot/grub/menu.lst /root/menu.lst # backup di sicurezza
localhost:/home/secco # echo -e "\ntitle iso-install\nkernel (hd0,1)/linux\ninitrd (hd0,1)/initrd" >> /boot/grub/menu.lst

e adesso riavvio (incrociamo le dita)
Ciao



Ritratto di ILSECCO
#2

Inviato da ILSECCO il Mar, 09/08/2011 - 12:43.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Non parte l'installazione, esce: Error 22 non esiste la partizione (in inglese)
allora ho provato a cambiare hd0,1 con hd0,2 e hd0,8 ma niente, sempre lo stesso errore e adesso nel grub ho (ovviamente) tre iso-install non funzionanti...
In attesa di suggerimenti
Grazie in anticipo
Ciao ciao



Ritratto di aksaf
#3

Inviato da aksaf il Mer, 10/08/2011 - 16:01.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Scusa se non ti ho risposto prima, mi era sfuggito il commento al blog Smile
Quando vedi il carattere # vuol dire che devi lanciare il comando come root, quindi prima diventa root:

su -

e poi inserisci la password
Nel copiare il comando tralascia il cancelletto (e anche lo spazio che lo segue, benché non necessario), es.
# comando foo bar

copi e incolli da comando in avanti.
ILSECCO ha scritto:

localhost:/home/secco # mount -t iso9660 -o loop /home/secco/Scaricati/openSUSE-11.4-DVD-i586.iso /mnt/isolocalhost:/home/secco # cp -a /mnt/iso/* /home/opensuse


hai copiato l'intera sequenza di comandi, ma si tratta di tre comandi da copiare uno alla volta (ne copi 1 e poi primi Invio, e così via), dato che sono preceduti dal cancelletto "#" vuol dire che devi essere root per lanciarli.

Per la configurazione del tuo disco rigido, puoi postarmi l'output dei comandi (segno $ significa che puoi lanciare il comando come utente normale, es.: secco)

$ df -Th

# fdisk -l /dev/sda

e anche
# grep 'Desktop -- openSUSE'  -A4 /boot/grub/menu.lst

--edit--
se puoi copiami anche il risultato dei comandi indicati nel riquadro suggerimento, al punto 3.
Ciao



Ritratto di Gollum
#4

Inviato da Gollum il Mer, 10/08/2011 - 15:09.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Un consiglio: sconsiglio di copiare e incollare i comandi .imparate a scriverli e capirete meglio come funziona la shell. Ogni tanto consultate anche il man del comando
esempio

man fdisk

Scusa aksaf se ho invaso il tuo blog per una cosa del genere. Ciao



Ritratto di aksaf
#5

Inviato da aksaf il Mer, 10/08/2011 - 19:20.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Gollum ha scritto:


Scusa aksaf se ho invaso il tuo blog per una cosa del genere. Ciao

Sei il benvenuto! Smile



Ritratto di ILSECCO
#6

Inviato da ILSECCO il Mer, 10/08/2011 - 21:04.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Non è così facile imparare dal man del comando quando non si hanno ben chiare le basi...
La differenza tra root (#) e utente ($) l'avevo capita, i comandi ne ho copiato/incollato uno alla volta e premuto invio; ho copiato tutto dalla konsole, postato qui e le righe sono nello stesso ordine in cui erano nella konsole.
Ora apro la konsole, metto i nuovi comandi e ti posto i risultati
Ciao ciao



Ritratto di dragoncello
#7

Inviato da dragoncello il Gio, 11/08/2011 - 00:26.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

L'unica cosa che mi da un po fastidio del man è che è tutto,o quasi in inglese,e giu a tradurre che due palle
ciao



Ritratto di ILSECCO
#8

Inviato da ILSECCO il Gio, 11/08/2011 - 11:48.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Ecco i risultati per i primi due comandi, il terzo (grep...) non restituisce niente:

secco@localhost:~> df -Th
Filesystem    Type Dimens. Usati Disp. Uso% Montato su
/dev/sda7     ext4     20G  7,5G   12G  40% /
udev         tmpfs    503M  216K  503M   1% /dev
/dev/sda8     ext4    125G   83G   37G  70% /home
/dev/sdb1  fuseblk     38G   27G   11G  71% /windows/C
secco@localhost:~> su
Password:
localhost:/home/secco # fdisk -l /dev/sda
 
Disco /dev/sda: 160.0 GB, 160041885696 byte
 
255 testine, 63 settori/tracce, 19457 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0xd79ad79a
 
Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       19457   156288321    f  W95 Esteso (LBA)
/dev/sda5               1           9       72229+  83  Linux
/dev/sda6              10         271     2104483+  82  Linux swap / Solaris
/dev/sda7             272        2882    20972826   83  Linux
/dev/sda8            2883       19457   133138656   83  Linux
localhost:/home/secco # grep 'Desktop -- openSUSE'  -A4 /boot/grub/menu.lst
localhost:/home/secco #

Il comando del 'suggerimento' restituisce:
grub> root (hd
 Possible disks are:  hd0 hd1
 
grub> root (hd
 Possible disks are:  hd0 hd1

Ciao
PS: non so se è rilevante ma windoz è in un hardisk separato



Ritratto di aksaf
#9

Inviato da aksaf il Gio, 11/08/2011 - 15:14.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Dunque, mi pare di capire che sul primo disco fisso hai una partizione estesa con varie unità logiche...
Direi che puoi seguire i passi della guida, come già avevi fatto prima, sostituendo M con 7 all'inizio del passo 3, cioè quando vai ad aggiungere la voce iso-install al file menu.lst, se quella voce c'è già la puoi modificare usando un editor come root, per KDE puoi usare

kdesu -c 'kwrite /boot/grub/menu.lst'

e forse dovresti avere già quella giusta, adesso non ricordo che numero avevo messo nel comando prima di modificare, quindi controlla.

P.S.: se usi vi segui i comandi che ho indicato nella guida.

Ciao!

--edit--
Non dimentichiamo GNOME Smile (spero funzioni su SuSE):

gksu 'gedit /boot/grub/menu.lst'



Ritratto di ILSECCO
#10

Inviato da ILSECCO il Gio, 11/08/2011 - 15:53.

Re: Installare o Aggiornare openSUSE 11.4 da disco rigido ...

Al comando kdesu -c ecc... ecco la risposta:

# Modified by YaST2. Last modification on Fri Apr 15 20:17:02 CEST 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader
 
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,6)/boot/message
##YaST - activate
 
###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.2 - 2.6.31.14-0.8
    root (hd0,6)
    kernel /boot/vmlinuz-2.6.31.14-0.8-default root=/dev/disk/by-id/ata-ST3160021A_5JS3PT2T-part7 resume=/dev/disk/by-id/ata-ST3160021A_5JS3PT2T-part6 splash=silent quiet showopts vga=0x31a
    initrd /boot/initrd-2.6.31.14-0.8-default
 
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.2 - 2.6.31.14-0.8
    root (hd0,6)
    kernel /boot/vmlinuz-2.6.31.14-0.8-default root=/dev/disk/by-id/ata-ST3160021A_5JS3PT2T-part7 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
    initrd /boot/initrd-2.6.31.14-0.8-default
 
###Don't change this comment - YaST2 identifier: Original name:  openSUSE 11.2 - 2.6.31.12-0.2 (/dev/sda5)###
title openSUSE 11.2 - 2.6.31.12-0.2 (/dev/sda5)
    root (hd0,4)
    configfile /boot/grub/menu.lst

Al comando cp ecc:
localhost:/home/secco # cp -a /mnt/iso/* /home/opensuse
cp: target `/home/opensuse' is not a directory

a questo punto ho cambiato /home/opensuse (is not a directory) con /home/suse
Al comando successivo ecco la risposta:
localhost:/home/secco # cp /mnt/iso/boot/i386/loader/{linux,initrd} -t /home
cp: impossibile sovrascrivere la directory `/home/linux' con una non-directory

questi due errori si sono verificati dalla prima volta che li ho inseriti.
Ciao