webForumDet fria alternativet

Kopiera enskild partition

Linux & BSD

17 svar · 2 372 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Försöker migrera en fysisk Windows XP installation till en virtualiserad variant men stöter på patrull. För att ta det kort. Mitt problem kan eventuellt bero på att jag har Dells gömda återställningspartition i den virtuella disken. Det jag har gjort är helt enkelt:

dd if=/dev/sda of=/mnt/disk/WinXP.dd bs=16384

Och därefter konverterat den till en Virtualbox disk (vdi).
Enligt VirtualBox migreringsguide så måste jag kopiera hela hårddisken och inte en enskild partition. Det framgår dock inte varför:

Either pull the drive from the windows machine or copy the data with a low level image tool (like dd) to a USB drive or other removable media. If making an image, DO NOT image just the partition, this will not work!

Så, vad jag behöver är en vdi som bara innehåller den partition som jag har Windows på. Vissa källor på nätet hävdar att det är möjligt att kopiera enskilda partitioner. Någon som har någon erfarenhet av det här? Jag kan helt enkelt prova, men disken är rätt stor så all kopiering tar en jäkla tid.

Medlem sedan mars 20007 896 inlägg
#2

Jag skulle gissa på att VB vill ha en hel hårddisk, just på grund av att du får med MBR och partitionstabeller. En .vdi är ju just en virtuell disk - inte en virtuell partition - som kan innehålla flera partitioner.

Gör det något om återställningspartitionen följer med, om du kopierar hela disken? Vad jag minns så tar dessa inte upp speciellt mycket utrymme.

Hm, nu ser jag ju iofs på ditt 'dd'-kommando att du kopierar hela disken. Menar du att *nix inte lyckas få med återställningspartitionen? Syns den i fdisk?

Medlem sedan sep. 20005 700 inlägg
#3

SPiN skrev:

Jag skulle gissa på att VB vill ha en hel hårddisk, just på grund av att du får med MBR och partitionstabeller. En .vdi är ju just en virtuell disk - inte en virtuell partition - som kan innehålla flera partitioner.

Gör det något om återställningspartitionen följer med, om du kopierar hela disken? Vad jag minns så tar dessa inte upp speciellt mycket utrymme.

Hm, nu ser jag ju iofs på ditt 'dd'-kommando att du kopierar hela disken. Menar du att *nix inte lyckas få med återställningspartitionen? Syns den i fdisk?

Problemet är alltså att jag inte vill ha med återställningspartitionen. Anledningen: Jag behöver göra en Repair från min Windows XP-skiva men det går inte då installationen inte identifierar någon Windows-installation. Jag fick ett tips om att detta kunde bero på den dolda Dell-partitionen som på något sätt lurar Windows.

Medlem sedan juni 20014 290 inlägg
#4

För att kopiera en partition så är det bara att ange den vid dd kommandot (ex. dd ... /dev/hda1 ...), men då får du inte med MBR, så frågan är om VirtualBox kan använda den sedan.

Du kan prova med dell's återställningspartition, den brukar vara liten och det enda som händer när du försöker boota är att antingen fungerar det inte ( :) ) eller så kommer du in i återställningsprogrammet).

Medlem sedan juni 20014 290 inlägg
#5

Gein skrev:

Problemet är alltså att jag inte vill ha med återställningspartitionen. Anledningen: Jag behöver göra en Repair från min Windows XP-skiva men det går inte då installationen inte identifierar någon Windows-installation. Jag fick ett tips om att detta kunde bero på den dolda Dell-partitionen som på något sätt lurar Windows.

Ok, det du kan göra är att se till så att återställningspartitonen är gömd/inaktiv och att XP partitionen är aktiv, då skall XP-skivan hitta den.

Medlem sedan sep. 20005 700 inlägg
#6

GunnarD skrev:

För att kopiera en partition så är det bara att ange den vid dd kommandot (ex. dd ... /dev/hda1 ...), men då får du inte med MBR, så frågan är om VirtualBox kan använda den sedan.

Du kan prova med dell's återställningspartition, den brukar vara liten och det enda som händer när du försöker boota är att antingen fungerar det inte ( :) ) eller så kommer du in i återställningsprogrammet).

Ja, det var en bra idé. Tyvärr tror jag inte att det står som det gör i VirtualBox migreringsguide för intet.

En annan idé, om än ganska krånglig, som slog mig. Om jag dd:ar hårddisken till en annan hårddisk (dd if=/dev/sda of=/dev/sdb ...) (för att inte förstöra orginalet) och sedan tar bort alla partitioner utom Windows på kopian för att därefter göra en dd till fil, följt av en konvertering till vdi. Det kanske skulle fungera?

Medlem sedan sep. 20005 700 inlägg
#7

GunnarD skrev:

Ok, det du kan göra är att se till så att återställningspartitonen är gömd/inaktiv och att XP partitionen är aktiv, då skall XP-skivan hitta den.

Hur gör jag det här? Helst i Linux då jag inte ens kan komma in i Windows.

Medlem sedan mars 20007 896 inlägg
#8

Nu kanske jag är ute på hal is, men fdisk hanterar vissa filsystem som anses "dolda".

Några av dem:
16 Hidden DOS 16-bit FAT >=32M
17 Hidden IFS (e.g., HPFS)
1b Hidden WIN95 OSR2 FAT32
1c Hidden WIN95 OSR2 FAT32, LBA-mapped
27 Windows RE hidden partition
84 OS/2 hidden C: drive
93 Hidden Linux native partition
97 Free FDISK 0.96+ hidden Primary DOS FAT32 partitition
98 Free FDISK 0.96+ hidden Primary DOS FAT32 partitition (LBA)
c2 Hidden Linux
fe Windows NT Disk Administrator hidden partition

Från den här listan: http://www.win.tue.nl/~aeb/partitions/partition_types-1.html

Jag har dock ingen aning om vilken som passar dig bäst. Eller om det ens löser ditt problem...

Medlem sedan sep. 20005 700 inlägg
#9

Gein skrev:

Ja, det var en bra idé. Tyvärr tror jag inte att det står som det gör i VirtualBox migreringsguide för intet.

En annan idé, om än ganska krånglig, som slog mig. Om jag dd:ar hårddisken till en annan hårddisk (dd if=/dev/sda of=/dev/sdb ...) (för att inte förstöra orginalet) och sedan tar bort alla partitioner utom Windows på kopian för att därefter göra en dd till fil, följt av en konvertering till vdi. Det kanske skulle fungera?

Jag tänkte nog lite väl krångligt här inser jag nu. Det är ju bara boota upp den virtuella maskinen med en Linux LiveCD och därifrån radera de gömda partitionerna med fdisk. Om det löser problemet eller inte återstår att se.

Medlem sedan sep. 20005 700 inlägg
#10

Nu börjar jag bli fundersam. Bootar min virtuella maskin med en Linux LiveCD och kör cfdisk /dev/sda. Se bifogad fil.
Ser lite konstigt ut med bara en FAT16-partition? Det går dock att boota Windows (dvs den hittar Windows-installationen om jag bootar från den virtuella disken).

cfdisk.png
Medlem sedan sep. 20005 700 inlägg
#11

Känns spontant som att något har hänt med partitionstabellen efter att jag körde dd. Nu har jag inte tillgång till den fysiska datorn men det vore ju intressant att boota LiveCDn där och kolla vad cfdisk säger.

Medlem sedan mars 20007 896 inlägg
#12

Det låter rimligt att du inte fick med dig partitionstabellen, ja. Har du försökt återställa med Microsofts chkdsk? Annars finns det ett öppet alternativ som verkar kunna återställa en MFT: TestDisk

Frågan är ju hur man löser det i virtuell miljö. Testa? ;)

Medlem sedan sep. 20005 700 inlägg
#13

SPiN skrev:

Det låter rimligt att du inte fick med dig partitionstabellen, ja. Har du försökt återställa med Microsofts chkdsk? Annars finns det ett öppet alternativ som verkar kunna återställa en MFT: TestDisk

Frågan är ju hur man löser det i virtuell miljö. Testa? ;)

Bra idé där! Nej, chkdsk har jag inte provat alls.

Partitionstabellen måste ha försvunnit när jag gick från dd -> vdi. För nu tryckte jag ut min dd-image till en ny usb-disk (dd if=/disk/system.dd of=/dev/sdb) för att sedan granska den med cfdisk och då hittar jag alla partitioner! Så det jag gjorde då var att radera ut två partitioner som jag inte kände igen och sparade två stycken NTFS-partitioner. Nu håller jag på att trycka ner usb-disken till en dd image igen för att sedan konvertera den till vdi så får vi ser hur det går. Om inte det lyckas så sa jag testa köra chkdsk och TestDisk också! Återkommer.

Medlem sedan juli 200012 978 inlägg
#14

Beundrar ditt jobb Gein. När det gäller partitioner kom ihåg att det inom Linuxvärlden finns många bra fria verktyg om man vill förändra storlekar och sådant.
Jag har fått hem en HP bärbar med XP ombord. Skall testa att ärva över den till en virtuell disk.
Annars kör jag ju bara Win7 och OsX numera. Har även konverterat över Hustruns Vaio till W7. Känns bra.

Medlem sedan sep. 20005 700 inlägg
#15

testdisk var att riktigt bra program! Trots det så verkar det vara någon där uppe som inte vill att jag lyckas. Jag kunde utgå från min ursprungliga vdi och använda testdisk för att återställa partitionstabellen. Det fungerade alldeles utmärkt. Härifrån provade jag återigen att komma åt Repair för min Windows-installation men precis som tidigare så hittar den inte någon installation och jag har bara alternativet att ominstallera.

Då provade jag att ta bort alla partitioner utom den som Windows är installerad på sdb2 blev kvar medans sdb1, sdb3, sdb4 togs bort. Nu bootar inte ens Windows längre.

Det gick inte att starta Windows på grund av ett konfigurationsfel på hårddisken. Det gick inte att läsa från angiven startdiskett. Kontrollera startsökvägen och disken.

En fixmbr från Windows återställningskonsoll kanske löser det, så jag bootar Windows-skivan igen och går in i återställningskonsollen. Här hittar den nu plötsligt min Windows-installation för jag tvingas välja den innan jag kommer åt konsollen. Jag trycker 1. för C:\Windows och uppmanas fylla i Administratörslösenordet. Vad jag vet finns det inget så jag provar blankt men det fungerar inte. Provar diverse andra lösenord men inget tycks fungera. Så jag fortsätter googla och hittar ett verktyg för att återställa lösenordet. Jag laddar ner och bootar upp med verktyget som antyder att lösenordet faktiskt är blankt. Av just den anledningen kan jag inte heller sätta ett nytt lösenord. Bootar Windows-skivan igen bara för att verifiera att ett blankt lösenord faktiskt inte fungerar.

Efter lite snabbt googlande så hittar jag ms-sys som kan användas för att återställa en Windows MBR från Linux. Givetvis finns verktyget på SystemRescueCD (en Linux dist för systemräddning) och jag använder det för att återställa MBR. Bootar om men fortfarande ingen lycka.

Så nu har jag återigen tömt huvudet på idéer. Vad jag står med är en vdi innehållande en partition under /dev/sdb2 (om man tittar med cfdisk) som nu inte längre går att boota. Felmeddelandet (se citat ovan) tyder ju trots allt på att något som har med Windows att göra hittas, eftersom det är Microsofts utskrift, eller hur? Är det så att MBR inte pekar ut rätt del på hårddisken (sdb2)? Jag behöver flera halmstrån att dra i som ni märker.

Medlem sedan sep. 20005 700 inlägg
#16

Jag kör ms-sys -m /dev/sda för att skriva en Windows XP MBR till hårddisken. Skrivning går bra men inte boot.
Så provar jag ms-sys -w /dev/sda, vilket väljer typ av MBR automatiskt och skriver den. Då skrivs en annan MBR, nämligen DOS/Windows NT. Jag bootar om och nu startar den Dell Recovery-partitionen (visserligen dör den rätt snabbt när den inser att den kör i en virtuell miljö men boot fungerar!).

Så min fråga är, hur sjutton vet ms-sys vilken partition den ska peka på när den skriver MBR? Den verkar nämligen vilja peka mot första partitionen (där Dell Recovery ligger) och jag hittar inget sätt att välja annan partition.

Medlem sedan juni 20014 290 inlägg
#17

Om jag kör fdisk mot disken jag bootar min linux burk på så är en av partitionerna ( / partitionen) flaggad som bootbar.

Om du kör fdisk mot disken vilken säger den är bootbar, prova att ändra den till partitionen du vill att systemet skall boota ifrån.

Medlem sedan sep. 20005 700 inlägg
#18

GunnarD skrev:

Om jag kör fdisk mot disken jag bootar min linux burk på så är en av partitionerna ( / partitionen) flaggad som bootbar.

Om du kör fdisk mot disken vilken säger den är bootbar, prova att ändra den till partitionen du vill att systemet skall boota ifrån.

Den säger att Windows-partitionen är bootbar men det fungerar ändå inte. Är det det du menar?

267 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)