PDA

View Full Version : MBR – Windows / Linux


SuperISD32
11-07-2006, 16:37
Ringrazio innanzi tutti per la vostra attenzione che potra’ essermi di grande aiuto.

Questo problema si rivolge a coloro che hanno i concetti di MBR, boot loader e filesystem.
Chi non sa cosa siano queste tre cose, sicuramente si trovera’ in confusione continuando a leggere.

Il mio problema e’ cominciato quando una volta come tante altre ho deciso di installare linux sul mio unico HD, cosa che avevo già fatto molte altre volte senza problemi.

Utilizzando partition magic su windows liberai alcuni GB per linux, in modo, credevo, di non dover perdere il resto delle partizioni.
Da quanto visto sullo schermo l’operazione sembro’ finire bene.
Cominciai con installare mandrake 10.1: la prima incongruenza fu che nel momento della creazione delle partizioni la tabella relativa non poteva essere caricata perché “troppo corrotta”.
Comunque l’installazione finisce bene ma il SO non si avvia dicendo che non gli è possibile accedere alle INIT a causa, come scritto piu’ in alto nei log stampati su schermo, dell’errore riscontrato nel montare le partizioni.
Provo diverse distribuzioni, ma nessuna, nessuna funziona, dando problemi al primo avvio.
Persino knoppix da’ lo stesso problema (se pero’ lo avvio scollegando l’HD tutto funziona alla perfezione)
Reinstallo windows: sembra che questa volta Bill Gates abbia fatto qualcosa di migliore rispetto a linux: tutto, funziona.

Formatto a basso livello nel tentativo di eliminare completamente questa deforme tabella delle partizioni, senza risultati.
E’ proprio una storia tragica.

Pensando e ripensando mi faccio una prima idea, e credo che windows scriva due tabelle delle partizioni al posto di una sola, e che sia in grado di accedere ad una nel caso l’altra sia danneggiata, e che questo invece non sia possibile per linux.

Oggi mi sono informato su internet ed ho scoperto (su un sito inglese perche in quelli italiani non trovo mai niente…..) che la tabella delle partizioni è una sola e si trova allocata nell’ MBR, e che windows in questa tabella scrive QUATTRO valori per ogni partizione (mi sembra che siano: settore_inizio; lunghezza; sett_fine; tipo) mentre linux ne scrive solo DUE.

Alla fine di questa pappardella finalmente vi chiedo: e’ possibile che qualcuno di questi bit (dell’ MBR) sia danneggiato, magari proprio quelli che sono “doppi” per windows, nel senso che possono essere ricavati conoscendo quegli altri, e che linux utilizzandone una parte minore non sia in grado di ricavare quegli che non possono essere letti, mentre windows sì?

Insomma che casino.. sto chiedendo: nel caso in cui quella piccola porzione di disco sia danneggiata, cosa che non ho ancora verificato, c’è qualche sistema per riuscire a far partire linux, anche a costo di doverne riprogrammare una parte?

Grazie mille a tutti quelli che sapranno rispondere!!!

ilsensine
11-07-2006, 16:46
La butto lì...non è che hai cercato di installare linux su un fakeraid? Il primo sintomo è proprio questo:
la prima incongruenza fu che nel momento della creazione delle partizioni la tabella relativa non poteva essere caricata perché “troppo corrotta”.

SuperISD32
11-07-2006, 18:09
La butto lì...non è che hai cercato di installare linux su un fakeraid? Il primo sintomo è proprio questo:
Non posso avere configurazioni raid con la scheda madre Gigabyte ga-8irx;
comunque non ho mai sentito parlare di fakeraid, magari puo' anche essere quello. Da cosa lo noto se c'è?

mykol
11-07-2006, 22:24
Prova a riscrivere l'MBR da windows (fixmbr o comando simile a seconda delle versioni), poi prova a farti le partizioni con Linux (ad es. con il primo CD di Mandriva che ha un ottimo partizionatore). Se va, in hda1 insstalli Win, nelle altre linux.

Comunque, Partition Magic lascialo perdere, non è la prima volta che fa casini ... usa mandriva per ridimensionare le partizioni Win e creare quelle per Linux.

PeK
12-07-2006, 01:12
terminale

sudo fdisk /dev/XdY -l

(dove X sta per s se sata, h se pata; mentre Y sta per a se è il primo disco,
b per secondo ecc ecc)

così vedi se la tabella è leggibile o meno. se non è leggibile, fai di nuovo fdisk SENZA l'opzione -l e premi m per avere la lista dei comandi. isi :)

ilsensine
12-07-2006, 08:59
Non posso avere configurazioni raid con la scheda madre Gigabyte ga-8irx;
comunque non ho mai sentito parlare di fakeraid, magari puo' anche essere quello. Da cosa lo noto se c'è?
Sono dei controller IDE o SATA spacciati per RAID, ma che in effetti RAID non sono:
http://linux-ata.org/faq-sata-raid.html

Comunque non mi sembra che la tua scheda abbia uno di questi raid. A questo punto dovresti investigare con un LiveCD tipo knoppix, per capire cosa c'è che non va.

SuperISD32
12-07-2006, 13:14
terminale

sudo fdisk /dev/XdY -l

(dove X sta per s se sata, h se pata; mentre Y sta per a se è il primo disco,
b per secondo ecc ecc)

così vedi se la tabella è leggibile o meno. se non è leggibile, fai di nuovo fdisk SENZA l'opzione -l e premi m per avere la lista dei comandi. isi :)
In dos il comando /dev è sconosciuto (dos avviato da disco di win 2000).
Se invece il comando va digitato nel terminale linux, li' non ci posso accedere!

SuperISD32
12-07-2006, 13:22
Prova a riscrivere l'MBR da windows (fixmbr o comando simile a seconda delle versioni), poi prova a farti le partizioni con Linux (ad es. con il primo CD di Mandriva che ha un ottimo partizionatore). Se va, in hda1 insstalli Win, nelle altre linux.

Comunque, Partition Magic lascialo perdere, non è la prima volta che fa casini ... usa mandriva per ridimensionare le partizioni Win e creare quelle per Linux.
Se tramite fdisk controllo le partizioni scritte in linux ottengo scritte del tipo:
"partizione non dos 60 GB, spazio occupato: 150 %" ....
e cose simili.

Quindi con linux non riesco proprio né a leggere né a scrivere la tabella partizioni.

Conoscete qualche programma msdos o win32 per controllare l'hard disk in modo completo?
L' utilita' inclusa in winxp sp2 non rileva, o almeno non segnala, errori presenti in C:, dove tengo solo il file di swap.

ilsensine
12-07-2006, 13:27
Se tramite fdisk controllo le partizioni scritte in linux ottengo scritte del tipo:
"partizione non dos 60 GB, spazio occupato: 150 %" ....
e cose simili.

Quindi con linux non riesco proprio né a leggere né a scrivere la tabella partizioni.

Conoscete qualche programma msdos o win32 per controllare l'hard disk in modo completo?
L' utilita' inclusa in winxp sp2 non rileva, o almeno non segnala, errori presenti in C:, dove tengo solo il file di swap.
Il problema non è la tabella delle partizioni in se, che entrambi i s/o possono condividere pacificamente.
C'è qualche altro problema; se escludiamo la presenza di un fakeraid, sono curioso di vedere i log del kernel di una knoppix....

susetto
12-07-2006, 17:30
non sò se può esserti di aiuto, ti descrivo brevemente una mia disavventura

circa due anni fà, su un hd 120 GB s-ata avevo diverse partizioni con diversi f.s.
volevo installare suse 9.1 modificandone alcune
purtroppo qualche cosa è andata storta e la tabella partizioni venne danneggiata
suse non riusciva a riparare il danno e win2k diceva che l'hd era corrotto e non poteva far niente
ho fatto diversi tentativi ma tutti inutili
alla fine ho fatto un ultimo tentativo con mandrakemove 9.2
diskdrake mi avvisava che la tabella partizioni era danneggiata
se volevo proseguire bisognava rifarla perdendo tutti i dati del disco
dandolo ormai per spacciato, ho continuato rimuovendo tutto e formattando l'intero hd
al termine ho creato nuovamente le partizioni usando gli stessi cilindri e f.s. di prima
ho spento il pc, rimosso il cd di mandrakemove e riavviato con win2k

l'hd era tornato come nuovo, funzionava alla grande
con meraviglia, ho scoperto che tutti i file presenti sull'hd erano ancora lì a disposizione

p.s.
da allora ho fatto molti altri esperimenti sulle partizioni ed usato sempre diskdrake
non sarà come QtParted o simili ma non ha mai sbagliato una volta

PeK
12-07-2006, 21:43
In dos il comando /dev è sconosciuto (dos avviato da disco di win 2000).
Se invece il comando va digitato nel terminale linux, li' non ci posso accedere!


va messo nel terminale di linux. che significa che non puoi accedere? non si va a vedere la partizione, ma la tabella delle partizioni....

SuperISD32
13-07-2006, 22:28
Prossimamente avro' a disposizione un hd da 5 gb dove, se funzionerà, installero' linux e diskdrake con cui provero' a ripartizionare l'hd che sembra danneggiato.
Domani postero' i log sia di knoppix che di mandrake 10.1.

Speriam che si risolva....

SuperISD32
14-07-2006, 17:29
Pensavo di farvi vedere i log di avvio di una distro live fotografando lo schermo con una fotocamera.... ma a malapena si distinguono le linee....

Comunque sono riuscito ad accedere ad una console di ripristino, ho digitato "fdisk /dev/hda -l" ed è venuta fuori la tabella delle partizioni; inquietante: ( " ' " per separare)

-----------------------------------------------
''''''''''''device boot''''''''''''''''start''''end''''''''''''''''''blocks'''''''''''''''''id''''''''''system
/dev/hda1''''''' * '''''''''''''''''''''1'''''''''''''51''''''''''''''''''409626'''''''''''''7'''''''''''hpfs/ntfs
/dev/hda2'''''''''''''''''''''''''''''''''' 52 '''''' 4865 ''''''' 38668455 ''''''' f '''''''' w95 ext'd (lba)
/dev/hda5 '''''''''''''''''''''''''''''''' 52 ''''''' 561 '''''''' 4096543+ '''''''' 7 ''''''' hpfs/ntfs
/dev/hda6 '''''''''''''''''''''''''''''''' 562 '''' 2091 '''' 12289693+ ''''' 7 '''''''' hpfs/ntfs
/dev/hda7 '''''''''''''''''''''''''''''''' 2092 ''' 3366 '''' 10241406 ''''''' 7 '''''' hpfs/ntfs
/dev/hda8 ''''''''''''''''''''''''''''''' 3367 ''' 4865 '''' 12040686 '''''''' 7 '''''' hpfs/ntfs
---------------------------------------------------

Secondo questa tabella le partizioni si sovrappongono e si contorcono....

Da quanto dice windows e da quanto io ho impostato alla sua installazione, le partizioni dovrebbero essere le seguenti:

C ntfs 400 mb // solo swap
D ntfs 4 gb // 1 gioco
E ntfs 12 gb // altri giochi
F ntfs 10 gb // SO
G ntfs 11.4 gb // archivio multimediale

Quindi è evidente che la tabella sia danneggiata e che windows faccia finta di niente....
Oppure potrebbe essere stato un errore di lettura temporaneo....

susetto
14-07-2006, 19:47
ecco una breve descrizione di come vengono chiamate le partizioni
prendo ad esempio un hd primary master = hda
come sai, un hd può avere al massimo 4 partizioni primarie o 3 primarie ed 1 estesa
queste prendono il nome di hda1, hda2, hda3, hda4
se necessiti di più partizioni, devi creare 1 estesa con al suo interno diverse logiche
le partizioni logiche iniziano da hda5, hda6, hda7, .....

tu hai creato 1 primaria, hda1, 1 estesa, hda2 con al suo interno 4 logiche

SuperISD32
14-07-2006, 20:22
ecco una breve descrizione di come vengono chiamate le partizioni
prendo ad esempio un hd primary master = hda
come sai, un hd può avere al massimo 4 partizioni primarie o 3 primarie ed 1 estesa
queste prendono il nome di hda1, hda2, hda3, hda4
se necessiti di più partizioni, devi creare 1 estesa con al suo interno diverse logiche
le partizioni logiche iniziano da hda5, hda6, hda7, .....

tu hai creato 1 primaria, hda1, 1 estesa, hda2 con al suo interno 4 logiche

per qualche strana ragione, hai lasciato 1 cilindro libero all'inizio del hd (circa 8 MB)
hda1 doveva iniziare dal cilindro 0 al cilindro 51
hai riservato anche la partizione primaria allo swap :wtf:

la partizione estesa è corretta, da cilindro 52 a cilindro 4865
al suo interno trovi le seguenti logiche

- hda6, dal cilindro iniziale 52 al 561
- hda7, dal cilindro successivo 562 al 2091
- hda8, dal cilindro successivo 2092 al 3366
- hda8, dal cilindro successivo 3367 all'ultimo della estesa, il 4865
Questa storia delle partizioni non la sapevo, grazie dell' info.

hai riservato anche la partizione primaria allo swap :wtf:

Questo lo ha fatto windows in automatico. Non mi risulta che comporti niente..?

Comunque il problema non sembra essere qui...
Adesso tramite fdisk su linux provo ad eliminare l'ultima partizione e a installarci mandrake.
Fra un po' vi faccio sapere.

susetto
14-07-2006, 20:38
ecco come vedo il mio hda

da fdisk

http://img355.imageshack.us/img355/7062/fdiskconsole13wc.png

dal partizionatore in yast

http://img279.imageshack.us/img279/1496/fdiskyast22ih.png

non avevo mai fatto caso, sono spostati di un cilindro

SuperISD32
14-07-2006, 21:28
ecco come vedo il mio hda

da fdisk

http://img355.imageshack.us/img355/7062/fdiskconsole13wc.png

dal partizionatore in yast

http://img279.imageshack.us/img279/1496/fdiskyast22ih.png

non avevo mai fatto caso, sono spostati di un cilindro
Il tuo computer funziona.. è il mio che non va!

Facendo partire l'installazione di mandrake 10.1, al momento della formattazione mi viene fuori una finestra con scritto questo:

------------------------------------------------------
La tabella delle partizioni del dispositivo hda è illeggibile: è troppo corrotta : (
Posso provare a continuare, sovrascrivendo le partizioni danneggiate (tutti i dati verranno persi).
L' altra soluzione è di impedire a Drakx di modificare la tabella delle partizioni.
(L' errore è /proc/partitions doesn't agree with drakx 5 !=0:
/proc/partitions:
)

Accetti di perdere tutte le partizioni?
S/N
----------------------------------------------------------
Segliendo no l'installazione si interrompe dicendo che non c'è sufficente spazio,
segliendo sì tutto sembra proseguire bene, ma al momento del primo avvio compare l'errore che segnala che non è stato possibile montare le partizioni.

Installando invece suse 10, viene subito mostrato che non è stato possibile creare un partizionamento automatico; procedendo quindi alla creazione manuale, non è possibile modificare nulla: viene sì mostrato il disco hda, completamente vuoto, come in realtà non è, ma ogni tentativo di creare una nuova partizione viene completamente ignorato: ad ogni conferma di creazione la situazione rimane quella iniziale.

susetto
14-07-2006, 22:05
mi sembra di capire che vuoi installare linux su F (hda7)
devi formattare hda1 come swap
devi formattare hda7 con ext3 o raiserfs e punto di montaggio /
al limite, se non hai dati importanti sull'hd, prova a rimuovere tutte le partizioni, piallarlo per intero e ricominciare da capo

SuperISD32
14-07-2006, 23:09
mi sembra di capire che vuoi installare linux su F (hda7)
devi formattare hda1 come swap
devi formattare hda7 con ext3 o raiserfs e punto di montaggio /
al limite, se non hai dati importanti sull'hd, prova a rimuovere tutte le partizioni, piallarlo per intero e ricominciare da capo
Eheheheh... è quello che ho già fatto venti volte....
Ma mi vengono restituiti sempre gli stessi errori di sopra... :muro:
Formattando in tutti i modi (anche a basso livello)

SuperISD32
15-07-2006, 18:57
Ho reinstallato mandrake 10.1 e mi sono ricopiato i log del primo avvio (che ovviamente non è terminato).


Ultima schermata dei logs: :read:

-------------------------------------------------------------------
ip: routing cache hash table of 2048 buckets, 16 KBytes
tcp: hash tables configured (estabilished 16384 bind 32768)
net: registered protocol family 1
bios edd facility v0.16 2004 - jun - 25, 1 devices found
init init/main.c:726
md: autodetecting raid arrays.
md: autorun...
md: ... autorun done
ramdisk: compressed image found at block 0
vfs: mounted root (ext2 filesystem).
red hat nash version 4.1.12 mdk starting
loading jbd.ko module
loading ext3.ko module
mounting sysfile
creating device files
mounting tmp on /dev
starting udev
creating root device
mounting root filesystem
mount: error 6 mounting ext3 flags defaults
well, retrying without the option flag
mount: error 6 mounting ext3
well, retrying read-only without any flag
mount: error 6 mounting ext3
pivotroot: pivot_root (/sysroot,/sysroot/initrd) failed: 2
umount /initrd/sys failed: 2
umount /initrd/proc failed: 2
initrd finished
freeing unused kernel memory: 200k freed
kernel panic: no init found. Try passing init= option to kernel.
---------------------------------------------------------------------

Tutto qui. Da questo momento non posso digitare o fare niente.
Sapreste illuminarmi d'immenso? :D

SuperISD32
16-07-2006, 18:49
OK, ho avuto sotto mano l' HD da 1.2 GB.
Collegando quello e scollegando l'altro (da 40 GB) mandrake si avvia e non mostra problemi di nessun tipo.
Ma eseguendo l'installazione con entrambi i dischi, installando tutto su quello da 1.2 GB e ignorando completamente l'altro (cioè evitando addirittura di formattarlo), al primo avvio compare che non è stato possibile leggere la partizione hdb5 (una di quelle create nell' installazione precedente sul disco da 40 GB), e da lì non si smuove.
Significa che questo hd sotto linux non funziona piu'...

SuperISD32
17-07-2006, 20:53
E' un problema troppo complesso che nessuna mente puo' e potra' mai risolvere...
Nemmeno una squadra di super-scienziati..
(Tutta una scusa per uppare :D ).

Pier7500
18-07-2006, 11:13
Eheheheh... è quello che ho già fatto venti volte....
Ma mi vengono restituiti sempre gli stessi errori di sopra... :muro:
Formattando in tutti i modi (anche a basso livello)

Vuoi dire che anche formattando a basso livello rimangono le tabelle di partizione???????????? :confused: :confused: :confused: :confused:
Come hai fatto a fare la formattazione? A basso livello dovrebbe piazzare a 0 tutti i singoli bit dell'hd! E quindi non dovresti avere più nulla!!!!
il fatto che win fa casini con le partizioni..dipende dalla versione, certe facevano macelli con l'ntfs!

|Stan|
18-07-2006, 21:05
Nn credo che la risposta al tuo problema sia la formattazione a basso livello.
Facciamo il punto della situazione, cancellando tutte le partizioni e rifacendole da capo ottieni sempre lo stesso errore?
Fai avviare una live di knoppix e usa cfdisk per cancellare e creare le partizioni (credo che dovresti dare il comando "sudo cfdisk /dev/hda"). Se ottieni un errore all'avvio di cfdisk che dice che hai una tabella delle partizioni corrotta forse può esserti utile aggiungere -z che ignora la tabella attuale e ti permette di crearne una da zero.

SuperISD32
19-07-2006, 22:02
Ho risolto:
Pensando al problema, mi è venuto in mente che è iniziato da quando partition magic ha corrotto la tabella delle partizioni.
Rifacendole non cambiava niente.
Allora, tralasciando l'idea di avere uno o due bit danneggiati sul MBR, che windows avrebbe potuto ignorare dato che per ogni partizione scrive 4 informazioni, mentre linux due, ho pensato che partition magic potesse aver incasinato oltre i soli bit relativi alla tabella attuale; quindi rifacendo ogni volta un numero simile di partizioni il problema poteva ripresentarsi per questo motivo.
Dalle 6 partizioni usuali, ne ho create 12, in modo da sovrascrivere una porzione maggiore dell' MBR.
Successivamente, ho avviato fdisk da una utilità di ripristino di linux, ho eliminato la tabella, e ho ricreato le partizioni necessarie (4) , senza incontrare problemi.
L'installazione, poi, per la prima volta ha dato esito positivo.
Quindi non so dirvi se sia stata competenza di fdsisk a rifare in modo corretto le partizioni, o se sia stata giusta l' idea di farne 12...

Fatto sta che ora ho un HD che funziona perfettamente sotto linux.

Credo di essere l'unico essere umano sulla Terra ad aver incontrato questo problema, e il solo (non potrebbe essere di piu'...) ad averlo risolto... :cool:

Infatti quando ho cercato la soluzione a questo problema, non solo non l'ho trovata in nessun sito di qualunque nazionalita' (... piu' che altro inglese e italiano...), ma non ho trovato neanche nessuno che domandasse su come risolverlo.

Non so quindi se quello che ho scritto possa essere utile a qualcun' altro... :Prrr:
Ciao!

|Stan|
19-07-2006, 23:55
Ho il vago sospetto che sia merito di fdisk di linux anche se nn ci metto la mano sul fuoco :D