Forum: PC-Programmierung Unformatierte SATA Festplatte mit SCSI beschreiben und lesen


von Tim (Gast)


Lesenswert?

Hallo,
Wie der Titel schon sagt möchte ich eine Standard Festplatte mit SCSI 
Befehlen ansteuern.

Kann mir jemand Tipps geben wie ich das bewerkstellige oder kennt eine 
library?

von karadur (Gast)


Lesenswert?

Verwechselst du da evtl. SATA und SAS.( seriell attached SCSI )

von Tim (Gast)


Lesenswert?

Prinzipiell kann man ja an einen SAS Controller beides anschließen. Kann 
aber gut sein, dass das für SATA keine SCSI Kommandos mehr sind.

Dann einfacher. Gibt's da was für Windows und SAS?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Fangen wir doch mal am anderen Ende an:
Was willst Du erreichen?

Und mit welchem Betriebssystem?

von Tim (Gast)


Lesenswert?

Win7 und lesen und schreiben auf bestimmten Adressen.
Unter SCSI programming konnte ich schon was finden. Drdobbs ASPI scheint 
auch über Win7 zu gehen. Scheint aber über Windows nicht so trivial zu 
sein wegen protected Mode Umgehung.
Alternativ gibt es noch von tldp für Linux.

Interessant wäre jetzt, ob jemand noch andere Alternative kennt oder 
Erfahrungen damit berichten kann.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tim schrieb:
> Win7 und lesen und schreiben auf bestimmten Adressen.

Dafür aber musst Du keine SCSI-Kommandos an die Festplatte senden, das 
kann Windows auch so - indem Du die Festplatte als sogenanntes 
"Rawdevice" ansprichst.

Siehe 
https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx, 
im Abschnitt Remarks unter "Physical Disks and Volumes".


Und wozu willst Du auf einer nichtformatierten Festplatete "bestimmte 
Adressen" beschreiben und lesen? Was bezweckst Du damit?

von ./. (Gast)


Lesenswert?

Mit PLSCSI kann man SCSI mit der Platte sprechen.
Sogar USB-Stifte hoeren da zu.

Den Downloadlink musst Dir selber suchen,
ich bin ja nicht Uggel.

von Tim (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Dafür aber musst Du keine SCSI-Kommandos an die Festplatte senden, das
> kann Windows auch so - indem Du die Festplatte als sogenanntes
> "Rawdevice" ansprichst.
> Siehe
> 
https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx,
> im Abschnitt Remarks unter "Physical Disks and Volumes".

Danke das klingt interessant.

Rufus Τ. F. schrieb:
> Und wozu willst Du auf einer nichtformatierten Festplatete "bestimmte
> Adressen" beschreiben und lesen? Was bezweckst Du damit?

Zum Debuggen einer embedded Hardware die auf die Festplatte schreibt. 
Diese hat kein Betriebssystem drauf was ein Dateisystem mitbringt. Also 
hab ich die Wahl, entweder kann der PC roh drauf zugreifen oder meine 
Hardware bring ich ein Dateisystem bei. Ich habe mich für ersteres 
vorläufig entschieden.

./. schrieb:
> Mit PLSCSI kann man SCSI mit der Platte sprechen.
> Sogar USB-Stifte hoeren da zu.
>
> Den Downloadlink musst Dir selber suchen,
> ich bin ja nicht Uggel.

Klingt auch interessant. Find ich sicher schon.


Danke erstmal. Das klingt nach guten Alternativen. Ich werde mich 
erstmal darin einlesen.

von Georg (Gast)


Lesenswert?

Tim schrieb:
> Diese hat kein Betriebssystem drauf was ein Dateisystem mitbringt

Also das Embedded System ist von dir, und man soll das Zeug auf dem PC 
lesen können?

Für einfache Dateisysteme, hauptsächlich für FAT, gibt es Libraries für 
Controller. Das wäre bei weitem vorzuziehen vor einer Eigenkonstruktion.

Georg

von Tim (Gast)


Lesenswert?

Georg schrieb:
> Libraries für Controller

Was meinst du damit genau?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tim schrieb:
> Zum Debuggen einer embedded Hardware die auf die Festplatte schreibt.
> Diese hat kein Betriebssystem drauf was ein Dateisystem mitbringt. Also
> hab ich die Wahl, entweder kann der PC roh drauf zugreifen

OK, das ist 'ne Erklärung. Mit der beschrieben Methode solltest Du 
Erfolg haben, das funktioniert bei allen Massenspeichern (d.h. auch 
bei USB-Sticks) -- nur nicht bei vom System selbst genutzten Laufwerken.

Du kannst das so geöffnete Dateihandle auch als "memory mapped file" 
ansprechen, auf einem 32-Bit-System allerdings nur scheibchenweise (weil 
die Platte ziemlich sicher größer sein dürfte als die ca. 2 GB, die sich 
in einem Rutsch in den Adressraum von 32-Bit-Prozessen mappen lassen).

Viel Erfolg.

Tim schrieb:
> Was meinst du damit genau?

Damit meint er, daß Du Deine "embedded Hardware" dazu befähigen 
solltest, ein Dateisystem zu verwenden, und so den "raw"-Zugriff auf die 
Festplatte überflüssig machen. Kommt natürlich auf die Art und Menge der 
Daten an, die die "embedded Hardware" auf die Platte schreibt, und 
welche anderen Designvorgaben da noch existieren.

FAT32 aber ist selbst auf 8-Bit-Microcontrollern implementierbar.

von Georg (Gast)


Lesenswert?

Tim schrieb:
> Was meinst du damit genau?

Eine Library mit Routinen für FAT32, ohne ein Betriebssystem zu 
verwenden.

Man mag es kaum glauben, das gibt es sogar hier im Forum:

http://www.mikrocontroller.net/articles/AVR_FAT32

Georg

von Tim (Gast)


Lesenswert?

Auch sehr interessant. Toller Artikel. Dass die Problematik bei 
Speicherkarten sehr ähnlich ist, daran habe ich gar nicht gedacht.
Schau ich mir definitiv mal an. Wenn meine Hardware FAT32 kann, dann 
sollte die ebenso im Windows sichtbar sein? Klingt praktisch.

von Olelarson (Gast)


Lesenswert?

Ich habe als mit HxD gearbeitet:
https://mh-nexus.de/de/hxd/
Das ist ein Hex und Disk Editor. Da kann man Byteweise auf Festplatten 
(bei mir SD Karten) zugreifen.

von Tim (Gast)


Lesenswert?

Danke für die Hilfe und Anregungen. Habe nun die CreateFile Funktion 
verwendet. Läuft sogar richtig schnell.
Nachteilig ist natürlich der permanente Admin Modus und die Gefahr 
ausversehen auf C zu schreiben.

von Peter II (Gast)


Lesenswert?

Tim schrieb:
> Nachteilig ist natürlich der permanente Admin Modus und die Gefahr
> ausversehen auf C zu schreiben.

wieso permanent? Du kannst auch nur eine Anwendung als Admin ausführen.

von (prx) A. K. (prx)


Lesenswert?

./. schrieb:
> Mit PLSCSI kann man SCSI mit der Platte sprechen.
> Sogar USB-Stifte hoeren da zu.

Von SATA-HDDs/SSDs abgesehen arbeiten ohnehin viele Massenspeicher von 
Haus aus mit SCSI-Kommandos. Auch SATA-DVDs und die USB-Medien.

: Bearbeitet durch User
von Mikro 7. (mikro77)


Lesenswert?

A. K. schrieb:
> Von SATA-HDDs/SSDs abgesehen arbeiten ohnehin viele Massenspeicher von
> Haus aus mit SCSI-Kommandos. Auch SATA-DVDs und die USB-Medien.

Auch "IDE" CD/DVD Drives. (ATAPI/MMC)

von M. S. (siekmanski)


Lesenswert?

SCSI Pass Through Interface (SPTI)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.