Festplatte mit C++ klonen



  • Hallo!!
    ist es möglich, mit C++ festplatten zu klonen (S-ATA per USB ansprechen usw.) oder geht das erst mit Assembler.
    Eine von beiden Sprachen muss ich lernen. (Schule)


  • Mod

    Das ist mit Standard-C++ nicht möglich, C++ kennt keine Festplatten und Ähnliches. Es gibt natürlich Erweiterungen der Sprache, die sowas ermöglichen.

    Aber noch ein paar Rückfragen: Du willst eine bestimmte Sprache lernen, damit du damit ein Festplattenklonprogramm schreiben kannst? Warum nimmst du nicht ein fertiges? Und in deiner Schule wird tatsächlich Assembler gelehrt?



  • Solltest du Booten wollen, brauchst du wegen dem MBR Assembler bzw. mindestens einen vernünftigen Hex-Editor.
    Falls du es über ein Betriebssystem als untersatz machen willst, kannst du einfach über read und write funktionen gehen, das die die eine festplatte lesen und auf die andere bitweise schreiben.



  • Edit:
    @Sepp, unter linux kannst du festplatten als dateien ansprechen.



  • Ja an meiner Schule wird sowas gelehrt, ich habe die Wahl zwischen 2 Kursen.

    Okay, dann beschäftige ich mich mal mit Assembler!



  • Es wird auch schwerlich mit Assembler gehen.



  • Wie denn dann?



  • Meeeeeeep schrieb:

    Wie denn dann?

    Das ist OS abhängig! WinApi? jeweilige fs-tools für Linux!



  • Nein, es ist nicht OS-abhängig!
    Programme wie HDClone machen es ohne OS!



  • Meeeeeeep schrieb:

    Nein, es ist nicht OS-abhängig!
    Programme wie HDClone machen es ohne OS!

    Das du es so machen willst hast du nie erwähnt also braucht du dich auch ned wundern. Ich hab an eine Art partition magic gedacht.
    keine Ahnung wie HDClone und solche programme das machen aber vielleicht ist das ne art livecd?!
    Viel mit C++ wirst du dan aber nicht beschäftigt sein! :p


  • Mod

    Also um die ganzen Aussagen mal zu ordnen:

    Es gibt Betriebssystemfunktionen die das Klonen von Festplatten ermöglichen. Manche davon kann man direkt in C++ verwenden (wie /dev/hdx unter Linux), bei manchen muss man in C++ entsprechende Betriebssystemfunktionen aufrufen (z.B. WinApi). Auf jeden Fall ist es plattformabhängig.

    Eine plattformunabhängige Lösung muss ihr eigenes Mini-Betriebsystem mitbringen (welches dann auch eine C-Laufzeitumgebung enthalten kann), aber da wird man entweder etwas vorgefertigtes nehmen müssen oder man muss zu Assembler greifen.

    Aber generell: Festplattenklonen ist nicht wirklich ein gutes Problem um daran Programmieren zu lernen. Erstens ist es von der Vorgehensweise her nicht sehr spannend und zweitens wurde das Problem schon zig Mal gelöst, wodurch kein echter Bedar besteht es selber zu machen, falls man es umbedingt braucht.



  • Je nach dem wie viel Aufwand du treiben willst gibt es da verschiedene Möglichkeiten. Einmal kannst du das per Interrupt direkt programmieren.
    Diese Möglichkeit kann aber bei neueren Betriebssystemen aus Sicherheitsgründen eventuell nicht einfach umgesetzt werden.

    Eine weitere Möglichkeit ist, wenn du das bei Windows über eine xcopy Zeile realisierst. Die Parameter, die du bei deinen Windowsversion benötigst, musst du selbst nachsehen. Beispiel: auf Kommandozeile - xcopy /? oder xcopy32 /? eingeben - und die da gelisteten Parameter korrekt auswählen.

    Aber willst du die Wahl einer zu lernenden Programmiersprache nur von einem
    Programm abhängig machen?

    MfG f.-th.


Anmelden zum Antworten