Migrazione windows virtuale su partizione fisica

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da ZeroUno »

joe ha scritto:Ok... quindi dovrei optare per il player... per quello che serve a me dovrebbe bastare.
Non ho trovato alcun pacchetto .lzm tra i moduli per slax... ma va bè, ora vedo.
non esiste, e non esiste nemmeno il txz per slackware (lo volevo fare ma presenta diverse problematiche).
devi scaricarla dal sito ed installarla. scarichi il vmware-player-3.x.boundle (o qualcosa del genere) poi dai
# bash vmware-player-3.x.boundle
e parte l'installer grafico. al termine compilerà anche dei moduli del kernel, quindi avrai bisogno del compilatore e del kernel source o kernel headers.
Con slax ci ho lavorato parecchio ma mi sono dimenticato quasi tutto, ma mi sembra che puoi fare una specie di tracciamento installazione che puoi poi trasformare in lzm. Se non erro si faceva tipo l'union-filesystem (si vabbé, la versione successiva perchè l'unionfs è deprecato, ma ci siamo capiti no?) e al termine dell'installazione si lanciava un comando che comprimeva questo filesystem trasformandolo in un modulo.

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Eh, io tutta quella roba non la ho su slax...
La faccenda si complica.

Preferisco fare alcune altre prove con virtualbox prima:

0- prova effettuata: creato cd xp, simil oem royalty. installato inserendo prod key che riportava il mio reale xp preinstallato. Il sistema s'è installato nella VM col smbios truccato. Ma alla fine chiede comunque l'attivazione.
Quindi, o il bios non è truccato bene, o il cd che ho creato non è aderente alle specifiche oem-royalty, oppure il cd va bene il bios truccato anche ma magari non basta (io avevo letto che bastava, cioè che questo tipo di licenza non faceva altre verifiche sull'hw oltre a quella sul bios... ma non si sà mai).

1- provare ad installare nella VM a partire dai cd di recovery... non dovrebbe funzionare, ma tant'è proverò.

2- provare ad installare da CD creato, su partizione fisica reale (non ho capito come fare con virtualbox ma cercherò). Al riavvio del notebook avrò un sistema potenzialmente già attivato (se il cd è creato bene) e con l'hardware sicuramente coerente rispetto all'attivazione...

L'installazione di vmware su slax... la lascio per ultima.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Il test numero 1: CD recovery via virtualbox ha fallito. Come previsto d'altronde. L'impressione è che l'smbios truccato non basti... probabilmente quei CD richiedono che l'hw sia effettivamente quello per cui sono previsti... ma la butto lì, magari poi è solo sbagliato il trucco dell'smbios.

Ora sono riuscito a fare qualcosa sul fronte del secondo test: installare su partizione fisica lavorando da virtualbox.
Prima di buttarmi a pesce nell'operazione. Ho provato a avviare slackware-11 che sta su hdc3.
È abbastanza semplice:

Codice: Seleziona tutto

 VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/slack11.vmdk -rawdisk /dev/hdc -partitions 3 -relative -register
Questo comando crea un link chiamato slack11.vmdk alla partizione 3 del disco /dev/hdc, ovvero ad hdc3.

Ho provato ad avviare la macchina virtuale utilizzando come HD proprio slack11.vmdk, succede che parte il MBR del mio notebook che ospita GAG (il boot manager). È come se avviassi il notebook realmente, con la differenza che posso scegliere solamente la partizione di slack11 da gag, se scelgo le altre presenti da un errore... è giusto perchè le altre partizioni non sono collegate ad un'immagine utilizzabile da virtualbox, almeno penso che funzioni così.
Chissà, magari non specificando la partizione utilizza tutto l'hd e si possono scegliere tutte le partizioni bootabilii regolarmente. Potrei provare...
Ad ogni modo riesco ad avviare la slack11. Anzi no... ottengo un kernel panic che però ottengo anche nella realtà avviando il notebook... probabilmente ho riempito quella partizione di troppa roba e ora è al 100%... Ad ogni modo l'avevo backuppata con dd.
Potrei provare a fare una prova di installazione di XP nell'immagine di cui sopra, sovrascrivendo la slack11.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Non sto a riportare tutto, dico solo che il test portato a termine col comando sopra non ha funzionato.. L'installazione di windows inizia ma poi si blocca sul controllo dei dischi lamentando qualcosa di erroneo nella partizione "C:" dove rileva il già presente sistema windows.. è quello preinstallato in hdc2. Avrebbe richiesto la formattazione di quel volume... ovviamente ho annullato tutto.
Ho poi provato a dare in pasto a virtualbox l'intero HD con un comando simile a quello sopra:

Codice: Seleziona tutto

 VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/hdc.vmdk -rawdisk /dev/hdc -register
L'installazione ha funzionato e sono anche riuscito a avviare il nuovo windows da dentro virtualbox.
Tuttavia poi riavviando lamacchina reale per fare la prova del 9... il settore della terza partizione contenete la nuova installazione sembra corrotto.

Coda più grave Il MBR della macchina era stato rasato. Partiva solo il windows preinstallato, e neanche in modo consueto:
si presentava una schermata con la scelta fra due sistemi "Windows XP Home Ed.".
Se scelgo il primo, non parte nulla dando un errore abbastanza chiaro:

C:\WINDOWS\System32\hal.dll mancante
Installarlo ecc ecc...

L'altra scelta fa invece partire il mio consueto sistema preinstallato.
Ho notato che nelle risorse del comuter c'è anche un fantomatico disco "H:" il cui accesso pare un tabù. Con ogni probabilità si tratta della partizione hdc3 dove ho messo il nuovo XP con virtualbox e a quanto pare la formattazione non è grezza... sembra proprio che non si possa usare la partizione cometale davirtualbox. In effetti neanche da slax riesco più a montare /dev/hdc3.

Adesso sto cercando di ottenere qualcosa convertendo l'immagine "hdc.vmdk" creata con virtualbok in un'immagine grezza... purtoppo si tratta di 40 GB di roba... andrà per le lunghe in ogni caso.
Il comando usato:

Codice: Seleziona tutto

# VBoxManage internalcommands converthd -srcformat VMDK -dstformat RAW ~/.VirtualBox/hdc.vmdk /mnt/sdb2/virtualz/hdc.raw
/mnt/sdb2 è la partizione di un HD esterno da 1TB.
Alla fine, con test come questi occorrono anche strumenti HW di un certo peso...

Prossimi passi:

1- vedere se si riesce a pescare un'immagine della partizione hdc3 dall'immagine raw dell'HD
2- convertire l'immagine di un file vdi in qualcosa di grezzo. e ricavare l'immagine della partizione.

Con qemu ero riuscito a fare il giochettoseguente, pqrtendo da un file.img quindi grezzo di un HD.

Codice: Seleziona tutto

losetup -f $HD.IMG  ----> aggancia al primo /dev/loopX libero l'immagine dell'HD virtuale in formato grezzo.
kpartx /dev/loopX ----> mappa le partizioni del disco virtuale creando per ciascuna dei device di loop:
                                      /dev/mapper/loopXp1 /dev/loopXp2 ecc.
mount /dev/loopXp1 /mnt/mountpoint
In tal modo si riesce a vederecosaci sta dentro...
A me sta volta interesserebbe fare qualcosa del genere:

dd /dev/loopXp1 /dev/hdc3

Cioè copiare la partizione dove XP è stato installato con vbox, nella partizione reale del mio HD.

PSNel frattempo la conversione del file vmdk in raw s'è bloccata con responso:

Codice: Seleziona tutto

Converting image ".VirtualBox/hdc.vmdk" with size 40007761920 bytes (38155MB)...
Error while copying the image: VERR_DEV_IO_ERROR
Lascio perdere anche perchè l'immagine è troppo ingombrante e i tempi sarebbero troppo lunghi.

Ho provato a convertire anche un'immagine vdi creata in questi giorni, ma senza risultato:

Codice: Seleziona tutto

root@slax:/mnt/sdb2/virtualz# VBoxManage internalcommands converthd -srcformat VMDK -dstformat RAW ./vbox-1805.vdi ./vbox-1805.raw
Sun VirtualBox Command Line Management Interface Version 3.1.8
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.

ERROR: VMDK: cannot read descriptor in './vbox-1805.vdi'
Error code VERR_VD_VMDK_INVALID_HEADER at /home/vbox/tinderbox/3.1-lnx32-rel/src/VBox/Devices/Storage/VmdkHDDCore.cpp(3037) in function int vmdkOpenImage(VMDKIMAGE*, unsigned int)
ERROR: VD: error VERR_VD_VMDK_INVALID_HEADER opening image file './vbox-1805.vdi'
Error code VERR_VD_VMDK_INVALID_HEADER at /home/vbox/tinderbox/3.1-lnx32-rel/src/VBox/Devices/Storage/VBoxHDD.cpp(1299) in function int VDOpen(VBOXHDD*, const char*, const char*, unsigned int, VDINTERFACE*)
Error while opening the source image: VERR_VD_VMDK_INVALID_HEADER
Boh...

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da ZeroUno »

Purtroppo non ti seguo più. Mi sono un po' impicciato su quello che stai facento/hai intenzione di fare/sei riuscito a fare ecc. Inoltre non conosco virtualbox.

Per l'mbr sappi che l'installer di windows lo sovrascrive.
Per il fatto che windows non ti vede quel file dipende dai driver del disco... che disco hai? (ide o sata)

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

IDE, come ide rea il controller in virtualox...

Non mi segui...


--------------------
Spetta! c'è un errore:
# VBoxManage internalcommands converthd -srcformat VMDK -dstformat RAW ./vbox-1805.vdi ./vbox-1805.raw

non può funzionare!
ho dato in input un immagine in formato VDI (vbox-1805.vd) specificando però il formato sorgente come VMDK.
Al posto di "-srcformat VMDK" va messo "-srcformat VDI"

Che sto facendo girare proprio adesso. L'immagine era di 10 GB, vediamo cosa salta fuori.
----------------------------

Tornado al discorso. Ricapitoliamo.
Il fine è quello di installare win dentro la terza partizione hdc3 del mio HD interno hdc.
Ora se io avessi un cd di XP in grado di installare il tutto e farmi evitare l'attivazione sarei a cavallo, mi basterebbe masterizzare e finalmente riorganizzare insanta pace l'HD installando xp pulito nella partizione che più mi garba.
Invece io questa immagine del CD non ce l'ho.
Per cui mene voglio creare uno capace di sfruttare l'attuale sitazione: un sistema preinstallato e preattivato da cui carpire qualche file utile e qualche info.
Purtroppo lacreazione di un siffatto cd comporta l'elaborazione di informazioni esperienze ecc e il testing delcd creato, se non funge si riparte. Pertanto brucierei troppi CD... anche riscrivibili penso che non basterebbe.

L'idea sarebbe la seguente:
installo xp in un file immagine di un hd virtuale.
prendo la partizione virtuale dove sta il sistema così installato
la copio sulla partizione reale.

Per estrarre da un file immagine di hd il file immagine della partizione, occorre che questa sia grezza.
Purtroppo però virtualbox con cui qualcosa ho già creato, sforna immagini .vdi o .vmdk. Dalle quali non riesco ad estrarre l'immagine di una partizione virtuale copiabile su quella reale.
Da qui l'esigenza di convertire un'immagine .vdi in formato grezzo, raw "che dir si voglia".

Nel frattempo, mentre scrivevo il comando corretto ha dato un esito privo d'errori:

Codice: Seleziona tutto

root@slax:/mnt/sdb2/virtualz# VBoxManage internalcommands converthd -srcformat VDI -dstformat RAW ./vbox-1805.vdi ./vbox-1805.raw
Sun VirtualBox Command Line Management Interface Version 3.1.8
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.

Converting image "./vbox-1805.vdi" with size 10737418240 bytes (10240MB)...
root@slax:/mnt/sdb2/virtualz# ls -lh vbox-1805.*
-rw------- 1 root root  10G May 19 19:50 vbox-1805.raw
-rw------- 1 root root 1.3G May 19 11:10 vbox-1805.vdi
Adesso teoricamente ho l'immagine in formato grezzo che ho ciamato come sivedesopra: vbox-1805.raw.
Mi viene in mente che il tipo di device .vdi che avevo scelto alla creazione su virtualbox era "extendible" e non fixed, questo si vedebene dallist precedente:l'immagine .vdi è di 1.3GB mentre la .raw è di 10GB. Spero che non sia causa di noie... faccio qualche prova. evi dico.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Sì funziona! :)

Codice: Seleziona tutto

root@slax:/mnt/sdb2/virtualz# losetup -f vbox-1805.raw
root@slax:/mnt/sdb2/virtualz# losetup -j vbox-1805.raw
/dev/loop25: [0812]:37994506 (/mnt/sdb2/virtualz/vbox-1805.raw)
root@slax:/mnt/sdb2/virtualz# kpartx -va /dev/loop25
bash: kpartx: command not found
root@slax:/mnt/sdb2/virtualz# activate /mnt/sda2/saved-modules/kpartx.lzm
root@slax:/mnt/sdb2/virtualz# kpartx -va /dev/loop25
add map loop25p1 (253:0): 0 20948697 linear /dev/loop25 63
root@slax:/mnt/sdb2/virtualz# mount -t ntfs-3g /dev/mapper/loop25p1 /mnt/loop25p1/
root@slax:/mnt/sdb2/virtualz# ls /mnt/loop25p1/
AUTOEXEC.BAT  Documents and Settings  NTDETECT.COM               WINDOWS   pagefile.sys
Bootfont.bin  IO.SYS                  Programmi                  boot.ini
CONFIG.SYS    MSDOS.SYS               System Volume Information  ntldr
root@slax:/mnt/sdb2/virtualz#  
Adesso chissà cosa succede se faccio

Codice: Seleziona tutto

dd if=/dev/mapper/loop25p1 of=/dev/hdc3
Probabilmente succede che la partizione /dev/hdc3 (7GB circa) non riesce ad ospitare lapartizone virtuale che è circa 10 GB.
Si potrebbe fare una prova con fdisk, ntfs-resize estrumenti del genere per ridurre la partizione a quanto ci serve. e poi copiare il tutto in hdc3. Infine eventualmente riallargare il filesyste ntfs per farlo aderire alla nuova partizione hdc3.

C'è da chiedersi se alla fine della faccenda il windows che stadentro sia ancora funzionante... mah proviamo.
Saluti

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da ZeroUno »

Scusa, invece di farti un disco virtuale da 10G non te lo potevi fare da 7, anzi anche un po' meno?
La probabilità che windows ti abbia installato componenti sopra i 7G c'è, ed in tal caso non funzionerà un tubo.
Se invece sei fortunato ti basta un chkdsk di windows. Ma ho qualche dubbio del boot. Probabilmente (o di sicuro) dovrai dare un fixboot da cd di xp.

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Eh, ormai l'avevo fatto da 10GB...
Farne un'altro da 7 era troppo dispendioso.

Comunque sono riuscito a stringere e copiare la partizione virtuale su quella fisica, in seguito ho utilizzato un aseconda volta ntfsresize per riempire tutta la partizione /dev/hdc3 col filesystem ntfs.
La partizione risulta montabile normalmentecon ntfs-3g.
PEr quanto riguarda il boot anche io ho parecchi dubbi. l'unica è provare.

Non so bene come fare a ripristinare con fixboot... ma vedremo insomma.
Salti e grazie dell'appoggio se non altro morale! ;)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Dunque, come previsto la partizione hdc3 non è avviabile.
Non ho provato fixboot. In ogni caso non dovrebbe essere l'unica cosa da ripristinare... quantomeno vi sarà anche la riscrittura del boot.ini. E probabilmente non basta ancora.

Ho fatto una prova molto semplice utilizzando qemu per verificare l'avviabilità di una partizione windows clonata.
Mentre per quel che riguarda partizioni contenenti un sistema linux, la faccenda è iperdocumentata, spiegata bene, chiaramente, ecc... sul versante windowspare un'operazione meno frequente e comunque assai più fumosa.

Dico subito che la prova che ho fatto non è andata a buon fine.

1- creazione di due HD virtuali da dare in pasto a qemu, immagini grezze. Entrambi da 10 GB. Entrambi contenenti un'unica partizione NTFS.
2- Il primo partizionato e formattato con la iso di windows durante l'installazione sempre via qemu.
3- il secondo partizionato con fdisk con partizione riempita copiando a basso livello quela del primo HD (contenete windows).
4- In entrambi ho infilato GAG nel mbr.

Il primo HD su cui avevo fatto l'installazione di windows attraverso qemu si avvia normalmente: parte gag, poi parte il SO.
Sul secondo HD invece sono sì riuscito a mettere GAG che riconosce la partizione formattata ntfs (quella clonata dal primoHD), ma quando scelgol'unico sistema installato, windws non parte, lo schermo resta nero eno mi restache chiudere qemu.

L'operazione di copia l'ho fattanel modo seguente:

Codice: Seleziona tutto

# creazione immagini hd
qemu-img create src.img 10G (idem per dst.img)

# installazione windows in src.img

# aggancio delle immagini a devces di loop
losetup -f src.img
losetup -f dst.img
losetup -a |grep img  (per vedere a qualedevice di loop sono agganciate leimmagini).

# partizionamento hd dst.img
fdisk /dev/loop${DST}
#creazione partizione primaria ntfsavviabile nell'immagine di destinazione

# aggancio delle partizioni "virtuali" a device di loop reali
kpartx -va /dev/loop$SRC (idem per DST)
#In /dev/mapper/ troviamo loop${SRC}p1 che rappresenta il device corrispondente alla partizione dell'immagine sorgente contenete windows.

# Copia con dd:
dd if=/dev/mapper/loop${SRC}p1 of=/dev/loop${DST}p1

#sganciamo i device dal loop
kpartx -d /dev/loop${SRC} idem per DST
losetup -d /dev/loop${SRC} idem per DST

#aggiunta di gag nel mbr di dst.img

#prova di avvio
qemu -hda dst.img
Purtroopo non si avvia un piffero! :(

In altre prove che ho fatto ho tentato di avviare sempre con qemu immagini che si comportavano allo stesso modo, utilizzndo come cdrom le iso dei cd win creati, e andando nella console di ripristino sono riuscito afare null'altro che un buco nell'acqua.



Tuttavia, ho cercato in rete qualcosa circa la migrazione di partizioni windows e ho trovato interessanti guide. Vedrò di provarle e vi riporto ancke i link:

http://www.google.com/search?hl=en&q=mo ... tnG=Search
http://ubuntuforums.org/showthread.php?t=916146

Nel secondo link ci sono altri links intetressanti.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Dopo aver letto la guida, ho seguito i passi, e di fatto aver cancellato dal registro il tutto come dice la guida (lavorando sempre da linux), e dopo aver aggiunto al boot.ini solamente l'opzione "/NoExecute=OptIn" che non so bene neanche a cosa serva...
Bè, il sistema copiato nell'HD virtuale dest.img è stato regolarmete avviato da qemu.
Ho anche controllato la prima parte dela partizione con un editor binario, ma siccome sia nel disco src.img che dst.img la partizione iniziava al 63-esimo settore, a quanto pare non vi era bisogno di editare in quanto erano già identici nella posizione indicata... (per capire meglio leggete laguida linkata).

Visto che ha funzionato sono andato a vedere con hexedit la partizione numero 3 del mio hd reale e difatti nel punto incriminato vi era un numero sbagliato: per spiegarmi meglio dovrei ricopiare dalla guida.
Via... lo riporto:
But first we've got to determine where they start.
"fdisk -ul /dev/hda" shows:

Code:

Device Boot Start End Blocks Id System
/dev/hda1 * 63 40965749 20482843+ 7 HPFS/NTFS
/dev/hda2 40965750 81979694 20506972+ 7 HPFS/NTFS
/dev/hda3 81979695 122993639 20506972+ 7 HPFS/NTFS
/dev/hda4 122993640 181582694 29294527+ 5 Extended
/dev/hda5 122993703 181582694 29294496 83 Linux

The interesting values are listed in the "Start"-column but have to be
converted into hexadecimal and rearranged in order. "printf "0x%llx\n"
40965750" printfs 40965750 in hexadecimal format "0x2711676"
"printf "%x" 40965750" would have done, too.
The hexadecimal value "2711676" has to be rearranged further. The digits
have to skewed by pairs following this method: "0xABCDEFGH => GH EF CD AB"
For "2711676" this results in "76167102"
Since we've got 4 pairs to skew but only 7 digits available we simply
add a leading 0. This is as neutral in the hexadecimal system as it is
in the more familiar decimal system.
Now "76167102" has to be inserted into hda2s boot-sector. That's done
with "hexedit /dev/hda2"
Move the cursor to position "0x1c" and type in "76 16 71 02", then
save&quit with "<STRG>-X"
Bene, nella mia hdc3 vi era "3f" in posizione "0x1c" come se tale partizione iniziasse al settore 63 (63 in esadecimale diventa "3f"). È anche giusto perchè la hdc3 era stata copiata bit a bit con dd dalla prima partizione di un disco virtuale... e quella s'era portata con se quel "3f".
Quindi già questo è un motivo per cui la partizione hdc3 non dovrebbe funzionare.

Poi c'è il boot.ini del sistema in hdc3, che ho rieditato così:

Codice: Seleziona tutto

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect
Potrei anche aggiungere anche qui l'opzione "/NoExecute=OptIn".... non so
Siccome le ultime volte che ho avviato win ho notato una schermata che prima non appariva.. ho controllato anche il boot.ini di questa:

Codice: Seleziona tutto

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect /NoExecute=OptIn
Questo file è stato modificato secondo me durante il tentativo di ieri di installare win nella terzapartizione lavorando da virtualbox È comese adesso avviando hdc2 dove sta il windows preinstallato, mi chiedesse la scelta tra il preinstallato e il nuovo windows in hdc3...

Insomma, ora ho corretto la patizione in hdc3, adesso non mi resta che modificarne il registro eliminando i vari device che poi al riavvio win si cercherà.Proviamo...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Ho provato ma non ha funzionato...
Quando scelgo la tarza partizione all'avvio mi si presenta una schermata nere con diverse opzioni: c'è stato un problema ecc ecc.
avvia normalmente, avvia in modalità provvisoria ecc ecc.
Qualsiasi cosa io scelga, sembra quasi partire e intravedersi appena una schermata blu, ma immediatamente la macchina viene riavviata...

Ho anche provato a riavviare con un CD di xp alleggerito con nlite che avevo creato anni fa. Da lì ho eseguito la fixboot, ma niente.

Per precauzione ho ricreato come sorgente della copia un'immagine di quemu, da 3GB, che attualmente data in pasto a qemu sembra funzionare correttamente....

La prova che ho fatto ieri simulava lo spostamento di un sistema windows dalla primapartizione di un HD da 10 GB alla prima di un HD da 10 GB.
Oggi invece la situazione è appena più complessa e pare già che i passaggi che ho seguito siano messi in crisi...

Da qua (http://gparted.sourceforge.net/larry/move/move.htm) leggo anche:
ATTENTION PLEASE ! DON'T REBOOT RIGHT NOW !!! If you do this, it will be a big crash! Actually you have the same windows XP on both hard drive. From the second hard drive, XP cant boot, because there is no MBR for the moment ! But if you try to reboot, the first hard drive will run XP and seeing the second XP on the second hard drive, it will be a kind of disaster ! Windows cant bear windows ! So, just turn off the PC, unplug both hard drives, and plug the new one as master, leaving the other one for the moment.
Che sia l'altro windows a dare fastidio al primo...?
Mah a me pare molto improbabile in quanto usando gag nel mbr non ci dovrebbero essere grossi problemi.
Ad ogni modo per fare una riprova potrei creare una ulterire immagine per quemu fare trepartizioni e testarela migrazione dalla prima partizione dell'immagine da 3GB creata oggi verso la terza partizione della nuova immagine.
Mi pare una prova piuttosto facile e rapida, tanto per capire se va o no..

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da ZeroUno »

joe ha scritto:Ho provato ma non ha funzionato...
Quando scelgo la tarza partizione all'avvio mi si presenta una schermata nere con diverse opzioni: c'è stato un problema ecc ecc.
avvia normalmente, avvia in modalità provvisoria ecc ecc.
Qualsiasi cosa io scelga, sembra quasi partire e intravedersi appena una schermata blu, ma immediatamente la macchina viene riavviata..
al boot, prima della schermata di scelta, premi f8. dovrebbe comparire una schermata con un po' più di scelte.
vai con 'disattiva riavvio automatico'. questa volta la schermata blu non dovrebbe scomparire.


Leggila e vai a caccia di scritte tutto maiuscole, della riga STOP e i numeretti che ci sono appresso, e vedi se c'è nominato qualche file.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

danke! :D

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Macchina virtuale con bios identico alla macchina host

Messaggio da joe »

Anticipo, che non ho ancora fatto la prova con qemu nè ho fatto la prova che mi avevi indicato, per pigrizia di riavviare...

Ad ogni modo, ho letto qualcosa circa i primi bytes delle partizioni ntfs.
Ho trovato che talvolta per ripristinarle, alcuni editano direttamente il device in binario... un po' come ho giàfatto io per impostare il giusto settore di inizio della partizione (in quel caso l'informazione è collocata nelle 4 coppie di cifre successive alla posizione 0x1C).

http://bootmaster.filerecovery.biz/appnote3.html
http://gparted-forum.surf4.info/viewtopic.php?id=13879

In particolare la posizione "0x28" dovrebbe contenere [/b]il numero di settori su cui si estende la partizione meno uno[/b]
Correggete se sbagliato, please!

Così sono andato a verificare la partizione di partenza, su quanti settori si estende e cosa contiene il numero esadecimale in posizione "0x28".
I due numeri dovrebbero esserecoerenti con quanto detto sopra.

Vediamosu quanti settori s'stende la partizione sorgente da cui ho fatto la copia:

Codice: Seleziona tutto

# fdisk -lu /dev/loop25

Disk /dev/loop25: 3221 MB, 3221225472 bytes
128 heads, 63 sectors/track, 780 cylinders, total 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x8f158f15

       Device Boot      Start         End      Blocks   Id  System
/dev/loop25p1   *          63     6281855     3140896+   7  HPFS/NTFS

la partizione si estende su
6281855-63+1= 6281793 settori
Quindi la cifra che dovremmo trovare per coerenza sarà: 6281793-1=6281792
convertendola in esadecimale risulta: 5FDA40
pertanto dovremo aspettarci di trovare: 40 DA 5F 00

Andando a vedere:

Codice: Seleziona tutto

# hexdump -C -s 0x28 -n 4 /dev/mapper/loop25p1
00000028  40 da 5f 00                                       |@._.|
0000002c
Pertanto troviamo tutto in ordine. Penso sia chiaro senza spiegare oltre.

Controprova, vediamo com'è messa la partizione di destinazione, che s'è dovuta sorbire un resize del fileistem e altre modifiche.

Codice: Seleziona tutto

# fdisk -lu /dev/hdc|grep hdc3
/dev/hdc3   *    48419910    60709634     6144862+   7  HPFS/NTFS
60709634-48419910
12289724

per cui alla posizione 0x28 dovremmo trovare:

Codice: Seleziona tutto

# printf "%llx\n" 12289724
bb86bc
cioè [/b]"bc 86 bb 00"[/b]:

Ok andiamo a verificare:

Codice: Seleziona tutto

# hexdump -C -s 0x28 -n 4 /dev/hdc3
00000028  b0 86 bb 00                                       |....|
0000002c
NON SONO UGUALI!

Perchè diavolo trovo:

b0 86 bb 00 invece di
bc 86 bb 00

vediamo su quanti settori il filesystem "pensa" che la partizione si estenda:

b0 86 bb

diventa

bb86b0

Codice: Seleziona tutto

# printf "%d\n" 0xbb86b0
12289712
il filesystem ntfs dovrebbe risultare esteso su
12289724 invece nella partizione risulta esteso su
12289712

La differenza è di 12 settori.. cioè il filesystem risulta più piccolo di 12 settori rispetto a quello che dovrebbe essere.

???
A cosap è dovuta questa discrepanza?
Può essere secondo voi questo il problema?
Sarei tentato di modificare la partizione e provare, ma ora non ho tempo...

Se nel frattempo, avete voglia e sapete dire quale problema porti...
Magari intanto nel prossimo post riporteròcosa dice la schermata blu!
Saluti! :)

Rispondi