Pemecahan masalah pembaruan firmware drive
Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows 10
Windows 10, versi 1703 dan yang lebih baru mencakup kemampuan untuk memperbarui firmware HDD dan SSD yang telah disertifikasi dengan Firmware Upgradeable AQ (Kualifikasi Tambahan) melalui PowerShell.
Anda dapat menemukan informasi selengkapnya tentang fitur ini di sini:
- Memperbarui firmware drive di Windows Server 2016
- Memperbarui Firmware Drive Tanpa Waktu Henti di Ruang Penyimpanan Langsung
Pembaruan firmware dapat gagal karena berbagai alasan. Tujuan artikel ini adalah untuk membantu pemecahan masalah tingkat lanjut.
Catatan
Informasi dalam artikel ini, tergantung pada masalahnya, mungkin tidak cukup untuk sepenuhnya men-debug semua kemungkinan kasus kegagalan.
Masalah umum
Secara arsitektur, kemampuan baru ini bergantung pada API yang diterapkan di tumpukan penyimpanan Windows, yang dipanggil PowerShell. Tumpukan penyimpanan bergantung pada driver dan perangkat keras untuk menerapkan perintah yang ditentukan industri dengan benar. Ini menghasilkan beberapa titik di mana kegagalan dapat terjadi. Masalah yang paling umum diamati adalah:
- Drive tertentu tidak mengimplementasikan perintah standar industri dengan benar (tidak memiliki AQ.)
- API yang diperlukan untuk melakukan pembaruan tidak diimplementasikan atau rusak (jika driver pihak ke-3 digunakan).
- API berfungsi tetapi ada masalah dengan firmware itu sendiri (misalnya, gambar yang tidak valid/rusak).
Bagian berikut menguraikan informasi pemecahan masalah, bergantung pada apakah driver Microsoft atau pihak ketiga digunakan.
Mengidentifikasi perangkat keras yang tidak pantas
Cara tercepat untuk mengidentifikasi apakah perangkat mendukung set perintah yang benar adalah dengan meluncurkan PowerShell dan meneruskan objek PhysicalDisk yang mewakili disk ke cmdlet Get-StorageFirmwareInfo. Berikut contohnya:
Get-PhysicalDisk -SerialNumber 15140F55976D | Get-StorageFirmwareInformation
Dan berikut adalah contoh output:
PhysicalDisk : MSFT_PhysicalDisk (ObjectId = "{1}\\TOKLIMA-DL380\root/Microsoft/Windo...)
SupportsUpdate : True
NumberOfSlots : 1
ActiveSlotNumber : 0
SlotNumber : {0}
IsSlotWritable : {True}
FirmwareVersionInSlot : {0013}
Bidang SupportsUpdate, setidaknya untuk perangkat SATA dan NVMe, menunjukkan apakah fungsionalitas PowerShell bawaan dapat digunakan untuk memperbarui firmware.
Bidang SupportsUpdate selalu melaporkan "True" untuk perangkat yang dilampirkan SAS karena kueri untuk dukungan perintah yang sesuai tidak dimungkinkan dengan perintah standar industri.
Untuk memvalidasi apakah perangkat SAS mendukung kumpulan perintah yang diperlukan, ada dua opsi:
- Uji perangkat SAS melalui cmdlet Update-StorageFirmware dengan gambar firmware yang sesuai; Atau
- Konsultasikan dengan Katalog Windows Server untuk mengidentifikasi perangkat SAS mana yang berhasil mendapatkan FW Update AQ (https://www.windowsservercatalog.com/)
Opsi remediasi
Jika perangkat tertentu yang Anda uji tidak mendukung kumpulan perintah yang sesuai, kueri vendor Anda untuk melihat apakah firmware yang diperbarui tersedia yang menyediakan kumpulan perintah yang diperlukan, atau konsultasikan dengan Katalog Windows Server untuk mengidentifikasi perangkat untuk sumber yang menerapkan set perintah yang sesuai.
Pemecahan masalah dengan driver Pihak ketiga (SAS)
Komponen perangkat lunak yang paling erat berinteraksi dengan perangkat keras adalah driver port mini di tumpukan penyimpanan Windows. Untuk beberapa protokol penyimpanan, seperti SATA dan NVMe, Microsoft menyediakan driver Windows asli. Driver ini mendukung informasi debug tambahan. Namun, vendor perangkat keras dan perangkat lunak pihak ketiga dapat menulis driver miniport kustom untuk perangkat mereka. Dalam kasus ini, dukungan untuk informasi debug dapat bervariasi.
Untuk mengidentifikasi apa yang terjadi pada unduhan firmware dan mengaktifkan API yang dikirim ke tumpukan penyimpanan, terlepas dari driver miniport, lihat saluran log peristiwa berikut:
Pemantau Peristiwa - Log Aplikasi dan Layanan - Microsoft - Windows - StorDiag - Microsoft-Windows-Storage-ClassPnP/Operational
Saluran ini merekam informasi tentang API Windows yang dikirim ke driver miniport dan responsnya. Misalnya, kondisi kesalahan berikut terjadi ketika mencoba mengunduh gambar firmware ke perangkat SATA yang terhubung melalui SAS HBA yang tidak menerapkan terjemahan yang diperlukan dengan benar dari SAS ke SATA:
Get-PhysicalDisk -SerialNumber 44GS103UT5EW | Update-StorageFirmware -ImagePath C:\Firmware\J3E160@3.enc -SlotNumber 0
Berikut adalah contoh output-nya:
Update-StorageFirmware : Failed
Extended information:
A warning or error has been encountered during storage firmware update.
Incorrect function.
Activity ID: {1224482b-2315-4a38-81eb-27bb7de19c00}
At line:1 char:47
+ ... S103UT5EW | Update-StorageFirmware -ImagePath C:\Firmware\J3E160@3.en ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Update-StorageFirmware], CimException
+ FullyQualifiedErrorId : StorageWMI 4,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand,Update-StorageFirmware
PowerShell melemparkan kesalahan dan telah menerima informasi bahwa fungsi yang dipanggil (yaitu, API Kernel) salah. Kesalahan dapat berarti bahwa API tidak diimplementasikan oleh driver port mini SAS pihak ke-3 (benar dalam hal ini), atau bahwa API gagal karena alasan lain, seperti ketidakselarasan segmen unduhan.
EventData
DeviceGUID {132EDB55-6BAC-A3A0-C2D5-203C7551D700}
DeviceNumber 1
Vendor ATA
Model TOSHIBA THNSNJ12
FirmwareVersion 6101
SerialNumber 44GS103UT5EW
DownLevelIrpStatus 0xc0000185
SrbStatus 132
ScsiStatus 2
SenseKey 5
AdditionalSenseCode 36
AdditionalSenseCodeQualifier 0
CdbByteCount 10
CdbBytes 3B0E0000000001000000
NumberOfRetriesDone 0
Peristiwa ETW 507 dari saluran menunjukkan bahwa permintaan SCSI SRB gagal dan memberikan informasi tambahan bahwa SenseKey adalah '5' (Permintaan Ilegal), dan bahwa informasi AdditionalSense adalah '36' (Bidang Ilegal di CDB).
Catatan
Informasi ini diberikan langsung oleh miniport yang dimaksud dan keakuratan informasi ini akan tergantung pada implementasi dan kecanggihan driver miniport.
Dimungkinkan untuk kondisi kesalahan yang berbeda untuk menunjukkan kode kesalahan yang sama jika driver miniport tidak membedakan di antara mereka. Misalnya, mencoba mengunduh gambar firmware yang tidak valid melalui SAS HBA ke perangkat SATA (yang diharapkan gagal oleh perangkat) dapat mengakibatkan kode kegagalan yang identik.
Dalam kasus di mana protokol dicampur dan terjemahan terjadi, yaitu, SATA di belakang SAS, yang terbaik adalah menguji perangkat SATA yang terhubung langsung ke pengontrol SATA untuk mengesampingkannya sebagai masalah potensial.
Opsi remediasi
Jika driver pihak ke-3 diidentifikasi tidak menerapkan API atau terjemahan yang diperlukan, dimungkinkan untuk bertukar ke alternatif yang disediakan Microsoft untuk SATA (StorAHCI.sys) dan NVMe (StorNVMe.sys), atau hubungi vendor OEM atau HBA yang menyediakan driver SAS dan kueri jika versi yang lebih baru dengan dukungan yang tepat ada.
Pemecahan masalah lainnya dengan driver Microsoft (SATA/NVMe)
Ketika driver asli Windows, seperti StorAHCI.sys
atau StorNVMe.sys
digunakan untuk menggerakkan perangkat penyimpanan, dimungkinkan untuk mendapatkan informasi tambahan tentang kemungkinan kasus kegagalan selama operasi pembaruan firmware.
Di luar saluran Operasional ClassPnP, StorAHCI dan StorNVMe mencatat kode pengembalian spesifik protokol perangkat di saluran ETW berikut:
Pemantau Peristiwa - Log Aplikasi dan Layanan - Microsoft - Windows - StorDiag - Microsoft-Windows-Storage-StorPort/Diagnose
Log diagnostik tidak ditampilkan secara default dan dapat diaktifkan/ditampilkan dengan memilih "Lihat" di EventViewer lalu memilih "Tampilkan Log Analitik dan Debug" dari menu drop-down.
Untuk mengumpulkan entri log tingkat lanjut ini, aktifkan log, reproduksi kegagalan pembaruan firmware, dan simpan log diagnostik.
Berikut adalah contoh pembaruan firmware pada perangkat SATA yang gagal, karena gambar yang akan diunduh tidak valid (ID Peristiwa: 258):
EventData
MiniportName storahci
MiniportEventId 19
MiniportEventDescription Firmware Activate Completion
PortNumber 0
Bus 2
Target 0
LUN 0
Irp 0xffff8c84cd45aca0
Srb 0xffffab0024030bc0
Parameter1Name SrbStatus
Parameter1Value 130
Parameter2Name ReturnCode
Parameter2Value 0
Parameter3Name FeaturesReg
Parameter3Value 15
Parameter4Name SectorCountReg
Parameter4Value 0
Parameter5Name DriveHeadReg
Parameter5Value 160
Parameter6Name CommandReg
Parameter6Value 146
Parameter7Name NULL
Parameter7Value 0
Parameter8Name NULL
Parameter8Value 0
Peristiwa di atas berisi informasi perangkat terperinci dalam nilai parameter 2 hingga 6. Di sini kita melihat berbagai nilai register ATA. Spesifikasi ATA ACS dapat digunakan untuk mendekode nilai di bawah ini untuk kegagalan perintah Unduh Kode Mikro:
- Kode Pengembalian: 0 (0000 0000) (N/A - Tidak berarti karena tidak ada payload yang ditransfer.)
- Fitur: 15 (0000 1111) (Bit 1 diatur ke '1' dan menunjukkan "batalkan".)
- SectorCount: 0 (0000 0000) (N/A)
- DriveHead: 160 (1010 0000) (N/A – Hanya bit usang yang diatur.)
- Perintah: 146 (1001 0010) (Bit 1 diatur ke '1' yang menunjukkan ketersediaan data indra.)
Ini memberi tahu kami bahwa operasi pembaruan firmware dibatalkan oleh perangkat.
Tingkat informasi debug serupa tersedia di saluran ini saat menggunakan perangkat NVMe dengan driver NVMe asli Windows (StorNVMe.sys).