Warum konvertiert mein Hyper-V die Festplatte in SCSI?

484
Franklin Yu

Ich habe eine SATA-Festplatte und habe Windows 10 darauf installiert. Nachdem ich Hyper-V aktiviert hatte, erstellte ich einige virtuelle Maschinen. Die VM sieht jedoch alle eine SCSI-Platte und ich kann nicht herausfinden, wie sie geändert werden kann. Sogar die übergeordnete Partition (siehe https://en.wikipedia.org/wiki/Hyper-V#Architecture ) enthält nur SCSI-Festplatten. Ich habe es im Geräte-Manager überprüft, auf der Registerkarte Details die Eigenschaft Hardware-IDs. Es sagt

SCSI\DiskSamsung_SSD_850_PRO_256G 

Während meine Festplatte soll in SATA nur verfügbar sein. Kann ich Hyper-V bitten, die SATA-Schnittstelle zu emulieren?

mehr hintergrund

Ich lasse Arch Linux als einen der Gäste laufen. Es zeigt, dass ich einen Treiber für das Gerät benötige wd719x. Ich gehe davon aus, dass es von Hyper-V emuliert wird. Es stellt sich heraus, dass es sich um eine sehr alte Festplatte von Western Digital handelt. Durch die Installation eines offiziellen Treibers kann dies behoben werden. Ich mache mir jedoch Sorgen, da die WD719x-Serie von Wester Digital nicht mehr unterstützt wird (selbst der Treiber wurde von der Website entfernt). Dies scheint sehr veraltet zu sein, was ich nicht brauche, weil ich eine neue VM erstelle und keine vor 10 Jahren erstellte VM betreibe.

0
Ist das wichtig? Das SCSI-Protokoll verfügt über dieselben Funktionen (und wahrscheinlich mehr) als ATA. grawity vor 5 Jahren 0
Die VMs sehen Ihre physische Festplatte nicht, sie sehen, was Hyper-V, IDE- und SCSI-Schnittstellen emuliert. Wenn Sie nicht bestimmte Tests durchführen möchten, spielt es keine Rolle, ob SATA oder SCSI. Die übergeordnete Partition ist das Hostbetriebssystem, daher wird die tatsächliche Hardware angezeigt. Wenn Sie einen Screenshot Ihrer falsch identifizierten Hardware posten können, würde ich das gerne sehen, da dies wirklich nicht möglich ist. Andernfalls würde Ihr System nicht booten (es sei denn, Ihr BIOS erstellt so etwas wie ein RAID-Array aus Ihren Festplatten). essjae vor 5 Jahren 0
@ grawity Erläuterte mein Anliegen in der aktualisierten Frage. Franklin Yu vor 5 Jahren 0
@essjae Der SCSI wird vom Hypervisor emuliert. Ich denke, Hyper-V sieht die SATA-Festplatten gut, aber ich kann nicht bestätigen, da Hyper-V (als Typ-1-Hypervisor) steuern kann, was angezeigt werden soll. Wenn Sie noch einen Screenshot wünschen, welche Informationen sind interessant? Die Maschine gehört meinem Arbeitgeber, also… Franklin Yu vor 5 Jahren 0
Verwenden Sie eine gen1- oder gen2-VM? Verbinden Sie eine vollständige physische Festplatte oder nur eine .vhd mit der VM? Beachten Sie, dass wd719x ein SCSI-_host-Adapter_ ist, keine Festplatte. grawity vor 5 Jahren 0
@grawity Ich füge eine virtuelle Festplatte an die VM an. Ich denke, wenn ich stattdessen eine physische Festplatte angeschlossen habe, hätte die VM die SATA-Schnittstelle der Festplatte direkt gesehen. (Mit Hilfe von VT-d?) Franklin Yu vor 5 Jahren 0

1 Antwort auf die Frage

0
grawity

Ich verbinde eine virtuelle Festplatte mit der VM

Dann legen Sie Ihre physische Festplatte in keiner Weise an und der Transport ist völlig irrelevant. Der Hypervisor fungiert selbst als Festplattencontroller der VMs und interagiert nicht mit dem physischen Speicher außer dem Lesen / Schreiben von Dateien. (Es ist nicht ungewöhnlich, VHDs auf einem externen SMBv3-Dateiserver zu speichern ...)

Ich lasse Arch Linux als einen der Gäste laufen. Es zeigt, dass ich einen Treiber für das Gerät wd719x benötige. Ich gehe davon aus, dass es von Hyper-V emuliert wird.

Ich vermute, dass dies nichts mit der Hardware Ihrer VM zu tun hat, ob emuliert oder nicht. Wahrscheinlich werden mehrere Warnungen angezeigt, dass Firmware fehlt, wenn mkinitcpio das initramfs-Image "fallback" erstellt.

Das reguläre initramfs ist genau an das System angepasst, auf dem es aufgebaut ist. Die "Fallback" -Variante überspringt die automatische Geräteerkennung und gibt so viele Blockgerätetreiber aus, wie sie finden könnten (so dass die gleichen initramfs auf vielen verschiedenen Rechnern bootfähig wären), obwohl das aktuelle System keine davon angeschlossen hat.

Wenn Sie in Hyper-V einen IDE / ATA-Controller ausgewählt haben, erhalten Sie in der Realität einen gewissen Standard ata_piix(wie in zu sehen lspci -v).

Wenn Sie eine VM der "Generation 2" verwenden und / oder einen SCSI-Controller hinzufügen, erhalten Sie über den hv_storvscTreiber einen nativen VMBus-basierten SCSI-Controller (Microsofts Mechanismus ähnlich wie virtio ).

Sogar die übergeordnete Partition sieht nur SCSI-Datenträger; Ich habe es im Geräte-Manager überprüft, auf der Registerkarte Details die Eigenschaft Hardware-IDs. Es sagt

SCSI\DiskSamsung_SSD_850_PRO_256G 

Das scheint im AHCI-Modus normal zu sein - obwohl ich keine offizielle Erklärung finden konnte, zumindest was Erstfahrer angeht.

(Von dem, was ich herausfinden konnte: Die einzige Alternative wäre gewesen IDE\, aber das ist keine wirklich gute Wahl - zum Beispiel wird davon ausgegangen, dass es primäre / sekundäre IDE-Kanäle und Master / Slave-Ports gibt, die in SATA / AHCI nicht vorhanden sind. Vielleicht haben die Windows-Entwickler herausgefunden, dass das Zuordnen von SATA zu SCSI einfacher ist als das Zuordnen zu IDE / PATA?

In jedem Fall wäre Windows nicht das erste Betriebssystem, das dies tut - Linux stellt IDE / ATA-Geräte seit der Kernel-Version 2.6 (2004) so ​​vor, als wären sie SCSI.)

Solange das übergeordnete Gerät als SATA-AHCI-Controller (mit Storahci, msahci oder Intels IRST-Treiber) angezeigt wird, sind Sie in Ordnung.

Der von Hyper-V bereitgestellte Festplattencontroller kann also nur IDE (ATA) oder SCSI sein. Warum gibt es keinen SATA-Controller? Ist es für einen Hypervisor zu kompliziert? Franklin Yu vor 5 Jahren 0
Wenn Sie einen AHCI-SATA-Controller meinen, wahrscheinlich, weil es für VMs keinen wirklichen Vorteil gibt, wenn sie bereits SCSI usw. haben? In VirtualBox haben Sie eine große Auswahl an Möglichkeiten für die Kompatibilität von Betriebssystemen und dergleichen, aber ich würde sagen, dass HyperV die gegenteiligen Ziele hat - Gen2-VMs haben nicht einmal irgendwelche PCI-Geräte, sondern nur den proprietären VMBus. grawity vor 5 Jahren 0