Перечислите все устройстваHarddiskvolume.?

Я пробовал команды Diskpart, такие как" list "" volume "(нет, это не так)," disk "и" partition"; но он все еще не работает.

DeviceHarddiskvolume0, по-видимому, не используется, так как DeviceHarddiskvolume1 означает первый раздел Windows (он же "зарезервированная система") и DeviceHarddiskvolume2 для C:.

Итак, вопрос: как перечислить каждый DeviceHarddiskvolume в Windows ' 7 установочный диск (для редактирования BCD) ?

14
задан X.LINK
13.03.2023 22:34 Количество просмотров материала 3677
Распечатать страницу

4 ответа

как перечислить все Harddiskvolume в Windows?

это можно сделать с помощью diskpart.

Решение 1:

  1. Run diskpart.

  2. тип list volume список всех присоединенных дисках

  3. тип exit

пример:

F:\test>diskpart

Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: HAL

DISKPART> list volume

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D                       DVD-ROM         0 B  No Media
  Volume 1         System Rese  NTFS   Partition    100 MB  Healthy    System
  Volume 2     C                NTFS   Partition    449 GB  Healthy    Boot
  Volume 3         Recovery     NTFS   Partition     16 GB  Healthy    Hidden
  Volume 4     E   SANDISK      FAT32  Removable     59 GB  Healthy
  Volume 5     F   Expansion    NTFS   Partition   2794 GB  Healthy

DISKPART> exit

Leaving DiskPart...

F:\test>

решение 2:

  1. Run diskpart.

  2. тип list disk для вывода списка всех подключенных дисков.

  3. тип select disk # здесь # - номер диска.

  4. тип detail disk

  5. повторите шаги 3 и 4 для каждого диска.

  6. тип exit

пример вывода ниже показывает, что я в настоящее время есть 3 диска с 5 томами.

пример:

F:\test>diskpart

Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: HAL

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          465 GB      0 B
  Disk 1    Online           59 GB      0 B
  Disk 2    Online         2794 GB  7168 KB

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> detail disk

WDC WD5000LPVX-08V0TT5
Disk ID: D831FAA5
Type   : ATA
Status : Online
Path   : 0
Target : 0
LUN ID : 0
Location Path : PCIROOT(0)#ATA(C00T00L00)
Current Read-only State : No
Read-only  : No
Boot Disk  : Yes
Pagefile Disk  : Yes
Hibernation File Disk  : No
Crashdump Disk  : Yes
Clustered Disk  : No

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 1         System Rese  NTFS   Partition    100 MB  Healthy    System
  Volume 2     C                NTFS   Partition    449 GB  Healthy    Boot
  Volume 3         Recovery     NTFS   Partition     16 GB  Healthy    Hidden

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> detail disk

SanDisk Cruzer USB Device
Disk ID: 00000000
Type   : USB
Status : Online
Path   : 0
Target : 0
LUN ID : 0
Location Path : UNAVAILABLE
Current Read-only State : No
Read-only  : No
Boot Disk  : No
Pagefile Disk  : No
Hibernation File Disk  : No
Crashdump Disk  : No
Clustered Disk  : No

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 4     E   SANDISK      FAT32  Removable     59 GB  Healthy

DISKPART> select disk 2

Disk 2 is now the selected disk.

DISKPART> detail disk

Seagate Expansion Desk USB Device
Disk ID: 75447009
Type   : USB
Status : Online
Path   : 0
Target : 0
LUN ID : 0
Location Path : UNAVAILABLE
Current Read-only State : No
Read-only  : No
Boot Disk  : No
Pagefile Disk  : No
Hibernation File Disk  : No
Crashdump Disk  : No
Clustered Disk  : No

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 5     F   Expansion    NTFS   Partition   2794 GB  Healthy

DISKPART> exit

Leaving DiskPart...

F:\test>

Читать Далее

2
отвечен DavidPostill 2023-03-15 06:22

найден сценарий powershell со списком подключенных томов:

# Biuild System Assembly in order to call Kernel32:QueryDosDevice. 
   $DynAssembly = New-Object System.Reflection.AssemblyName('SysUtils')
   $AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly($DynAssembly, [Reflection.Emit.AssemblyBuilderAccess]::Run)
   $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('SysUtils', $False)

   # Define [Kernel32]::QueryDosDevice method
   $TypeBuilder = $ModuleBuilder.DefineType('Kernel32', 'Public, Class')
   $PInvokeMethod = $TypeBuilder.DefinePInvokeMethod('QueryDosDevice', 'kernel32.dll', ([Reflection.MethodAttributes]::Public -bor [Reflection.MethodAttributes]::Static), [Reflection.CallingConventions]::Standard, [UInt32], [Type[]]@([String], [Text.StringBuilder], [UInt32]), [Runtime.InteropServices.CallingConvention]::Winapi, [Runtime.InteropServices.CharSet]::Auto)
   $DllImportConstructor = [Runtime.InteropServices.DllImportAttribute].GetConstructor(@([String]))
   $SetLastError = [Runtime.InteropServices.DllImportAttribute].GetField('SetLastError')
   $SetLastErrorCustomAttribute = New-Object Reflection.Emit.CustomAttributeBuilder($DllImportConstructor, @('kernel32.dll'), [Reflection.FieldInfo[]]@($SetLastError), @($true))
   $PInvokeMethod.SetCustomAttribute($SetLastErrorCustomAttribute)
   $Kernel32 = $TypeBuilder.CreateType()

   $Max = 65536
   $StringBuilder = New-Object System.Text.StringBuilder($Max)

   Get-WmiObject Win32_Volume | ? { $_.DriveLetter } | % {
       $ReturnLength = $Kernel32::QueryDosDevice($_.DriveLetter, $StringBuilder, $Max)

       if ($ReturnLength)
       {
           $DriveMapping = @{
               DriveLetter = $_.DriveLetter
               DevicePath = $StringBuilder.ToString()
           }

           New-Object PSObject -Property $DriveMapping
       }
   }

источник: http://www.morgantechspace.com/2014/11/Get-Volume-Path-from-Drive-Name-using-Powershell.html

вывод выглядит так:

DevicePath               DriveLetter
----------               -----------
\Device\HarddiskVolume2  F:         
\Device\HarddiskVolume7  J:         
\Device\HarddiskVolume10 D:         
\Device\HarddiskVolume12 E:         
\Device\HarddiskVolume5  C:    
2
отвечен merle 2023-03-15 08:39

почему я не смог сделать это HarddiskVolume не отражает объемы программы diskpart-которая только перечисляет все окна читаемые Тома.

на самом деле, он работает со всеми разделами, доступными на диске-даже не-Windows, - по порядку они выглядят как в Gparted Linux.

например, если у вас есть sda4 перед sda3, этот последний будет отображаться как-sda4, то sda3 - (HarddiskVolume4, то HarddiskVolume3).

Итак, это означает, что HarddiskVolume0 в основном не существует в BCD.

команды, которые помогли мне понять, что это:

mountvol /L

bootsect /nt60 all /force   ->   Be careful with that one !!!

эти ссылки также помогли если у вас есть запасные окна, просто запустите DriveLetterView чтобы увидеть, как Windows работает с HarddiskVolume.

Примечание: harddiskvolume является обозначением WMI/COM

1
отвечен X.LINK 2023-03-15 10:56

Если вы хотите просто узнать, где ваша система BCD магазин взглянуть на\REGISTRY\MACHINE \ BCD00000000 значение в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist раздел реестра. Да, его расположение может отличаться от \Device\HardDiskVolume1, даже если он находится на 1-м разделе 1-го физического диска.

-1
отвечен GCRaistlin 2023-03-15 13:13

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх