web-dev-qa-db-fra.com

Comment puis-je déterminer la taille du secteur dans Windows

Comment puis-je déterminer la taille du secteur physique (par exemple, si j'ai un lecteur format avancé avec 4 096 secteurs d'octets plutôt que l'héritage 512 octets) dans Windows 7?

Je sais qu'en cliquant sur un fichier et en obtenant les propriétés, nous pouvons trouver le NTFS Taille du cluster, mais ce n'est pas la même chose que le secteur du disque dur .

Remarque : Nous posons des questions sur Windows 7, car il (et Windows Vista SP1) comprend l'existence de disques durs au format avancé 4096.

42
shotgunner

Vous voulez fsutil. Assurez-vous que vous exécutez l'invite de commande en tant qu'administrateur.

C:\Windows\system32>fsutil fsinfo ntfsinfo c:
NTFS Volume Serial Number :       0xf4ca5d7cca5d3c54
Version :                         3.1
Number Sectors :                  0x00000000378fd7ff
Total Clusters :                  0x0000000006f1faff
Free Clusters  :                  0x00000000000e8821
Total Reserved :                  0x0000000000000910
Bytes Per Sector  :               512
Bytes Per Physical Sector :       512
Bytes Per Cluster :               4096
Bytes Per FileRecord Segment    : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length :           0x00000000196c0000
Mft Start Lcn  :                  0x00000000000c0000
Mft2 Start Lcn :                  0x000000000097ffff
Mft Zone Start :                  0x000000000051f920
Mft Zone End   :                  0x000000000051f9a0
RM Identifier:        0652C3D3-7AA9-11DA-ACAC-C80AA9F2FF32
56
Chris Gessler

je voulais développer la réponse de Chris Gessler et noter qu'il n'existe aucun moyen connu d'obtenir le secteur physique d'un lecteur à l'aide de Windows Management Instrumentation (WMI). , par exemple wmic.

Étant donné que j’ai un lecteur de format avancé (c’est-à-dire qu’il utilise 4 096 octets par secteur plutôt que 512):

C:\Windows\system32>fsutil fsinfo ntfsinfo d:
NTFS Volume Serial Number :       0xa016d8a616d87eaa
Version :                         3.1
Number Sectors :                  0x00000000747057ff
Total Clusters :                  0x000000000e8e0aff
Free Clusters  :                  0x000000000e7b2813
Total Reserved :                  0x0000000000000000
Bytes Per Sector  :               512
Bytes Per Physical Sector :       4096

Ni WMI's DiskDrive:

wmic:root\cli>diskdrive
Availability  BytesPerSector  Capabilities  CapabilityDescriptions                                       Caption
              512             {3, 4, 10}    {"Random Access", "Supports Writing", "SMART Notification"}  ST1000DM003-9YN162 ATA Device

ni Partition:

wmic:root\cli>partition get BlockSize, StartingOffset, Name, Index
BlockSize  Index  Name                   StartingOffset
512        0      Disk #0, Partition #0  1048576

peut signaler le sous-jacent taille du secteur physique. Il est logique que vous réalisiez tous les deux qu'ils indiquent la taille du secteur que Windows est en utilisant. Il est 512 octets par secteur - le lecteur se trouve simplement être différent à l'intérieur.

En effet, seul Windows 8 supporte tilisation sur 4k secteurs. Windows 7 comprend que le disque peut être de 4k et travaille pour l'aligner sur 4k Clusters avec le 4k sous-jacent du disque dur - Secteurs .

28
Ian Boyd

Mise à jour Windows 10:

Il existe maintenant une sous-commande sectorInfo qui peut fournir de meilleures informations:

C:\>fsutil fsinfo sectorInfo C:

LogicalBytesPerSector :                                 512
PhysicalBytesPerSectorForAtomicity :                    4096
PhysicalBytesPerSectorForPerformance :                  4096
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
Device Alignment :                                      Aligned (0x000)
Partition alignment on device :                         Aligned (0x000)
Performs Normal Seeks
Trim Not Supported
26
Gregor
  1. Exécutez msinfo32 en ligne de commande avec une fenêtre graphique appelée "Informations système".
  2. Dans le volet de gauche, sélectionnez "Résumé système-> Composants-> Stockage-> Disques". Cela devrait charger les informations de tous les lecteurs dans le volet de droite
  3. Recherchez le lecteur souhaité et vérifiez la valeur "Octets/Secteur". il devrait dire "Octets/Secteur 4096"
13
AK S

Si vous voulez l'avoir par programme, vous devez envoyer IOCTL_DISK_GET_DRIVE_GEOMETRY_EX et utilise Geometry.BytesPerSector de DISK_GEOMETRY_EX structure

9
Anton Kukoba

Vous pouvez utiliser wmic à partir de la ligne de commande:

C:\Windows\System32\wmic partition get BlockSize, StartingOffset, Name, Index

BlockSize  Index  Name                   StartingOffset
512        0      Disk #0, Partition #0  32256
512        1      Disk #0, Partition #1  370195176960

Le BlockSize est la taille de secteur du lecteur.

4
Cyclonecode

Powershell:

$wql = "SELECT Label, Blocksize, Name FROM Win32_Volume WHERE FileSystem='NTFS'"
Get-WmiObject -Query $wql -ComputerName '.' | Select-Object Label, Blocksize, Name

Exemple de sortie:

Label            Blocksize Name
-----            --------- ----
OSDisk                4096 C:\
Windows RE Tools      4096 \\?\Volume{b042c778-cd66-4381-9312-3f4311321675}\
PS C:\>
4
The Stig

Si vous voulez vraiment l'avoir par programme, vous devez envoyer IOCTL_STORAGE_QUERY_PROPERTY fournissant STORAGE_PROPERTY_QUERY avec PropertyId défini sur StorageAccessAlignmentProperty. Cela donne à la fois des tailles de secteurs physiques et logiques.

Remarque: cela ne fonctionne que sur Windows Vista et supérieur.