Skip to topic | Skip to bottom
Home
Web attivi: Reteisi | Pmb
user: TWikiGuest
Registrazione | Mappa | Cambiamenti | Indice | Ricerca | Vai | Calcolatrice

Sei qui: Reteisi > DocTecnica? > InstallareArgoLinuxSuHardDisk



Start of topic | Skip to actions
AVVISO: quanto segue si riferisce alla versione di CLONE denominata ISICLONE scaricabile dai nostri repository con il comando apt-get install isi-clone

CLONE

Il trasferimento di ArgoLinux da cdrom (o dall'hd attivo) a hd è basato su uno script apposito (clone o isiclone, la versione a cui fa riferimento questo articolo) e su un file di configurazione che descrive il partizionamento del disco di destinazione e le operazioni desiderate (nel seguito chiameremo questo file DISCO_DESCR). Nel caso più semplice, la sequenza di operazioni è la seguente:
  1. avviare ArgoLinux da cdrom
  2. # cd /etc/clone
  3. # cp example/DISCO_DESCR . (dove DISCO_DESCR è uno dei file di esempio disponibili nella dir example e che andrà adattato alle proprie esigenze)
  4. # emacs DISCO_DESCR si effettueranno le modifiche volute
  5. # clone DISCO_DESCR il sistema verrà trasferito su hd
Pertanto, nel caso in cui, uno dei file DISCO_DESCR di esempio facesse al proprio caso, tutta l´operazione si riduce ad un unico comando. In realtà le cose non saranno così immediate, ma occorrera`, specie nel caso di installazione in presenza di altri sistemi operativi, ispezionare il disco rigido bersaglio, eventualmente liberare spazio, modificare il DISCO_DESCR più somigliante alle nostre necessità, tutte operazioni comunque che possono essere eseguite con semplicità.

SI FACCIA COMUNQUE MOLTA ATTENZIONE: TUTTE LE OPERAZIONI DI PARTIZIONAMENTO DI UN DISCO SONO DISTRUTTIVE

Tipologie di installazione

Le tipologie di installazione permesse da clone sono le seguenti
  1. SCRATCH: ArgoLinux è l´unico sistema operativo presente, il bootstrap è eseguito da GRUB installato sull´MBR. Nel caso di installazione RAID questa è l´unica tipologia prevista.

  1. COMBINATA: Argolinux coesiste con altri sistemi operativi (anche precedentemente installati). Si può decidere se affidare a GRUB sia il boot che il multiboot, GRUB può anche essere omesso del tutto.

  1. MULTIBOOT: Argolinux coesiste con altri sistemi operativi (anche precedentemente installati). GRUB è installato in una partizione apposita come bootmanager e nella partizione corrispondente al mount point /boot come bootloader di ArgoLinux. Le funzionalità di bootmanager di GRUB dovranno/potranno poi essere ulteriormente configurate dipendentemente dai sistemi operativi che devono essere avviati; clone tenta comunque di rilevare i sistemi operativi presenti e di preparare un menu di multiboot adatto che potrà poi essere facilmente modificato.

Il file di configurazione di CLONE e l'installazione base (non RAID)

Qesto file, a cui abbiamo fatto riferimento come DISCO_DESCR, ma che può avere nome qualunque, è un normale file di testo contenente i valori delle variabili che specificano il comportamento di clone. Nella dir /etc/clone/example troverete vari esempi. Di seguito è spiegato in dettaglio un tipico DISCO_DESCR.

Attenzione: il sistema distingue tra MAIUSCOLE e minuscole


ZAP_ALLPART=0
PARTITIONING=1
FORMATTING=1
GRUB_MODE="MULTIBOOT"
LIVE=1
Disk=/dev/ide/host0/bus0/target0/lun0
extra_disk=/disc
extra_part="/part"
DESCR="
mnt_p     fmt   fs              dim     part_n  overwrite opt
/mboot    1     ext2            8       3       1
/boot     1     ext2            50      5       1
swap      1     swap            256     6       1
/         1     reiserfs        2000    7       1
/usr      1     reiserfs        2000    8       1
/var      1     reiserfs        1000    9       1
/home     1     reiserfs        fill    10      1
"

Il file qui sopra pilota una installazione multiboot (ecco perchè è stato incluso il punto di mount /mboot, che per una installazione normale NON deve esserci) su un disco che ospita già due sistemi operativi nelle prime due partizioni (o comunque risulta possedere due partizioni che devono essere preservate). Ma vediamo il senso delle righe per noi significative.

ZAP_ALLPART assume i valori 0 (no) oppure 1 (si), se posta a 0 le partizioni esistenti sono preservate, ArgoLinux verrà trasferito solo se sul disco è disponibile abbastanza spazio non partizionato consecutivo, se posta a 1, tutte le partizioni esistenti saranno distrutte (prestare quindi molta attenzione).

PARTITIONING assume i valori 0 (no) oppure 1 (si), se posta a 0 nessuna partizione descritta verrà creata, il che significa che esse devono essere già presenti sul disco; se posta a 1, saranno create le partizioni richieste.

FORMATTING assume i valori 0 (no) oppure 1 (si), ha senso solo in caso di PARTIZIONING=0, e serve ad ordinare a clone di formattare (1) o non formattare (0) le partizioni indicate utilizzando il file system desiderato.

GRUB_MODE assume i valori MBR (default), MULTIBOOT, DISK, NOGRUB.
MBR produce l´installazione di grub sull´MBR con funzionalità di bootmanager/bootloader.
MULTIBOOT produce una installazione multiboot autonoma di grub.
DISK installa grub solo con funzionalità di bootloader per il sistema linux che si va ad installare, non scrive nulla nell´MBR e quindi bisognerà disporre di un altro bootmanager per avviare il sistema (o i sistemi).
NOGRUB impedisce del tutto l´installazione di grub, in questo caso ci auguriamo sappiate come installare i necessari bootmanager e bootloader.

LIVE, normalmente posta a 1, dice che ArgoLinux verrà trasferito da cdrom o dal disco rigido attivo (duplicazione del sistema attivo su un secondo hard disk)

EXTRA_DIRS, normalmente non definita, ma utile nel caso di duplicazione dell'hd attivo nel caso in cui questo contenga sotto / anche dirs create dall'utente (quindi fuori standard) che si vuole duplicare (es. EXTRA_DIRS="/qui /quo /qua")

Disk, il nome del disco (secondo il formato /dev) così come rilevato da ArgoLinux, è chiaro che questa informazione deve essere corretta pena il fallimento dell´installazione. Il nome /dev dei dischi presenti nella macchina può essere determinato con il seguente comando: # ls -l /dev/hd* | grep disc

che, ad esempio, potrebbe dare il risultato seguente

lr-xr-xr-x  1  root  root  32 mar 17 04:36 /dev/hda -> ide/host0/bus0/target0/lun0/disc
lr-xr-xr-x  1  root  root  32 mar 17 04:36 /dev/hdc -> ide/host0/bus1/target0/lun0/disc
lr-xr-xr-x  1  root  root  32 mar 17 04:36 /dev/hdd -> ide/host0/bus1/target1/lun0/disc
da cui si vede che sono presenti 3 dischi rigidi /dev/hda, /dev/hdc, /dev/hdd il cui nome lungo è /dev/ide/host0.....

extra_disk / extra_part sono variabili ad uso interno, da lasciare quindi così come sono.

DESCR descrive la struttura effettiva dei filesystem che si vogliono creare sul disco. Si tratta di una tabella di 7 colonne il cui significato è evidentemente il seguente:

mnt_p nome del mount point: sono indispensabili perlomeno /boot, /, swap ; nel caso di una installazione multiboot è richiesto anche /mboot.

fmt se =1 la partizione verrà formattata con il file system del tipo dichiarato

fs fyle system con cui formattare la partizione

dim dimensione, in MByte, dello spazio assegnato alla partizione; per l´ultima partizione potrà essere indicato fill che allocherà tutto lo spazio rimanente.

part_n il numero della partizione. Le partizioni primarie sono numerate da 1 a 4, le successive saranno partizioni logiche contenute in una partizione estesa creata automaticamente (si ricordi che una partizione estesa altro non è che una partizione primaria e quindi contribuisce al numero massimo (4) di partizioni primarie ammesse per disco. Prestare molta attenzione: la numerazione delle partizioni deve essere giusta, specie in presenza di partizioni da preservare. Per conoscere il partizionamento esistente di un disco si può usare il seguente comando:

# parted -s /dev/hd print dove /dev/hd potrebbe essere /dev/hda o, come nell'esempio, /dev/hdd.

Si ottiene qualcosa di simile a questo:

Disk geometry for /dev/ide/host0/bus1/target1/lun0/disc: 0.000-19541.320 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031  13201.853  extended
5          0.062     31.376  logical   ext2
6         31.408    415.744  logical   reiserfs
7        415.775    800.112  logical   linux-swap
8        800.143   3663.259  logical   reiserfs
9       3663.290   6526.406  logical   reiserfs
10      6526.437  12244.855  logical   reiserfs
11     12244.887  13201.853  logical   reiserfs
2      14535.374  19539.997  primary   FAT         lba
da cui si vede che sul disco sono presenti 3 partizioni primarie: la 1 all´inizio del disco, la 2 in fondo, la 3 invisibile in quanto trattasi della partizione estesa che contiele 5,6,7,8,9,10,11 logiche). Nel caso mostrato, l´unico buco libero rimasto è quello tra la logica 11 e la primaria 2 (di dimensione 14535.374-13201.853=1333.521 Mb)

overwrite se =0 la partizione non viene toccata

opt le opzioni da attribuire al punto di mount, quelle, per intenderci, che ritroveremo in /etc/fstab.

Installazione di un sistema base RAID1 (mirroring)

Ecco un tipico esempio di DISCO_DESCR per un sistema raid1 (due dischi identici)
ZAP_ALLPART=1
RAID=1
PARTITIONING=1
FORMATTING=1
LIVE=1
GRUB_FLOPPY=1
Disk=/dev/ide/host2/bus0/target0/lun0
extra_disk=/disc
extra_part="/part"
RAID1=/dev/ide/host2/bus1/target0/lun0/disc
DESCR="
mnt_p     fmt   fs              dim     part_n  overwrite opt
/boot     1     ext2            24      1       0         raid
swap      1     swap            512     5       1         raid
/         1     reiserfs        4000    6       1         raid
/free     1     reiserfs        4000    7       1         raid
/home     1     reiserfs        fill    8       0         raid
"

il significato delle variabili è quello precedentemente descritto con la differenza seguente:

RAID posto a 1 dice a clone che deve prepararsi a preparare un sistema RAID

Disk è il disco principale nella solita notazione (notare l´assenza di /disc alla fine)

RAID1 è il disco su cui si effettua il mirroring (notare la presenza di /disc alla fine)

la configurazione raid verrà ottenuta automaticamente specificando in corrispondenza delle partizioni sottoposte a mirroring l´opzione *raid * nell´ultima colonna della variabile DESCR. Si possono avere contemporaneamente sia partizioni raid che partizioni non raid. Si consiglia di impostare il raid anche per la partizione di swap.

Grub

ArgoLinux utilizza GRUB sia come bootloader che come bootmanager. Chiariamo intanto il significato dei termini: il bootloader è il programma che avvia il sistema operativo, il bootmanager è il programma che consente all´utente di scegliere il sistema operativo da avviare. GRUB è in grado, in modo molto flessibile, di svolgere entrambe le funzioni. Su ogni disco esistono posizioni specifiche destinate ad accogliere tali programmi: si tratta del primo settore del disco, il cosiddetto Master Boot Record o MBR e il primo settore di ogni partizione, il Partition Boot Sector o PBS. Se GRUB viene installato sul MBR sarà in grado di avviare un s.o. linux direttamente o per tramite di un altro bootloader installato nella partizione associata al mount point /boot di quella partizione. Se GRUB è installato solo sul PBR dovrà essere a sua volta attivato da un boot manager sul MBR. Una descrizione dettagliata del processo di boot e dell´utilizzo di GRUB, può essere trovata qui. GRUB è anche in grado di avviare tutti i sistemi windows lanciando (chainloader) i rispettivi bootloader che Windows stesso installa sui PBS delle rispettive partizioni.

Installazione di un sistema multiboot

Prenderemo in considerazione due tipi di scenario:
  • avete a disposizione un disco non partizionato (o comunque cancellabile) e volete installare WinXP, Win98 e ArgoLinux
  • avete a disposizione una macchina sul cui unico disco è installato WinXP in unica partizione che occupa tutto lo spazio disponibile.

Il primo scenario è quello semplice, potete procedere così (si suppone un disco da 20Gb):

  • lanciate ArgoLinux da cdrom
  • con cfdisk create 2 partizioni di tipo FAT32 della dimensione voluta, diciamo 6GB.
  • Installate WinXP nella prima partizione scegliendo la formattazione con NTFS
  • Installate Win98 nella seconda partizione. Attenzione, il programma di installazione di Win98 non vi permetterà di scegliere la partizione; procedendo, confermando le scelte proposte, verrà distrutta l´installazione di XP . Seguite invece la procedura seguente:
    • eseguite il boot da CD scegliendo boot con supporto cdrom e poi date i seguenti comandi
    • D:
    • cd \WIN98
    • format c: /s (il MBR verra` sovrascritto, WinXP non sarà più avviabile (poco male, tornerà ad esserlo alla fine)
    • md c:\win98
    • copy . c:\win98
    • togliete il cdrom e riavviate il sistema, vi ritroverete al prompt di DOS C:\>
    • digitate win98\setup
  • rilanciate Argolinux da cdrom e, utilizzando il file DISCO_DESCR illustrato sopra, installate linux in modalità multiboot
  • perfezionate il menu di grub-bootmanager in /mboot/grub/menu.lst

Il secondo scenario, invece, è più complicato perchè vi costringe ad effettuare un resize del filesystem NTFS (sempre che abbiate spazio disponibile), seguito dalla cancellazione e ricreazione della partizione NTFS (ATTENZIONE: si tratta di due operazioni distinte). Per fare questa operazione vi servirà prima ntfresize, un programma open source che serve a questo scopo e che funziona con qualunque versione di Linux (la versione che avrete scaricato è infatti linkata in modo statico). poi fdisk (quello di linux). Comunque ecco le operazioni da fare:

  • scaricare ntfsresize e trasferirlo su un floppy
  • lanciare ArgoLinux da cdrom e spostarsi in una dir scrivibile (ad esempio # cd /etc/clone)
  • copiare dal floppy il tgz di ntfsresize e scompattarlo (naturalmente, se avete già configurato Argolinux per l´accesso internet e salvato la configurazione su floppy, potrete scaricare direttamente ntfsresize con wget http://www.reteisi.org/downloads/ntfsresize-static-1.9.0.tgz)

  • salvare MBR e tavola delle partizioni attuale
    • # sfdisk -d /dev/hda > ./$hda.pt per salvare la tavola delle partizioni
    • # dd if=/dev/hda of=hda.mbr bs=512 count=1 per salvare il MBR

  • effettuare il resize del file system NTFS
    • # ./ntfsresize -i /dev/hda1 (per sapere fino a che punto si può restringere la partizione NTFS posta in /dev/hda1)
    • # ./ntfsresize -n -s 6G /dev/hda1 (per eseguire un test (-n) di resizing (-s) a 6 GByte)
    • # ./ntfsresize -s 6G /dev/hda1 (per eseguire il resizing effettivo a 6 GByte)
  1. effettuare il resize della partizione (ATTENZIONE PERICOLO) utilizzando fdisk, di seguito il dialogo commentato

#fdisk /dev/hda lancio fdisk

Command (m for help): p visualizzo il partizionamento

Disk /dev/hda: 255 heads, 63 sectors, 2481 cylinders
Units = cylinders of 16065 * 512 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      2480  19920568+   7  HPFS/NTFS
Command (m for help): d cancello la partizione NTFS

Partition number (1-4): 1

Command (m for help): n creo una nuova partizione

Command action e extended p primary partition (1-4) p

Partition number (1-4): 1 creo la partizione primaria n.1

First cylinder (1-2481, default 1): 1 stabilisco il cilindro di partenza UGUALE al valore precedente

Last cylinder or +size or +sizeM or +sizeK (1-2481, default 2481): +6000M fisso la nuova dimensione

Command (m for help): t stabilisco il tipo della partizione = 7

Partition number (1-4): 1

Hex code (type L to list codes): 7

Changed system type of partition 1 to 7 (HPFS/NTFS)

Command (m for help): a rendo la partizione avviabile

Partition number (1-4): 1

Command (m for help): p controllo di aver fatto la cosa giusta

Disk /dev/hda: 255 heads, 63 sectors, 2481 cylinders
Units = cylinders of 16065 * 512 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1       765   6144831    7  HPFS/NTFS
Command (m for help): w scrivo il nuovo partizionamento

The partition table has been altered!


  • riavviare WinXP, che, se tutto è andato a buon fine, controllerà il disco, registrerà la nuova situazione e dopo un ulteriore riavvio continuerà a funzionare (se questo non succede, qualcosa è andato storto).
  • riavviare Argo da cd, e usare GRUB per nascondere la partizione ntfs:
    • # grub
    • # hide (hd0,0) (la partizione /dev/hda1 per GRUB è (hd0,0) )
    • # quit
  • creare una partizione FAT32 per win98 della dimensione voluta usando, ad esempio, cfdisk
  • procedere come allo scenario precedente (da punto 4 in avanti).

Operazioni post-installazione

Eseguita l´installazione, sarà necessario rivedere i menù di GRUB e controllare che tutti i sistemi operativi presenti vengano correttamente avviati. Li trovate in
  • /boot/grub/menu.lst per tutte le modalità di installazione (GRUB_MODE)
  • /mboot/grub/menu.lst questo file è presente, in aggiunta all´altro solo se è stata richiesta una installazione MULTIBOOT

L´aspetto tipico di questi file è il seguente (nell´esempio /boot è in /dev/hda5 e / in /dev/hda7)

/boot/grub/menu.lst

timeout 0 il boot viene eseguito immediatamente
default 1

title Kernel 2.4.24-std on /dev/ide/host0/bus0/target0/lun0/part7
root (hd0,4)
kernel /bzImage-2.4.24-std root=/dev/ram0 boot=*/dev/ide/host0/bus0/target0/lun0/part7* rw init=/linuxrc
initrd /initrd-2.4.24-std.gz

NOTA: il dispositivo esteso /dev/ide/... può essere sostituito con quello breve, ad esempio

timeout 0
default 1

title Kernel 2.4.24-std on /dev/hda7
root (hd0,4)
kernel /bzImage-2.4.24-std root=/dev/ram0 boot=*/dev/hda7* rw init=/linuxrc
initrd /initrd-2.4.24-std.gz

Ecco invece l´aspetto del menù multiboot che si ottiene in

*/mboot/grub/menu.lst

timeout 10 10 sec di pausa per poter scegliere
default 1 a pausa scaduta viene avviato il primo della lista

title LINUX
rootnoverify (hd0,4)
chainloader +1 tutti i sist.op. sono lanciati da un altro GRUB

title Windows 9x-0
rootnoverify=(hd0,1)
chainloader +1

title WinNT-0
rootnoverify=(hd0,0)
chainloader +1

Questo menù deve essere modificato, nella parte relativa ai sistemi windows, nel modo seguente (ecco perchè in /etc/fstab viene incluso il mount point non standard /mboot)

........... ...........

title WINDOWS-98se il title può essere reso più significativo
hide (hd0,0)
unhide (hd0,1)
rootnoverify=(hd0,1)
chainloader +1
makeactive

title WINDOWS-XP
hide (hd0,1)
unhide (hd0,0)
rootnoverify=(hd0,0)
chainloader +1
makeactive

MKGRUB

Si tratta di una script per produrre un disco di boot. L'uso è banale:
  • inserire un dischetto
  • # mkgrub

il dischetto verrà formattato e vi sarà installato grub in modalità multiboot, in modo che tutti i sistemi operativi presenti su tutti gli hd possano essere avviati. Vengono create anche voci di menù per l´installazione rapida di grub sugli MBR dei dischi rigidi presenti.

Reteisi.InstallareArgoLinuxSuHardDisk r1.15 - 13 Apr 2021 - 15:09 - FulvioPizzigoni
Copyright © 1999-2006 degli autori degli articoli. Tutto il materiale presente su questa piattaforma collaborativa è di proprietà di chi l'ha prodotto. Idee, richieste, problemi relativi a TWiki? Invia feedback