Newsgroup: it.comp.os.dos
Titolo: [FAQ] Partizionando, partizionando...

  Un saluto a tutti.
  Vedo  che ultimamente  ci  sono parecchi  post riguardanti  problemi
inerenti  le partizioni,  l'installazione di  vari Sistemi  Operativi,
etc.  Dal tenore  delle  domande, mi  pare di  aver  capito che  molti
approdano al  DOS provenendo da Windows  95 e/o 98, e  che sono quindi
digiuni di alcune nozioni meramente "tecniche" che chi mastica DOS sin
dai... primordi? ;) possiede. Windows 9x non richiede (per un utilizzo
"normale") nessuna  conoscenza "di base", il  DOS e Win fino  al 3.x -
purtroppo o per fortuna? - si`...
  E` da un po' di tempo che  pensavo ad una FAQ che affrontasse queste
problematiche. Questo e` un mio  modesto contributo, in forma di primo
abbozzo. Vorrei  sapere se la  cosa puo` essere  utile, e, se  si`, vi
chiederei di correggerla e/o di ampliarla.
  Mi rendo  conto che per molti  di voi alcune cose  possono essere di
una  banalita` sconcertante,  ma  ho  sempre pensato  che  una FAQ  su
problemi un po'  ostici e complicati debba chiarire  tutti i possibili
dubbi, guidando  passo per passo  il neofita.  E ritengo anche  che un
"ripasso",  ogni  tanto, delle  nozioni  fondamentali  non faccia  mai
male... ;)
  Ho  pensato  di dividere  la  Faq  in  due  parti, "La  sequenza  di
BootStrap" e "Le  Partizioni". Credo che sia difficile  capire fino in
fondo la seconda  senza non aver ben chiari in  testa i concetti della
prima. Ma posso sempre sbagliarmi...
  Chiedo scusa in anticipo per gli  svarioni, le sviste clamorose e le
omissioni.
  Correzioni, aggiunte, critiche,  bacchettate sulle dita, stroncature
e quant'altro  sono bene  accette, anzi:  benvenute. Abbiamo  tutti da
imparare, io per primo... ;)))
La sequenza di BootStrap.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Una  curiosita`.  Il  termine  "bootstrap"  deriva  da  un  modo  di
dire  inglese  (o americano?)  utilizzato  per  esprimere qualcosa  di
impossibile. Letteralmente,  potrebbe essere tradotto  con "sollevarsi
da terra  afferrando le stringhe  delle proprie scarpe, e  tirando con
forza".  Qualcosa di  molto  simile  al nostro  "voltare  la testa  di
scatto e  mordersi l'orecchio". Analizzando come  avviene la procedura
di  "bootstrap", ci  si  rende  effettivamente conto  che  il DOS,  da
un  certo punto  in  poi,  sembra quasi  che  utilizzi  se stesso  per
"autocaricarsi"... piu` o meno... :)))
  Dunque, partiamo dall'inizio.
  "Anticamente"...  ehm, diciamo  fino ai  Pentium... un  qualsiasi Pc
"IBM-Compatible",  per potersi  "avviare" -  per "funzionare"  - aveva
bisogno  di almeno  una di  queste due  cose: o  un floppy  cosiddetto
"bootable" o  "di Sistema" -  cioe` a  dire un dischetto  preparato in
modo da contenere almeno il "cuore" di  un sistema operativo - o di un
Hard Disk preparato "almeno" come il floppy appena descritto. Nel caso
di  MS-DOS,  a  livello  pratico,  occorreva  che  il  floppy  o  l'HD
in  questione fossero  opportunamente  formattati  e che  contenessero
"almeno" tre file: IO.SYS, MSDOS.SYS,  
COMMAND.COM
. Se la versione dos
in nostro possesso  era il PC-DOS IBM, i primi  due file si chiamavano
IBMBIO.COM
 e 
IBMDOS.COM
: cambiava il nome, ma i suonatori erano sempre
gli stessi.
  Fino ai 386 questa era la  regola. Ora le BIOS moderne consentono di
partire da CD-ROM,  da HD diversi dal "primary", da  unita` ZIP, e chi
piu` ne ha piu` ne metta... ma  queste sono cose che esulano da questa
FAQ, e quindi noi daremo per scontato che il nostro pc sia configurato
per la "sequenza standard", cioe` con  la BIOS settata cosi` come esce
dalla fabbrica: prima il floppy, poi l'hd, poi tutto il resto...
  Bene.  Quando  accendiamo  un  pc IBM  Compatibile  la  sequenza  di
bootstrap, dal punto di vista della BIOS, e` la seguente:
1) Cerco  se  e`  presente  un  floppy. Se  c'e`,  controllo  che  sia
   "bootable", cioe`  controllo che nel  primo settore del  floppy sia
   presente  il  cosiddetto "boot  sector".  Se  c'e`, vuol  dire  che
   quantomeno il floppy  e` formattato, quindi lo carico  in memoria e
   passo al punto (6).
2) Non c'e` un floppy. Allora guardo se c'e` un HD. Se c'e`, controllo
   che nel  primo settore del  disco fisso sia presente  il cosiddetto
   "MBR" (Master Boot  Record). Se c'e`, lo carico in  memoria e passo
   al punto (4).
3) Se  invece  sono  arrivato  fin  qua,   vuol  dire  che  non  ho  a
   disposizione alcun Sistema Operativo "valido" e, a seconda dei vari
   pc, o  mi blocco, oppure  lancio il  "Rom Basic"... diciamo  che di
   solito mi blocco... :(
4) Sono partito da Disco Fisso, e  ho in memoria l'MBR. L'MBR contiene
   un micro-programma che verifica se  nel Disco Fisso e` presente una
   Partizione  Attiva  con  un  Sistema Operativo  valido.  Ne  lancio
   l'esecuzione (sono la bios),  e - se tutto va a buon  fine - da ora
   in poi il controllo lo lascio al micro-programma.
5) Il  micro-programma   calcola  la   posizione  di   partenza  della
   partizione, carica in memoria il relativo "boot sector", e passa al
   punto  (6). Se  invece scopre  che non  e` presente  una partizione
   valida, emette  il messaggio "Partizione  non valida", e  pianta il
   pc...
6) Se sono arrivato  a questo punto da Floppy, il  controllo e` ancora
   in mano alla  BIOS, altrimenti sono gia` nel DOS.  In ogni caso, da
   questo punto  in poi la sequenza  e` uguale, ed il  controllo passa
   comunque  al  DOS.  Ho  in  memoria il  "boot  sector".  Lancio  il
   micro-programma in  esso contenuto, che s'incarica  di stabilire il
   file  system (cioe`  la struttura  del floppy  o del  Disco Fisso),
   cercare  il file  IO.SYS  (o 
IBMBIO.COM
),  caricarlo  in memoria  e
   lanciarne l'esecuzione.  Ms-Dos inizia a "sollevarsi  tirandosi per
   le stringhe..."
7) IO.SYS  (o  
IBMBIO.COM
)  effettua   il  controllo  dei  dispositivi
   periferici. Vengono inizializzati  i dispositivi standard caricando
   i driver  standard per  quella versione  del DOS.  Inoltre, vengono
   impostati alcuni vettori di interrupt.
8) A  questo  punto  viene  caricato  in memoria  il  Kernel  del  DOS
   (MSDOS.SYS  o  
IBMDOS.COM
)  (questo  e` il  punto  nel  quale  puo`
   apparire  il  messaggio  "Disco  non di  sistema  o  errore  disco.
   Sostituire e premere un tasto."). Poi viene controllata l'esistenza
   del  file CONFIG.SYS  e, se  presente, viene  analizzato e  vengono
   caricati gli eventuali driver aggiuntivi.
9) Successivamente, viene  cercato e caricato il  file 
COMMAND.COM
 (se
   non  c'e`  appare  il  messaggio  "Interprete  dei  comandi  errato
   o  mancante"),  al  quale  viene  passato,  se  presente,  il  file
   AUTOEXEC.BAT, che viene analizzato, interpretato ed eseguito.
  La procedura di bootstrap e` terminata. Finalmente ci ritroviamo con
il nostro bravo prompt C:\>
  IO.SYS sta  controllando il sistema,  e ogni cosa che  scrivero`, da
ora in  poi, sara`  passata al 
COMMAND.COM
,  il quale,  utilizzando le
routine di MS-DOS.SYS,  eseguira`, se possibile, i  nostri comandi. Se
il nostro comando  corrisponde ad un file  eseguibile (un "programma")
il controllo  verra` demandato a  quel programma. Quando  il programma
terminera`, il controllo ritornera`  al punto di partenza. Altrimenti,
otterremo il fatidico "Comando o nome del file non valido".
  Ecco dunque spiegato il significato di "DOS": Disk Operative System,
ovvero "Sistema  Operativo (residente)  su Disco". L'idea  vincente e`
quella  di creare  un Sistema  Operativo "aggiornabile"  semplicemente
inserendo un  dischetto con la  nuova versione, oppure  sostituendo la
versione presente su  Hard Disk. Quello che non cambia  e` il concetto
di "settore d'inizio",  o settore di "boot". Chi ha  usato il C64 puo`
capire al volo  la differenza: il Sistema Operativo del  C64 era in un
chip di  memoria, e per  aggiornarlo era necessario cambiare  il chip.
Ora siamo arrivati  alle schede con BIOS Flash  aggiornabili, cosa che
negli anni '80 era semplicemente impensa bile...
Le Partizioni.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Allora, abbiamo presente un floppy disk?
  Se inserisco un floppy a computer spento, e poi accendo il computer,
e  quel floppy  e` 'bootable',  il computer  legge per  prima cosa  il
floppy e  poi parte da li`.  Magari quel floppy e`  formattato con dos
3.22 e contiene  un giuoco... viene caricato il dos  3.22, e poi viene
lanciato "Chess"...
  Spengo  il  computer,  e  inserisco   un  altro  floppy,  magari  di
videoscrittura, che pero` "gira sotto"  dos 5.0... Riaccendo, parte il
dos 5.0, ed eccomi a trafficare con "Wordstar"...
  Rispengo  il computer,  cambio floppy,  riaccendo... Il  mio pc  ora
funziona come  server per  la connessione  condivisa su  Internet. Sto
usando Linux...
  ...ok,  questo e`  il  concetto  di base.  Un  Floppy puo`  decidere
quale  sistema operativo  utilizzare, e  puo` contenere  programmi che
funzionino correttamente in quel Sistema Operativo...
  Un Hard Disk deve essere `partizionato', cioe` deve essere suddiviso
in  "porzioni"  che possono  essere  indipendenti  fra loro,  come  se
fossero tanti  "Floppy" differenti. Al limite  (e di solito il  pc che
comprate sotto casa e` cosi`) di partizione ce n'e` una sola.
  Le  partizioni possono  essere 'primarie'  o 'estese',  'visibili' o
'invisibili', 'attive' o 'non attive'.
  E` possibile avere  su di un singolo disco fisso  fino ad un massimo
di 4  partizioni. Per poter effettuare  il bootstrap da HD  di MS-DOS,
almeno una di loro deve essere 'primaria', 'visibile', ed 'attiva'.
  Vediamo un po' cosa significano queste definizioni.
  Una partizione 'attiva' e` l'equivalente  del floppy inserito nel pc
spento.  Rivediamo  brevemente la  sequenza  di  bootstrap (nel  mondo
MS_DOS):
1) La bios testa il computer, se  trova un floppy cerca di leggerlo, e
   se riesce a leggerlo parte da li`.
2) Se il floppy non e` presente, cerca la presenza di un hd.
3) Se trova un hd,  carica il primo settore del disco  in memoria e ne
   lancia  l'esecuzione. Nel  primo settore  del disco  (MBR) c'e`  un
   piccolissimo  programma che  stabilisce  quale  porzione del  disco
   fisso deve essere considerata come 'C:\'. Tale porzione puo` essere
   grande a piacere, a seconda del SO utilizzato e delle capacita` del
   BIOS,  e deve  essere  una porzione  classificata come  'primaria',
   'visibile' ed 'attiva'.
4) Se viene  trovata un  porzione del disco  che soddisfa  i requisiti
   precedenti,  viene  caricato  il  boot  loader  relativo  a  quella
   porzione, ed il SO parte.
5) Se c'e`  qualcosa che non va,  il pc si blocca  (emettendo messaggi
   variabili a seconda del BIOS e/o del SO)
  Ora:
1) La partizione 'attiva' e` quella che viene vista come SO. Quindi di
   partizioni 'attive' puo` essercene una sola.
   Una partizione puo` essere attivata o disattivata. In realta`, quel
   che fanno molti boot manager  e` proprio quello di rendere 'attiva'
   una  partizione e  di disattivare  quella precedente.  E` possibile
   farlo anche con  fdisk. Sul mio pc ho quattro  SO: Dos 6.22, Win95,
   Win98, Nt4 wks. Quando voglio  utilizzare uno di questi quattro SO,
   devo rendere  'attiva' la relativa partizione,  e disattivare tutte
   le altre -  o meglio, disattivare la  precedente partizione attiva.
   Tutto questo  lo fa  per me pqboot,  utility apposita  di Partition
   Magic, ma, come  ripeto, la cosa e` fattibile anche  con fdisk (con
   un minimo di attenzione a quel che si sta facendo... :))) )
2) Le   partizioni  'primaria'   ed  'estesa'   sono  partizioni   che
   funzionano, a livello  logico, come un floppy, solo  che essendo su
   hd  sono  di  solito  molto  piu`  grandi,  e  vengono  gestite  di
   conseguenza, a seconda dei SO utilizzati.
   La distinzione  tra 'primaria' ed  'estesa' consiste nel  fatto che
   una partizione  primaria e` quella  e basta, mentre  una partizione
   estesa deve "contenere" a sua volta almeno una partizione, ma molto
   spesso  - diciamo  pure  sempre  - ne  contiene  piu` d'una,  senza
   limitazioni  (l'unica  vera limitazione  -  a  parte ovviamente  lo
   spazio disco disponibile  - sono le lettere  dell'alfabeto - stiamo
   parlando sempre  di MS-DOS:  un dispositivo viene  identificato con
   una lettera dell'alfabeto  inglese, da "A" a  "Z". Per definizione,
   "A" e "B"  sono state riservate ai due floppy,  "C" alla partizione
   primaria  attiva dell'HD,  e  le  successive a  tutto  quel che  e`
   presente  sul pc.  Le lettere  vengono prima  assegnate a  tutte le
   partizioni  primarie, poi  a  quelle estese,  seguendo l'ordine  di
   collegamento degli HD alla  scheda madre - IDE0-master, IDE0-slave,
   IDE1-master, IDE1-slave).
   C'e` da aggiungere (purtroppo...) che  fdisk non consente di creare
   piu` di una partizione 'primaria'. Non  ho mai capito il perche' di
   questa  limitazione (come  al solito  M$  si preoccupa  che i  suoi
   utenti non  facciano pasticci, e  soprattutto che si  guardino bene
   dal tentare pericolosi esperimenti con "altri" sistemi operativi...
   <g> ). Si puo` comunque ovviare all'inconveniente con numerosi tool
   appositi,  anche freeware,  oppure  smanettando direttamente  sulla
   tabella delle partizioni.
   Il  pasticcio tra  partizione 'primaria'  e partizione  'estesa' e`
   dovuto sostanzialmente alle limitazioni imposte da chi - con scarsa
   lungimiranza -  s'invento` questo  bel meccanismo (volendo  la cosa
   puo`  essere assimilata  al  Bug dell'anno  2000,  ma qualcosa  del
   genere da tempo e` paventata  anche per Internet, per gli indirizzi
   composti  da quattro  byte  (un  "long", ossia  al  massimo 2^32  =
   4.294.967.296  indirizzi possibili  -  stanno  correndo ai  ripari,
   staremo a vedere...) e grossi  problemi stanno nascendo anche nella
   gestione di HD con capacita`, fino a pochi anni fa, impensabili. La
   questione  del 1024simo  cilindro e`  una  di queste,  ed anche  il
   recente limite di alcune bios nel gestire gli HD maggiori di 8gb...
   sembra proprio che,  nonostante tutto, ci sia sempre  la tendenza a
   sottovalutare la crescita esponenziale della tecnologia... )
   Come al solito, per problemi "di  spazio", non e` stata prevista la
   possibilita` che  gli hd  assumessero dimensioni  "enormi"... cosi`
   come non e` stato previsto che  un HD potesse avere piu` di quattro
   partizioni. Dal momento  che invece ci si e` accorti  che spesso e`
   conveniente suddividere lo spazio  disco in partizioni distinte (ad
   esempio  una  partizione  per  i  programmi ed  una  per  i  dati),
   si  e` trovato  l'escamotage  della partizione  'estesa'. Detto  in
   soldoni:  su di  uno  stesso  Hd e`  possibile  avere, ad  esempio,
   cinque partizioni:  una 'primaria'  (il SO vero  e proprio)  ed una
   'estesa'  la quale  a  sua  volta ne  contiene  quattro (che  so...
   programmi, dati,  immagini e giuochi...). L'inghippo  dove sta? Sta
   nel fatto che molti SO (nello specifico MS-DOS e Windows 95/98) per
   partire devono  essere installati su di  una partizione 'primaria',
   mentre altri (OS2, Linux,  WinNT) possono essere installati 'anche'
   su  partizioni 'estese'  (anzi, alcuni  possono addirittura  essere
   installati su partizioni 'estese' presenti su altri Hd... ma questo
   e` un  altro discorso).  Quindi per poter  installare correttamente
   (senza cioe`  che possano entrare in  conflitto tra di loro)  su di
   uno  stesso  HD  MS-DOS,  Win95  e  Win98  e`  necessario  avere  3
   partizioni 'primarie',  cosa che appunto fdisk  non consente... che
   sia "voluto"? Mah... :(((
3) Le partizioni classificate come  'visibili' ed 'invisibili' sono il
   frutto  di   un  "trucco"   che  sfrutta  una   peculiarita`  della
   'tabella delle  partizioni" presente  nell'MBR: ogni  partizione e`
   identificata da un  byte specifico (almeno in questo  si sono messi
   d'accordo...), per cui una  partizione BIGDOS viene identificata da
   un byte  con valore 06  (esadecimale), una partizione FAT32  con il
   valore 0B,  una partizione XENIX con  il valore 02, e  cosi` via...
   Dal  momento che  un byte  puo`  contenere un  valore da  0 a  255,
   e  considerando  che  il  valore 00  identifica  l'assenza  di  una
   partizione,  e`  abbastanza chiaro  che  non  esistono 255  Sistemi
   Operativi -  per fortuna... ;)  - e  quindi molti di  questi valori
   non  sono  riconosciuti come  validi.  Per  convenzione, un  valore
   non riconosciuto  viene ignorato,  ma l'occupazione  della relativa
   porzione  di  spazio disco  non  viene  utilizzata. 'Marcando'  una
   partizione con  un valore apparentemente inesistente,  e` possibile
   "nascondere" una partizione, in modo che nessun SO vada a leggere e
   scrivere in quella porzione di  disco. Ovviamente e` possibile fare
   di  tutto  con tool  appositi,  tipo  le  Norton,  ma di  norma  e`
   garantito che un  SO, utilizzato in condizioni  'normali', non vada
   mai a  toccare cio` che  e` presente in una  partizione 'nascosta'.
   Questo fatto consente di  avere su di uno stesso hd  piu` di un SO,
   con la  garanzia che  non si verifichino  interferenze indesiderate
   fra di loro.
   In realta`, esistono  boot manager che consentono  di gestire molte
   partizioni 'primarie' su di uno stesso hd (ce n'e` uno che consente
   di  gestire fino  a 15  partizioni distinte),  ma hanno  un piccolo
   difetto: se succede  qualcosa di "strano" (le leggi  di murphy sono
   sempre  in agguato),  beh:  sono ca...voli.  Perche`  il limite  e`
   sempre quello  delle quattro  partizioni, ed  i dati  relativi alle
   partizioni aggiuntive sono memorizzati  chissa` dove, ed hai voglia
   ad  andare a  cercarti  dove  il boot-manager  se  le  e` andate  a
   memorizzare, e magari a capire in quale modo...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Auff... mi fermo qua.
   Ci sarebbero altre cose da aggiungere:
1) La struttura dell'MBR.
2) I codici dei vari sistemi operativi.
3) Tips & tricks sulla  creazione delle partizioni, con riferimenti ai
   vari programmi freeware (Ranish, fdisk di linux, etc...)
4) ...
   Che ne pensate?
-- 
Cio` che ho scritto, ho scritto.
 (Sono iniziate  le votazioni per "it.comp.software.editor"!
 Se sei interessata/o a programmi text-editor, votalo entro
 il primo Marzo 2004!)
 

    programmi, dati,  immagini e giuochi...).
----------------------------------^^^^^^^
un pizzico di retrò anche in questo termine... ;)
-- 
A.

    Che ne pensate?
Ottima iniziativa, anche per quanto riguarda le altre FAQ.
-- 
 ____  Saluti dal   | Eliminate  .non.voglio.spam  dall'indirizzo
(_  _)  __  __ ___  | per rispondermi, se non vi piace quello che
  )/ o\/  \/o_\>-_) | ho scritto considerate che,  in un universo
 (_\_-_|_|_\__/___> | parallelo,  potrebbe essere anche  diverso.

 Ottima iniziativa, anche per quanto riguarda le altre FAQ.
  Il problema  resta aperto. Ci  sono molte cose da  aggiornare... una
volta il NewsGroup era "vivo", in tal senso, ma ora... :(((


 un pizzico di retrò anche in questo termine... ;)
  Eh... e` un mio vezzo... la lingua e` lingua e` la lingua... ;)


"DisKre Panza" <demo...@demokrito.org.asm> ha scritto nel messaggio
news:slrnc2fsvk....@demokrito.org.asm...

Grazie, una gran bella cosa, specialmente per uno come me che si è fin d'ora
arrangaito quà e là per capire di partizioni e bootstrap.
Stavo cercando anch'io di scrivere qulacosa forse di complementare ossia
relativo al recupero da situazioni di disastro  ma manca il tempo e
principalmente sono molto cauto date le conoscenze possedute.
Gian rigrazie, benvenuta iniziativa