PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ISCSI-Server: dd Festplatten-Image vergrößern



fry@linux
17.01.11, 00:04
Hallo,
nutze ein Festplatten-Image(komplette HDD mit dd kopiert) von WindowXP um dieses per ISCSI direkt zu booten. (funzt super!)
Leider ist das Image etwas zu klein geworden und ich möchte dieses gerne vergrößern.

Habe schon folgendes probiert(XP-Image: hdd.img):

1. dd if=/dev/zero bs=1024k count=4096 >> hdd.img
2. dann unter fdisk hdd.img alle Partitionen gelöscht und eine neue Partition mit Datensystem htfs/ntfs angelegt
3. losetup /dev/loop0 hdd.img -o 32256
4. dann ntfsresize -s 8000M /dev/loop0

Läuft alles durch, nur leider kommt beim booten (der Ladebalken von XP läuft schon) ein bluescreen + reset.
Ntfsresize sagt ja das Windows dann einmal chkdsk /f durchlaufen lassen soll, soweit kommt XP leider nicht.

PS: Kann man das Image auch dynamisch anwachsen lassen?

Danke für eure Hilfe!

Dodobo.reloaded
17.01.11, 06:54
Also erstmal: Du solltest dein Vorgehen noch etwas genauer ausführen. Ich musste es 2-3 mal lesen, um alles genau nachvollziehen zu können, dazu die Manpage von losetup nochmal öffnen. Ob die 32.256 was mit den Zahlen in 1. zu tun hat, kannst du sicherlich selbst mal vorrechnen. ;)

Das Vorgehen finde ich recht ungewöhnlich. Spätestens aber ab Schritt 2 hast du dir natürlich deine Daten im (vergrößerten) Image vernichtet (löschen der Partitionen) und nochmal partiell überschrieben (formatieren)!

Hättest du das nicht gemacht, hätte es mit deiner Idee mit 3. vielleicht etwas werden können - aber auch da verstehe zumindest ich nicht, wozu das für 4. gut sein soll. EIn Offset ist sinnvoll, wenn man ein Image einer Platte mit mehreren Partitionen mounten will (mount kennt die offset-Option auch). Aber ein resize-Programm weiß doch, dass es das Laufwerk vergrößern soll und zwar als ganzes. Aber vielleicht weißt du da mehr als ich, da ich solche Prozesse aus Datensicherheits- und -integritätsgründen vermeide.

Dynamisch anwachsen geht in VMs, woher du das bestimmt kennst. Im normalen Betrieb ist mir nichts bekannt, fragen wir mal Tante Google?

bla!zilla
17.01.11, 07:18
Hallo. Ich verstehe Punkt 2 in Verbindung mit Punkt 3 nicht. Kannst du das bitte näher beschreiben?

fry@linux
17.01.11, 07:35
Sorry, war gestern schon spät ;)

Also die 512*63=32256 sind der Offset um die erste Partition einzubinden. Um aber weiter an der Partion arbeiten zu können darf die Partition nicht gemountet sein. Deswegen habe ich sie mit losetup /dev/loop0 hdd.img -o 32256 eingebunden (das zumindest meine Idee).

In der manpage von ntfsresize steht folgendes:

To enlarge an NTFS filesystem, first you must enlarge the size of the underlying partition. This can be done using fdisk(8) by deleting the partition and recreating it with a larger size. Make sure it will not overlap with an other existing partition. Then you may use ntfsresize to enlarge the size of the filesystem.

-> deswegen Punkt 2.

Wo liegt mein Fehler? Gibts vielleicht einen einfacheren Weg?

PS: Ahh, könnte es sein das ich in Punkt 2. bereits den MBR gekillt habe?

bla!zilla
17.01.11, 08:03
Was für ein BSoD kommt denn?

fry@linux
17.01.11, 08:08
Kann man leider nicht erkennen, folgt gleich ein reboot.

Stormbringer
17.01.11, 08:20
Kannst Du denn ein Bootprotokoll anfertigen lassen, und es anschließend einsehen? (F8-Taste drücken, und Startprotokollierung auswählen)

bla!zilla
17.01.11, 08:20
Per F8 kann man den automatischen Neustart nach BSoD deaktivieren. Ist im Advanced Boot Menu einer der unteren Punkte.

fry@linux
17.01.11, 09:31
BSoD zeigt an:


UNMOUNTABLE_BOOT_VOLUME

bla!zilla
17.01.11, 09:40
Da scheint Windows die Art der Partitionserweiterung nicht zu mögen. MBR scheint i.O. zu sein, da die Kiste ja bootet. Möglicherweise ist das Dateisystem wrack. Kannst du ein chkdsk ausführen?

fry@linux
17.01.11, 09:54
Ich probiere gerade was anderes aus. Und zwar habe ich ja nun das defekte Image und noch ein funktionierendes Backup.

Habe beide Dateien gerade als loop-device eingehängt(nicht gemountet) und kopiere jetzt mal das Backup über das defekte Image(mit dd). Danach werde ich mal gucken ob ein Boot möglich ist, Partition sollte dann die Größe des Backups haben.
Danach hänge ich das Image mal über ISCSI an einem Win7 Rechner ein und lasse dort die Festplatte vergrößern und chkdsk durchlaufen.

Mal sehen ob das geht :rolleyes:

fry@linux
17.01.11, 10:52
Ok, das geht leider auch nicht.
Kann zwar das System starten wenn ich das Image eingespielt habe, aber sobald ich die Partition vergrößere kommt beim booten nun.


Fehler beim Laden des Betriebssystems

PS: Muss ich wohl nen komplett neues HDD Image anfertigen :(

Stormbringer
17.01.11, 13:28
Hast Du in der XP-Installation einen speziellen HDD-Controller eingerichtet?
Früher gab es mal Probleme bei dem Überspielen von images auf neue/größere Festplatten, wenn als HDD-Controller bspw. die Einheit von VIA, NVidia oder sonstwas eingetragen war. Man mußte dann vor der Erstellung des images den MS-Standard-Controller auswählen, daß System damit booten, und dann das image erstellen. Ggf. hilft es ja auch bei dir.

FM_81
17.01.11, 13:53
Lässt sich die vergrößerte hdd.img mit dem schon korrekt angegebenen Offset mounten? Wenn ja, würde ich sagen, Vergrößerung war OK.

Weiter evtl hier: http://www.goodells.net/multiboot/partsigs.htm
Insbesondere Absatz 'How does Windows XP remember drive letters? '

MfG, FM_81

Dodobo.reloaded
17.01.11, 14:32
Will mich nicht groß einmischen...

MBR scheint i.O. zu sein, da die Kiste ja bootet. Möglicherweise ist das Dateisystem wrack.
Das hat er bei 2., Teilsatz 2 gewrackt. Laut Manpage war das mit dem fdisk ja noch ok/ nötig, aber von neu Formatieren vor ntfsresize ist da keine Rede. ;) Aber ich glaube, das verstehe ich gerade falsch: Du hast gar nicht neu formatiert, sondern nur per FDISK die ID für NTFS für das Image eingestellt, oder?

Vielleicht liegt der Fehler beim Offset mit dem losetup. Probier doch mal das Image zu mounten. Wieviele Partitionen hat es überhaupt?



fdisk -l -u /Pfad/zum/Image.img

Wie du es einbindest, siehe ebenfalls hier:
http://wiki.ubuntuusers.de/Shell/dd#Partition-aus-einem-Image-der-gesamten-Platte-einbinden

Teste mal! Ich würde dabei aber noch Option ",ro" (ohne Leerzeichen davor!) anfügen, um Schreibschutz zu haben.

Vorm Verkleinern soll man ja immer unbedingt defragmentieren, bei NTFS. Beim Vergrößern macht da ja wenig Sinn. Aber vielleicht bringt das noch wen auf eine Idee und es sollte allgemein mal gesagt sein, für andere Leser. Aber vielleicht hilft es tatsächlich, vorher mal alle Daten an einem Klotz zu haben statt fragmentiert!? Defragmentieren solltest du unter Win machen.

Es gibt im Ubuntu-Wiki auch noch irgendwo ein Tool, was besser defragmentieren können soll. Wichtig ist aber vielleicht nur, dass nicht so viele Lücken mit freiem Speicher sind und nicht, wie zerstückelt die Dateien rumliegen. Aber auch das kann bei ntfsresize was ausmachen, solche Prozesse sind eben immer "so eine Sache".

Edit:


Gibts vielleicht einen einfacheren Weg?
Ja, sichere nur Partitionen, wenn dir das reicht (erspart dir das Rumgehampel mit Offsets) - und/ oder nimm das grafische Q/GParted, z.B. auf der Parted Magic (Live) CD. Damit oder auch mit dem Ubuntu-Installer kann man prima Partitionen verkleinern, vergrößern, verschieben...und alles wird gut. ;) Trotzdem vorher defragmentieren (beim Vergrößern evtl. nicht nötig, vielleicht aber doch - und es kann bessere Ergebnisse bringen)!

Edit 2:

An der Registry müsste eigentlich nix geändert werden bei einer 1:1-Kopie. Aber: Achte darauf, dass Win die Festplatte auch wieder als C: versteht und nicht etwa als D: oder ähnliches. Das hängt bei Win bekanntlich (mindestens bis XP) von der Reihenfolge ab, wie man die Platten an die Controller und Master/ Slaves hängt - aber zu Zeiten von SATA und Win7 musst du wohl einfach mal im BIOS schauen und die SATA-Anschlüsse auch mal umstöpseln. Weiß nicht, was du genau mit ISCSI meinst, aber auch da muss man das ja sicherlich virtuell irgendwie variieren können.

Boote doch mal die Win-CD oder ein Image davon, damit du weißt, ob das entsprechende Laufwerk/ Image nun als C: gilt oder als was anders. Dann klappt es hoffentlich auch bei der (virtualisierten ) Festplatte so...

Ich hoffe, man versteht mich.

fry@linux
17.01.11, 18:22
So, da bin ich wieder.
Also...

Aber ich glaube, das verstehe ich gerade falsch: Du hast gar nicht neu formatiert, sondern nur per FDISK die ID für NTFS für das Image eingestellt, oder?
Ja nur die ID gesetzt.

Also es ist wohl so, wenn ich unter Win7 die Partition vergrößere löscht er den MBR...deswegen dann "Fehler beim Laden des Betriebssystems".

Das mit dem Offset funktioniert alles wie es soll. Mounten, lesen, schreiben usw.
Nach dd if=/dev/zero bs=1024k count=4096 >> hdd.img ist nur noch Mist in fdisk -l zu sehen.

Kein Plan mehr.

Mit CD ist nix zu machen weil XP dort kein ISCSI unterstützt.

heatwalker
18.01.11, 13:29
Du könntest doch auch einfach ein zweites, grösseres, Image anlegen.
Dann beide mounten und die Originaldateien von 1 >> 2 kopieren. Den MBR per dd kopieren und auch in das neue Image schreiben.
Das sollte doch funktionieren!?

Dodobo.reloaded
18.01.11, 16:21
Den MBR per dd kopieren und auch in das neue Image schreiben.
Nur die ersten 446 Bytes: http://www.cyberciti.biz/faq/howto-copy-mbr/ (In der englischen Wikipedia ist das missverständlich, da in der Tabelle 446 statt 447 steht, was da meines Gedankens nach stehen sollte.)

Und dann muss er auf jeden Fall die UUIDs der Partitionen in der Registry anpassen (oder wie auch immer das da war/ ist...).

Aber um eine MBR-Neuinstallation mit der Win-CD wird er trotzdem nicht drumrum kommen, da der weitere Bootcode nun auf anderen Sektoren als vor dem Backup liegt und der Bootcode von Win (Version?) wahrscheinlich Block- statt Dateiweise adressiert wird.

fry@linux
26.01.11, 19:47
Hi,
melde mich mal wieder zurück....also XP ist gestorben, war mir einfach zu kompliziert die Platte zu vergrößern, man kann seine Zeit auch besser verschwenden ;)
Bin jetzt auf Windows7 umgestiegen, die Vorteile überwiegen dort einfach.

Habe jetzt auf einen alten Rechner VirtuellBox 4.0 laufen.
In der Box läuft Debian und stellt mir die Virtuelle-Festplatte für Windows7 über ISCSI als Target zur Verfügung.
Dank gpxe kann man Windows7 direkt auf die Platte installieren.

Super ist natürlich die Snapshotfunktion von VBox damit kann man sein System einfach wieder zurücksetzen (innerhalb weniger Sekunden).