Skip to content

磁盘管理

磁盘是计算机存储数据的核心设备,Windows 提供了多种工具来管理磁盘和分区。本章介绍磁盘管理的基本概念和操作方法。

磁盘基础概念

存储设备类型

类型说明特点
HDD(机械硬盘)传统磁盘存储容量大、价格低、速度慢
SSD(固态硬盘)闪存存储速度快、静音、价格较高
NVMe SSD高速固态硬盘极速读写、M.2 接口
USB 闪存盘便携存储即插即用、便于携带
SD 卡便携存储常用于相机、手机

分区类型

text
Windows 支持两种分区样式:

MBR(主引导记录)
├── 最多支持 4 个主分区
├── 最大支持 2TB 磁盘
├── 兼容性好
└── 传统 BIOS 启动

GPT(GUID 分区表)
├── 最多支持 128 个分区
├── 支持超大磁盘(18EB)
├── 更安全的数据结构
└── UEFI 启动必需

文件系统

文件系统说明适用场景
NTFSWindows 默认文件系统系统盘、大文件
FAT32兼容性好,单文件最大 4GBU 盘、小文件
exFAT扩展 FAT,支持大文件大容量 U 盘、跨平台
ReFS弹性文件系统服务器、存储池

基本磁盘与动态磁盘

text
基本磁盘
├── 最常用的磁盘类型
├── 包含主分区和扩展分区
└── 支持标准分区操作

动态磁盘
├── 支持高级功能
├── 跨区卷、带区卷、镜像卷
└── 已被存储空间取代(不推荐使用)

磁盘管理工具

图形界面工具

powershell
# 打开磁盘管理
diskmgmt.msc

# 通过计算机管理
compmgmt.msc  # 存储 → 磁盘管理

# 通过设置
# 设置 → 系统 → 存储 → 高级存储设置 → 磁盘和卷

命令行工具

powershell
# diskpart - 强大的磁盘管理工具
diskpart

# PowerShell 磁盘管理命令
Get-Disk
Get-Partition
Get-Volume

# fsutil - 文件系统工具
fsutil fsinfo volumeinfo C:

使用磁盘管理工具

查看磁盘信息

powershell
# 使用 PowerShell 查看磁盘
Get-Disk

# 查看详细信息
Get-Disk | Format-List *

# 查看特定磁盘
Get-Disk -Number 0

# 查看分区信息
Get-Partition

# 查看卷信息
Get-Volume

# 查看磁盘物理信息
Get-PhysicalDisk

# 使用 diskpart 查看
diskpart
list disk        # 列出磁盘
list volume      # 列出卷
list partition   # 列出分区

初始化新磁盘

powershell
# 方法一:使用 PowerShell
# 查看未初始化的磁盘
Get-Disk | Where-Object PartitionStyle -eq 'RAW'

# 初始化磁盘(MBR 分区样式)
Initialize-Disk -Number 1 -PartitionStyle MBR

# 初始化磁盘(GPT 分区样式)
Initialize-Disk -Number 1 -PartitionStyle GPT

# 方法二:使用 diskpart
diskpart
select disk 1
clean                    # 清除磁盘(注意:会删除所有数据)
convert gpt              # 转换为 GPT
# 或
convert mbr              # 转换为 MBR

创建分区

powershell
# 创建新分区
New-Partition -DiskNumber 1 -Size 100GB -DriveLetter D

# 创建分区并格式化
New-Partition -DiskNumber 1 -Size 100GB -DriveLetter D |
    Format-Volume -FileSystem NTFS -NewFileSystemLabel "数据盘" -Confirm:$false

# 创建使用所有剩余空间的分区
New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter E |
    Format-Volume -FileSystem NTFS -Confirm:$false

# 使用 diskpart 创建分区
diskpart
select disk 1
create partition primary size=102400  # 创建 100GB 分区
format fs=ntfs quick
assign letter=D

格式化分区

powershell
# 格式化卷
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "数据盘"

# 快速格式化
Format-Volume -DriveLetter D -FileSystem NTFS -Quick

# 指定分配单元大小
Format-Volume -DriveLetter D -FileSystem NTFS -AllocationUnitSize 4096

# 格式化为 FAT32
Format-Volume -DriveLetter E -FileSystem FAT32

# 使用 diskpart 格式化
diskpart
select volume D
format fs=ntfs quick label="数据盘"

调整分区大小

powershell
# 查看分区大小
Get-Partition -DriveLetter C | Select-Object Size, DriveLetter

# 扩展分区(需要相邻未分配空间)
Resize-Partition -DriveLetter C -Size 200GB

# 扩展到最大可用空间
$MaxSize = (Get-PartitionSupportedSize -DriveLetter C).SizeMax
Resize-Partition -DriveLetter C -Size $MaxSize

# 缩小分区
Resize-Partition -DriveLetter D -Size 50GB

# 使用 diskpart 调整大小
diskpart
select volume C
extend size=10240   # 扩展 10GB
extend              # 扩展所有可用空间
shrink desired=10240  # 缩小 10GB

删除分区

powershell
# 删除分区(注意:会删除所有数据)
Remove-Partition -DriveLetter D -Confirm:$false

# 删除磁盘上的所有分区
Get-Partition -DiskNumber 1 | Remove-Partition -Confirm:$false

# 清除整个磁盘
Clear-Disk -Number 1 -RemoveData -Confirm:$false

# 使用 diskpart 删除分区
diskpart
select disk 1
select partition 1
delete partition

更改驱动器号

powershell
# 更改驱动器号
Set-Partition -DriveLetter D -NewDriveLetterLetter E

# 添加驱动器号
Add-PartitionAccessPath -DiskNumber 1 -PartitionNumber 1 -AccessPath "F:"

# 移除驱动器号
Remove-PartitionAccessPath -DiskNumber 1 -PartitionNumber 1 -AccessPath "F:"

# 使用 diskpart 更改驱动器号
diskpart
select volume D
assign letter=E
remove letter=D

磁盘维护

检查磁盘错误

powershell
# 使用 chkdsk 检查磁盘
# 检查 C 盘(只读模式)
chkdsk C:

# 检查并修复错误
chkdsk C: /F

# 检查坏扇区
chkdsk C: /R

# 强制卸载卷
chkdsk C: /F /X

# 使用 PowerShell
Repair-Volume -DriveLetter C -Scan        # 扫描
Repair-Volume -DriveLetter C -SpotFix     # 快速修复
Repair-Volume -DriveLetter C -OfflineScanAndFix  # 离线修复

磁盘碎片整理

powershell
# 分析磁盘碎片
defrag C: /A

# 优化磁盘
defrag C: /O

# 传统碎片整理
defrag C:

# 完全优化
defrag C: /D

# 优化所有磁盘
defrag /C /O

# 使用 PowerShell
Optimize-Volume -DriveLetter C -Analyze   # 分析
Optimize-Volume -DriveLetter C -Defrag    # 碎片整理
Optimize-Volume -DriveLetter C -Trim      # TRIM(SSD)

磁盘清理

powershell
# 打开磁盘清理工具
cleanmgr

# 打开特定驱动器的磁盘清理
cleanmgr /d C:

# 打开高级清理选项
cleanmgr /sageset:1
cleanmgr /sagerun:1

# 使用 PowerShell 清理临时文件
# 清理临时文件夹
Remove-Item -Path "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Windows\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue

# 清理回收站
Clear-RecycleBin -Force

# 清理 Windows 更新缓存
Remove-Item -Path "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue

查看磁盘使用情况

powershell
# 查看磁盘空间
Get-PSDrive -PSProvider FileSystem

# 查看详细磁盘信息
Get-CimInstance -ClassName Win32_LogicalDisk | 
    Select-Object DeviceID, 
                  @{N='Size(GB)';E={[math]::Round($_.Size/1GB,2)}}, 
                  @{N='Free(GB)';E={[math]::Round($_.FreeSpace/1GB,2)}},
                  @{N='Used(%)';E={[math]::Round(($_.Size - $_.FreeSpace) / $_.Size * 100, 2)}}

# 查看文件夹大小
$folder = "C:\Users"
$size = (Get-ChildItem -Path $folder -Recurse -Force -ErrorAction SilentlyContinue | 
         Measure-Object -Property Length -Sum).Sum / 1MB
Write-Host "$folder 大小: $([math]::Round($size, 2)) MB"

# 查看大文件
Get-ChildItem -Path C:\ -Recurse -Force -ErrorAction SilentlyContinue | 
    Where-Object { $_.Length -gt 100MB } | 
    Select-Object FullName, @{N='Size(MB)';E={[math]::Round($_.Length/1MB,2)}} |
    Sort-Object 'Size(MB)' -Descending

存储空间

什么是存储空间

存储空间是 Windows 内置的软件定义存储解决方案:

  • 将多个物理磁盘组合成存储池
  • 创建具有不同冗余级别的虚拟磁盘
  • 支持故障恢复和数据保护

创建存储空间

powershell
# 查看物理磁盘
Get-PhysicalDisk

# 创建存储池
$disks = Get-PhysicalDisk | Where-Object CanPool -eq $true
New-StoragePool -FriendlyName "MyPool" -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks $disks

# 创建虚拟磁盘(简单模式)
New-VirtualDisk -StoragePoolFriendlyName "MyPool" -FriendlyName "MyDisk" -Size 1TB -ResiliencySettingName Simple

# 创建虚拟磁盘(镜像模式)
New-VirtualDisk -StoragePoolFriendlyName "MyPool" -FriendlyName "MyDisk" -Size 1TB -ResiliencySettingName Mirror

# 创建虚拟磁盘(奇偶校验模式)
New-VirtualDisk -StoragePoolFriendlyName "MyPool" -FriendlyName "MyDisk" -Size 1TB -ResiliencySettingName Parity

# 初始化虚拟磁盘并创建卷
Get-VirtualDisk -FriendlyName "MyDisk" | 
    Initialize-Disk -PartitionStyle GPT -PassThru | 
    New-Partition -AssignDriveLetter -UseMaximumSize | 
    Format-Volume -FileSystem NTFS -NewFileSystemLabel "Storage"

管理存储空间

powershell
# 查看存储池
Get-StoragePool

# 查看虚拟磁盘
Get-VirtualDisk

# 扩展虚拟磁盘
Resize-VirtualDisk -FriendlyName "MyDisk" -Size 2TB

# 修复虚拟磁盘
Repair-VirtualDisk -FriendlyName "MyDisk"

# 添加磁盘到存储池
Add-PhysicalDisk -StoragePoolFriendlyName "MyPool" -PhysicalDisks (Get-PhysicalDisk -FriendlyName "新磁盘")

BitLocker 加密

启用 BitLocker

powershell
# 查看 BitLocker 状态
Get-BitLockerVolume

# 启用 BitLocker(使用密码)
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -PasswordProtector

# 启用 BitLocker(使用 TPM)
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector

# 备份恢复密钥
Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId "密钥ID"

# 暂停加密
Suspend-BitLocker -MountPoint "C:"

# 恢复加密
Resume-BitLocker -MountPoint "C:"

管理 BitLocker

powershell
# 解锁驱动器
Unlock-BitLocker -MountPoint "D:" -Password

# 禁用 BitLocker
Disable-BitLocker -MountPoint "C:"

# 更改密码
$SecureString = ConvertTo-SecureString "新密码" -AsPlainText -Force
Set-BitLockerVolume -MountPoint "C:" -NewPassword $SecureString -PasswordProtector

# 添加恢复密钥
Add-BitLockerKeyProtector -MountPoint "C:" -RecoveryPasswordProtector

磁盘配额

启用磁盘配额

powershell
# 启用磁盘配额
fsutil quota track C:

# 设置配额限制
fsutil quota modify C: 1073741824 2147483648 用户名
# 参数:卷、软限制(字节)、硬限制(字节)、用户名

# 查看配额信息
fsutil quota query C:

# 禁用磁盘配额
fsutil quota disable C:

图形界面配置

text
1. 右键点击驱动器 → 属性
2. 点击"配额"选项卡
3. 勾选"启用配额管理"
4. 设置默认配额限制
5. 点击"配额项"查看和配置用户配额

磁盘性能监控

性能计数器

powershell
# 查看磁盘性能计数器
Get-Counter -Counter "\PhysicalDisk(*)\Disk Read Bytes/sec"
Get-Counter -Counter "\PhysicalDisk(*)\Disk Write Bytes/sec"
Get-Counter -Counter "\PhysicalDisk(*)\% Disk Time"

# 持续监控
Get-Counter -Counter "\PhysicalDisk(*)\% Disk Time" -Continuous

# 查看磁盘队列
Get-Counter -Counter "\PhysicalDisk(*)\Avg. Disk Queue Length"

磁盘健康状态

powershell
# 查看 SMART 信息(需要管理员权限)
Get-WmiObject -Namespace root\wmi -Class MSStorageDriver_FailurePredictStatus

# 查看磁盘信息
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus

# 查看磁盘详细信息
Get-Disk | Select-Object Number, FriendlyName, OperationalStatus, HealthStatus, Size

小结

本章介绍了 Windows 磁盘管理的主要内容:

  1. 磁盘基础:了解磁盘类型、分区样式和文件系统
  2. 磁盘管理工具:使用图形界面和命令行工具
  3. 分区操作:创建、格式化、调整和删除分区
  4. 磁盘维护:检查错误、碎片整理和磁盘清理
  5. 存储空间:创建和管理存储池
  6. BitLocker:加密保护磁盘数据
  7. 磁盘配额:限制用户磁盘使用量
  8. 性能监控:监控磁盘性能和健康状态

建议:

  • 定期检查磁盘健康状态
  • SSD 不需要进行碎片整理
  • 重要数据使用 BitLocker 加密
  • 定期清理磁盘空间
  • 使用存储空间实现数据冗余