Partizioni – Windows 9x/2000 + Linux + Bios che non supportano HardDisk più grossi di 32GB

Questa guida vuole spiegare come far convivere Linux e Windows 9x/2000, nel caso in cui si è in possesso di una scheda madre che ha un bios che non permette di usare hd più grossi di 32gb. Si parlerà di come gestire il partizionamento del disco per installare Windows 9x/2000 e linux in queste condizioni.
 

Come identificare schede madri che non supportano più di 32gb
Gli hd ide che si comprano di recente, sono dotati di un jumper, che permette di limitarne la capacità a 32gb. Se la scheda madre è stata comprata nel '98, è altamente probabile che sia dotata di un bios con questa limitazione. Infatti si tratta di un problema di tipo software, che può essere risolto, aggiornando il bios (questa guida è per chi non puo' o non vuole aggiornare il bios). Se in fase di boot, il pc si blocca mentre limitando la capacità del disco col jumper, il pc boota normalmente, significa che questa guida potrebbe interessarvi Smile

 

Altri limiti

In effetti, oltre al limite dei 32gb, c'è anche il limite dei 128gb. Sotto linux, non ci sono problemi in ogni caso, sia per il limite dei 32gb, che per quello dei 128gb. Il problema sorge col windows.

Lo scopo

Il nostro scopo, è quello di installare Windows 9x/2000 e linux sullo stesso hd in queste condizioni. Noi siamo degli utilizzatori tipici di linux, e ci accontenteremo di rendere accessibli al windows solo i primi 32gb del disco.

Partizionare il disco

Procuratevi un livecd qualsiasi (io vi consiglio quello gentoo, è piccolo ed ha tutto quello che ci serve), e assicuratevi che il kernel di linux riconosca la capacità nativa del disco. Questa funzione del kernel è detta Auto-Geometry Resizing Support, e sblocca lo spazio rimanente del disco. Nei kernel precedenti la versione 2.6.7, c'era una vera e propria voce da abilitare nella configurazione del kernel. Da quella versione in poi, basta aggiungere come parametro di boot del kernel l'opzione hdX=stroke.
Il parametro puo' essere aggiunto a mano dalla linea di boot del livecd, dopo aver scelto il kernel da bootare.

Nel mio caso, il kernel ha rilevato che il disco era stato limitato a 32gb, ed ha disattivato il limite riportando la dimensione ai 120gb nativi.


hda: Host Protected Area detected.
current capacity is 66055248 sectors (33820 MB)
native  capacity is 234493056 sectors (120060 MB)
hda: Host Protected Area disabled.
hda: 234493056 sectors (120060 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(33)
hda: cache flushes supported

Questi messaggi li potete leggere col comando : dmesg
A questo punto, siamo pronti per partizionare il disco col comando : fdisk /dev/hdX

goodevent ~ # fdisk /dev/hda

The number of cylinders for this disk is set to 14596.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hda: 120.0 GB, 120060444672 bytes
255 heads, 63 sectors/track, 14596 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Questa è un'ulteriore conferma della capacità realmente riconosciuta dal kernel.
Il problema a questo punto è il seguente : se partizioniamo normalmente il disco, tenendo cura di creare partizioni windows nei primi 32gb, senza sforare, e nello spazio rimanente mettiamo quelle linux, non abbiamo problemi col Windows 9x. Col Windows 2000 invece, il programma di installazione, crasha, e fa comparire partizioni di dimensioni dell'ordine dei terabyte . Se invece abbiamo a che fare con una versione di Windows 2000 pre-installata, questo in fase di boot si blocca con uno schermo blu.

La soluzione

Command (m for help): l

 0  Empty           1c  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid
 1  FAT12           1e  Hidden W95 FAT1 75  PC/IX           be  Solaris boot
 2  XENIX root      24  NEC DOS         80  Old Minix       c1  DRDOS/sec (FAT-
 3  XENIX usr       39  Plan 9          81  Minix / old Lin c4  DRDOS/sec (FAT-
 4  FAT16 <32M      3c  PartitionMagic  82  Linux swap / So c6  DRDOS/sec (FAT-
 5  Extended        40  Venix 80286     83  Linux           c7  Syrinx
 6  FAT16           41  PPC PReP Boot   84  OS/2 hidden C:  da  Non-FS data
 7  HPFS/NTFS       42  SFS             85  Linux extended  db  CP/M / CTOS / .
 8  AIX             4d  QNX4.x          86  NTFS volume set de  Dell Utility
 9  AIX bootable    4e  QNX4.x 2nd part 87  NTFS volume set df  BootIt
 a  OS/2 Boot Manag 4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access
 b  W95 FAT32       50  OnTrack DM      93  Amoeba          e3  DOS R/O
 c  W95 FAT32 (LBA) 51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor
 e  W95 FAT16 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs
 f  W95 Ext'd (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  EFI GPT
10  OPUS            54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
12  Compaq diagnost 56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor
14  Hidden FAT16 <3 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor
16  Hidden FAT16    61  SpeedStor       a9  NetBSD          f2  DOS secondary
17  Hidden HPFS/NTF 63  GNU HURD or Sys ab  Darwin boot     fd  Linux raid auto
18  AST SmartSleep  64  Novell Netware  b7  BSDI fs         fe  LANstep
1b  Hidden W95 FAT3 65  Novell Netware  b8  BSDI swap       ff  BBT

Questa è la lista dei tipi di partizioni esistenti. Dopo innumerevoli tentativi, ho scoperto che c'è un modo per non far prendere in considerazione dal Windows 2000, le partizioni linux. La soluzione stava nello specificare il tipo di partizione : 0  Empty
Il kernel di linux, a differenza di quello di windows riconosce anche le partizioni Empty, invece il windows le ignora direttamente.
Quindi, nel caso del Windows 2000, oltre ad aver avuto cura di restare nei primi 32gb, bisogna anche impostare il tipo delle partizioni linux che sforano i 32gb come Empty.

Un esempio di partizionamento ad hoc

goodevent mark2097 # fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 120.0 GB, 120060444672 bytes
255 heads, 63 sectors/track, 14596 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         623     5004216    7  HPFS/NTFS
/dev/hda2             624        3861    26009235    f  W95 Ext'd (LBA)
/dev/hda3            3862        4484     5004247+   0  Empty
/dev/hda4            4485       14596    81224640    0  Empty
/dev/hda5             624         628       40131   83  Linux
/dev/hda6             629         676      385528+  82  Linux swap / Solaris
/dev/hda7             677        3042    19004863+   c  W95 FAT32 (LBA)
/dev/hda8            3043        3861     6578586   83  Linux

Questa è una configurazione particolare che ho voluto adottare.In pratica ho deciso di creare una partizione da 5gb per l'installazione di Windows 2000 (hda1) e poi, creare una partizione estesa da 26gb, nella quale mettere una partizione fat32.A questo punto, pero' ho adoperato degli accorgimenti : in primo luogo, ho avuto cura di creare all'interno della partizione estesa anche le partizioni di di boot (hda5) di swap (hda6) e la root (hda8). La partizione di boot, deve stare per forza nei primi 32gb, per il limite imposto dal bios : prima dell'esecuzione del kernel di linux, l'hd funziona col limite di capacità. Ho inserito anche la partizione di swap e la root nella partizione estesa, per guadagnare 2 ulteriori partizioni utilizzabili : la tabella delle partizioni del Dos, permette solo di creare 4 partizioni primarie ed una di queste 4, puo' essere estesa. In pratica, dopo aver creato la partizione estesa ed aver riempito così i 32gb utilizzabili possono essere adoperate per linux solo altre 2 partizioni primarie, nel mio caso : hda3 e hda4. In hda3 ho messo le home di sistema, ed hda4 l'ho adibita come partizione per il backup dei dati.
La root di sistema, poteva anche essere messa fuori dalla partizione estesa senza alcun rischio, perchè l'immagine del kernel risiede nella partizione di boot, guadagnando un altro po' di spazio, per il Windows, rinunciando pero' ad avere un'ulteriore partizione utilizzabile per linux.
Come potete notare, le uniche partizioni che richiedono di essere impostate come Empty, sono quelle che vanno oltre il 32°gb.
Ultimi accorgimenti : la partizione estesa, non deve andare oltre il 32°gb, io infatti l'ho fatta di 26gb, mantenendomi quindi
entro i 32gb (5+26=31gb). Inoltre, non dimenticate di settare i tipi di partizione giusti per le partizioni windows : di default l'fdisk le setta a tipo Linux. Nel mio caso ho settato hda1 come ntfs ed hda7 come fat32.

Fase finale
A questo punto potete installare senza problemi il Windows 2000 usando il prog. di installazione scegliendo la partizione che gli abbiamo prescelto. Per quanto riguarda linux, il discorso è lo stesso, solo che bisogna assicurarsi che il kernel della distro che andiamo ad installare, venga eseguito col parametro hda=stroke nel caso in cui si tratti di un kernel recente, o che abbia l'opzione Auto-Geometry resizing support attiva nel caso di kernel più vecchi. In ogni caso potete aggiungere a mano l'opzione di boot prima del boot del cd di installazione, o addirittura ad installazione effettuata, sulla linea di boot del lilo o del grub.
Non ho descritto tutti i passi di utilizzo del comando fdisk, perchè sono facili e c'è una guida in linea, questo anche per evitare che chi non ha mai messo mano ad una tabella di partizioni, possa fare troppi danni : l'fdisk è un comando pericoloso e va usato con coscienza dopo averne letta la documentazione (man fdisk). Inoltre l'fdisk non è l'unico programma per fare queste cose, vi ho detto solo come procedere, In ogni caso, se vi cimentate a fare questa cosa, probabilmente avrete intensione di perdere il contenuto preesistente del disco, quindi prendete le dovute precauzioni.

Chi è che è costretto a fare tutto questo?
Io per esempio, perchè sono in possesso di una asus p2b con il bios limitato a 32gb. Di conseguenza è una problematica che si pone solo per chi è in possesso di hw vecchio (pII-450mhz nel mio caso), e nn vuole rinunciare ad usarlo considerando che tutto sommato si tratta di hw abbastanza potente. A questo punto ci si potrebbe chiedere : perchè installarci anche Windows 2000 ?
La risposta è che alla fine, è l'unica versione di Windows decente che puo' girarci sopra, ed in certi rari casi non se ne puo' fare a meno, ahimè! :°

by MarK2097

This entry was posted in HowTo. Bookmark the permalink.