【 Repair-Volume 】コマンドレット――ディスク上のボリュームのエラーチェックと修復を行うWindows PowerShell基本Tips(105)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Repair-Volume」コマンドレットを解説します。

» 2024年05月23日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータに接続されたディスク上のボリュームのエラーチェックと修復を行う「Repair-Volume」コマンドレットです。

Repair-Volumeコマンドレットとは?

 パーティションやボリュームは、これまでも繰り返し解説してきた通り、OSからディスクに対してデータの読み書きを行うために必要な論理区分であり、指定したファイルシステムでフォーマットすることによってOSからデータの読み書きが可能になります。

 最近のファイルシステムは一昔前とは異なり、正常にシャットダウンせずにコンピュータの電源を切ったり、停電などの不可抗力に遭遇したりしても、めったに破損することはなくなりましたが、何らかの要因によって破損してしまう場合もあります。その場合、まずファイルシステムに対するエラーチェックを実施して、必要に応じて修復作業を行う、という手順を踏みます。

 ファイルシステムのエラーチェック方法としてまず思い付くのが、GUI(グラフィカルユーザーインタフェース)ツールから実施できる「エラーチェック」でしょう(画面1)。

ALT 画面1 GUIツールによるファイルシステムのチェックと結果

 エラーチェックはドライブの「プロパティ」にある「ツール」タブから実行可能で、問題が発見された場合は修復することも可能です。

 また、コマンドプロンプトの「chkdsk」コマンドもありますが、Windows PowerShellで同等の作業を実施する場合は今回紹介するRepair-Volumeコマンドレットを使用します。

Repair-Volumeコマンドレットの書式

Repair-Volume [オプション]


Repair-Volumeコマンドレットの主なオプション

オプション 意味
-DriveLetter エラーチェックを実施したいボリュームのドライブレターを指定する。「-ObjectID」オプション指定時には省略可能
-ObjectID エラーチェックを実施したいボリュームのオブジェクトIDを指定する。「-DriveLetter」オプション指定時には省略可能
-OfflineScanAndFix エラーチェックを読み取り/書き込みモードで実行する。省略可能
-Scan エラーチェックをスキャンモードで実行する。省略可能
-SpotFix エラーチェックをスポット修正モードで実行する。省略可能

Dドライブに対して読み取り/書き込みモードでエラーチェックを行う

 Repair-Volumeコマンドレットを「-OfflineScanAndFix」オプションを付けて実行すると、指定したボリュームをオフラインにしてスキャンし、エラーを発見した場合は修復を行います(画面2)。これは、chkdskコマンドの「/f」オプションと同等のものになります。

 なお、固定ディスクに対してRepair-Volumeコマンドレットを実行する際は、管理者権限が必要です。

コマンドレット実行例

Repair-Volume -DriveLetter D -OfflineScanAndFix

ALT 画面2 Dドライブに対してエラーチェックを実施して、イベントログで結果を確認した

 画面2のように、Repair-Volumeコマンドレットでは実行結果だけがシンプルに表示されます。chkdskコマンドのように詳細な内容を確認したい場合は、「イベントログ」の「アプリケーションログ」を確認する必要があります。

 「-OfflineScanAndFix」オプションは、チェック対象のボリュームを一時的にオフラインにするため、システムドライブであるCドライブには実行できません。Cドライブに実行した場合は、実行結果として「Failed」(失敗)が返されます(画面3)。

ALT 画面3 Cドライブに対して「-OfflineScanAndFix」オプションを付与してRepair-Volumeコマンドレットを実行すると、ボリュームをオフラインにできないため失敗する

Cドライブに対してスキャンモードでエラーチェックを行う

 Repair-Volumeコマンドレットを「-Scan」オプションを付けて実行すると、指定したボリュームをオンラインのまま、エラーチェックのみを行います(画面4)。これは、chkdskコマンドの「/scan」オプションと同等のものになります。

コマンドレット実行例

Repair-Volume -DriveLetter C -Scan

ALT 画面4 Cドライブに対してスキャンモードでエラーチェックを実施して、イベントログで結果を確認した

 Cドライブに対するエラーチェックのため、-OfflineScanAndFixオプションを付与して実行した場合はエラーが発生していますが、-Scanオプションの場合はエラーチェックが実施されていることが確認できます。

 なお、-Scanオプションはファイルシステムが「NTFS」(NT File System)の場合のみに使用可能であり、「ReFS」(Resilient File System)や「exFAT」(Extended File Allocation Table)といったNTFS以外のファイルシステムでは使用できません(画面5)。

ALT 画面5 NTFS以外のファイルシステムでは「-Scan」オプションが実行できない

ドライブレターが付与されていないボリュームでエラーチェックを行う

 ドライブレターが付与されていないボリュームに対して「Repair-Volume」コマンドレットを実行する場合は、「-ObjectID」オプションを使用します。

 エラーチェックを行うボリュームのオブジェクトIDは、本連載第100回で紹介した「Get-Volume」コマンドレットで取得できます。ここでは、本連載第94回で紹介した「Get-Partition」コマンドレットでパーティションを特定し、「Get-Volume」コマンドレットでオブジェクトIDを取得して指定する、という流れで実行しています(画面6)。

コマンドレット実行例

Repair-Volume -ObjectId (Get-Partition -DiskNumber 2 | Get-Volume).ObjectId -Scan

ALT 画面6 ドライブレターが設定されていないボリュームに対して、「-ObjectID」オプションでボリュームのオブジェクトIDを指定して実行した

 イベントログでの実行結果の中で「 のファイルシステムをチェックしています」とドライブレターが表示されていない(Cドライブに対してチェックを行った画面4では「C:」と表示されている)ところからも、ドライブレターが設定されていないボリュームに対して実行していることが分かります。

筆者紹介

後藤 諭史(ごとう さとし)

Microsoft MVP for Cloud and Datacenter Management(2012-2024)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。