Hallo Dirk,
Dirk Thierbach schrieb:
> Martin Schoenbeck <
ms.usene...@schoenbeck.de> wrote:
>>>> Nee, nat�rlich nicht. Deshalb fragte ich, ob Du liest, worauf Du
>>>> antwortest. Linux hat die Platte schlicht mit einer falschen Gr��e erkannt.
>>>> Das kann am Konverter gelegen haben, mu� aber ebenfalls nicht.
>
>>> Woran sollte es sonst gelegen haben? Direkt an SATA klappt es ja.
>
>> Eine beeindruckende Analyse.
>
> An der was genau falsch ist?
>
>>>> Wenn der nur 32-Bit-Zugriffe unterst�tzt, kann er eben keine
>>>> gr��eren Platten melden.
>
>>> Huh? Wie stellst Du Dir das konkret vor?
>
>> Wenn er nur Read Capacity (10) unterst�tzt, ist mit 2 TiB eben Ende.
>
> Dann kann man ja einfach READ_CAPACITY(16) nehmen. Wenn die Bridge,
> wie Du vermutest, die Kommandos einfach durchreicht, sollte es ja
> gehen.
Ich habe keineswegs vermutet, da� die Bridge die Kommandos einfach
durchreicht. Vielmehr sollte mich das wundern. Schlie�lich ist keine Platte
gezwungen, �berhaupt ATAPI-Kommandos zu implementieren. Ich wei� nicht, ob
die das inzwischen quasi standardm��ig machen. Ich hatte im Kopf, da�
Platten das nicht einmal sollen, aber das konnte ich in den Standards nicht
wiederfinden. Aber sie m�ssen es jedenfalls nicht. Also sollte der Adapter
wohl die Kommandos interpretieren und in non-packet-commands umsetzen. Oder
er mu� unterscheiden, ob die Platte packet-commands kann und dann anders
agieren. Aber wozu sollte er.
Nur _wenn_ er die Platte mit packet-commands anspricht, _dann_ w�re es
ziemlich bl�dsinnig, (16)-Kommandos entgegenzunehmen und sie dann nicht
einfach weiterzuleiten oder gar (wie Du es vermutetest) sie m�hsam in ein
(10)-Kommando umzusetzen. Wo man ja vorher wei�, da� das nicht geht.
>> Jedenfalls bei 512-Byte-Sektoren. In fr�heren Versionen gab's �brigens noch
>> keine Anforderung, 32 Einsen zu melden, wenn das Ger�t die m�gliche
>> Kapazit�t �berschreitet. Ist zwar eigentlich auch die logische L�sung, aber
>> zumindest macht die Meldung einer zu kleinen Kapazit�t ja erstmal nichts
>> kaputt.
>
> Es fuehrt halt dazu, dass der Linux-Kernel evtl. READ_CAPACITY(16) gar
> nicht erst probiert. Die Bedingungen dazu sind etwas komplex, die
> habe ich mir nicht genau angeschaut.
Wenn die Bridge READ CAPACITY (16) unterst�tzte, dann k�nnte man ihr sicher
vorwerfen, da� sie beim (10)er nicht mit ffen reagiert. Denn da steht es ja
im Standard. So hat man einfach das Problem, da� man als Benutzer wissen
mu�, da� das Ding nicht f�r mehr als zwei TB taugt.
>> In der Verarbeitung mu� nur dann ein Wurm sein, wenn das Ding �berhaupt
>> READ/WRITE (16) unterst�tzt.
>
> Na ja. Die Platte muss es unterstuetzen.
Das mu� sie nicht.
> Wenn, wie Du behauptest, die
> Bridge die Kommandos einfach durchreicht, muss es in diesem Fall auch
> ueber USB gehen.
Wenn ich das denn behauptet h�tte.
> Weil dann die Bridge keinen Einfluss darauf hat,
> welche Kommandos "unterstuetzt" werden. Tut es aber offenbar nicht.
Sie mu� die Kommandos schon auch selbst kennen, weil sie sonst nicht wei�,
was sie dann an weiteren Daten herumschubsen mu�.
> Also bleibt nur uebrig, dass die Bridge die Kommandos nicht durchreicht,
> sondern sie in irgendeiner Form verarbeitet.
Nat�rlich. Aber kaum, indem sie sie in andere SCSI-Kommandos umsetzt.
>> Ansonsten liegt der Wurm bei Windows. Und wenn es READ/WRITE (16)
>> unterst�tzt und die Platte auch mit packet-commands anspricht, m��te
>> jemand schon mit dem Klammerbeutel gepudert sein, an den Kommandos
>> �berhaupt rumzubasteln, statt die stumpf durchzureichen.
>
> Verstehen tu ich's auch nicht, aber diese Erklaerung leuchtet mir
> eher ein, als dass die Windows-Programmierer zu bloed sind, das richtige
> Kommando zu benutzen.
Und dann festzustellen, da� die Bridge ein solches nicht kennt und dann
gef�lligst die Finger von der Platte zu lassen.
>> Ich tippe eher, da� Marc die Platte irgendwo per SATA mit Partitionen
>> versehen hat und Windows gesehen hat, da� diese 3 TB umfassen. Und sich gar
>> nicht um irgendwelche anderen Angaben geschert hat. Aber wer wei� das
>> schon.
>
> Das ist natuerlich moeglich. Man kann es ja einfach testen; man
> muss der Bridge nur die entsprechenden SCSI-Befehle schicken. Genauso
> kann man testen, ob es READ/WRITE(16) unterstuetzt.
>
> Man muss also gar nicht raten, man kann es herausfinden.
Ich mu� schon raten. Marc hat's ja inzwischen best�tigt.