web-dev-qa-db-ja.com

「未割り当て領域」とは実際には何ですか?

繰り返しになりますが、ここでは、いくつかのHDDとファイルシステムの概念に頭を回そうとしています。

Windowsがドライブに「未割り当て領域」があると表示し、ドライブを初期化するように要求する場合、これは正確に何を意味するのでしょうかドライブにファイルシステムがないか、ファイルシステムがWindowsによって認識されていないことを意味します) ?

未割り当て領域の概念はWindowsのものですか、それともハードドライブのものですか?他のオペレーティングシステムが未割り当て領域に書き込むことは可能ですか

もしそうなら、これは、Windowsの外では、ファイルシステムはハードドライブに書き込む必要がないことを意味しますか?

32
Hashim

慣習的に、ハードドライブ(またはUSBサムドライブなどの同等のもの)には、パーティションテーブルがあります。 MBR( マスターブートレコード )スタイルのパーティションテーブルは、ドライブ(セクター番号0)の先頭の1セクター(512バイト)に収まります。 MBRには ブートローダー も含まれているため、パーティションテーブルスペースは4つの「プライマリ」パーティションに制限されます(1980年代のソフトウェアでは8つのパーティションをサポートしていました)。各MBRパーティションエントリには次のものがあります。

  • 対応するパーティションがNTFS、FAT-32(4つのフレーバー)、FAT-16(8つのフレーバー)、FAT-12、Linuxスワップ領域などであることを示すタイプコード(1バイト)。パーティションコード0(ゼロ)は「raw」、または「意味のないコンテンツ」、「またはパーティションのコンテンツを無視」。
  • パーティションに起動可能フラグが設定されているかどうか。ディスクごとに最大1つのパーティションでこのフラグを有効にできます。
  • パーティションの開始セクターのディスクアドレス
  • パーティションの終了セクター、またはセクター数。 初期のPCはシリンダー/ヘッド/セクター番号を使用していました。 1995年頃以降、「論理ブロック番号」を使用して、単一の32ビット値がcyl/head/sectアドレッシングを置き換えました

最大4つのパーティションにすぐに耐えられなくなったため、追加のパーティションのメカニズムはMBRで「 拡張パーティション 」でした。この場合、特別にマークされたパーティションに、別のパーティションテーブルを含む埋め込みMBRを含めることができます。したがって、一部のパーティショニングツールは人為的な制限を課す可能性がありますが、ディスクを数十のパーティションに分割することが可能です。

[〜#〜] gpt [〜#〜] は、本質的に4つのパーティションに限定されません。その基本はディスク上で512バイト以上を占め、通常は4〜16メガバイトの範囲です。ただし、パーティションの意味は同じです。


ディスクのすべてのセクターが含まれているディスクのパーティションテーブルには、フレーズの最も一般的な使用法による「未割り当て領域はありません」。したがって、あなたの質問に対する通常の答えは、未割り当てスペースはすべてのパーティションの外側であるということです。ただし、パーティションがタイプ0(raw)としてマークされている場合、用語のあいまいさが発生するため、何らかの意味で未割り当てパーティションと見なされるツールが存在する可能性があります。

Windowsがドライブに「未割り当て領域」があると表示し、ドライブを初期化するように要求する場合、これは正確に何を意味するのですか?ドライブにファイルシステムがないか、ファイルシステムがWindowsで認識されていないだけですか?

つまり、パーティションテーブルがないか、すべてのパーティションエントリが空です。 Windowsは、認識されていないファイルシステムを無視して問題ありません。

未割り当て領域の概念はWindowsのものですか、それともハードドライブのものですか?つまり、他のオペレーティングシステムが未割り当て領域に書き込むことは可能ですか?

これは、PCソフトウェアをサポートするすべての標準オペレーティングシステムで監視されているハードドライブの規則です。 "言い換えれば"の意味がわからない。はい、未割り当て領域に書き込むことは可能ですが(Windowsでも)、適切なエチケットは、未割り当て領域を含むパーティションを作成し、その中にファイルシステムをフォーマットし(「未割り当て領域」に書き込む)、次にファイルを書き込むことですそしてそれにディレクトリ。

もしそうなら、これはWindowsの外では、ハードドライブに書き込むためにファイルシステムが必要ないことを意味しますか?

正常に動作するシステムの場合、違います。協調型システムでは、ファイルシステムを配置したり、権限を適切に設定したりする必要があります。ただし、Linux(たとえば)では、ディスク自体を大きなファイル(生のディスクアクセス)として開いて直接書き込むのは簡単です。書き込み先を決定するには、管理アクセスといくつかのガイダンスまたは計算が必要になります。

ただし、ファイルシステムとパーティションを無視することはbadです。それらはディスク管理を大幅に改善し、人生をより簡単にそしてより健全にします。最終的に、正気と善良なマナーを完全に無視して、ディスク上のどこにでも書き込むことができる反逆ソフトウェアを書くことは可能です

ただし、この質問から私が理解するメタネスは、Windows、Linuxなどの非管理者/非システムモードによって課される権限と制限に従うつもりかどうかを誤解している可能性があります。

6
wallyk

他のオペレーティングシステムが未割り当て領域に書き込むことは可能ですか?

はい、パーティションの内外にかかわらず、どのOSでも常にディスクの場所に書き込むことができます。

パーティションは、OSの領域のリストにすぎません使用に同意する –ディスクは常に単一の連続したストレージメディアとして動作し、 知っている パーティション分割されることに注意してください。

(実際、パーティションテーブルitselfは同じディスクのセクター0〜32ishに保存されています。fdiskdiskpartなどのツールがパーティションを編集する場合、すべての作業はそれらのセクターに格納されているテーブルを更新します。)

これは、Windows以外では、ハードドライブに書き込むためにファイルシステムが必要ないことを意味しますか。

厳密にほとんどのオペレーティングシステムでは必要ありません。十分な権限を持つプログラムは、Linuxの/dev/sda4やWindowsの\\.\Device\Harddisk5\DR5などのrawデバイスファイルを開いて、任意の場所にバイトを読み書きできます。

プログラムは、実際に独自のプライベートファイルシステムをそのように発明したり、他の構造を使用したりできます(たとえば、DBをrawパーティションに書き込むSQLデータベースエンジンがあります)。または、どこにでもデータをダンプできます。

ご存知のファイルシステムは、OS内のすべてのプログラムがshareに同じドライブまたはパーティションを許可するだけです。 OSはスペースの割り当てや信頼性などを処理し、プログラムはファイルやフォルダー以外のことを考える必要がありません。

Windowsがドライブに「未割り当て領域」があると表示し、ドライブを初期化するように要求する場合、これは正確に何を意味するのですか?ドライブにファイルシステムがないか、ファイルシステムがWindowsで認識されていないだけですか?

「ディスクの管理」アプリがドライブをinitializedにするように要求する場合、それはパーティションテーブル(これは、割り当てられている領域とありません)。

WindowsはMBRおよびGPTパーティションテーブルを認識しますが、このプロンプトが表示された場合、どちらも見つからなかったことを意味します。したがって、Windowsはファイルシステムを確認することすらできません。ファイルシステムが存在するかどうかはわかりませんwhere

ただし、Windowsが認識されないファイルシステムのパーティションを検出すると、「ディスクの管理」-しないフォーマットするか、または上書きするように求められます–認識されないファイルシステムがあるパーティションとして表示され、「RAW」と短縮されることがよくあります。

他のオペレーティングシステムがMBRまたはGPTディスク上にパーティションを作成する場合、それらは通常、既存のパーティションテーブルを優先し、別のオペレーティングシステムを使用しません。したがって、たとえばLinuxまたはFreeBSDは独自のパーティションを作成し、それらはwill Disk Managementで実際のパーティションとして表示されます–それらがMBRまたはGPTにある限り、単に「未割り当て領域」に変わることはありませんファイルシステムが認識されなかったためです。

ただし、DiskMgmtのinitializeディスクへのプロンプトとWindows Explorerのformatディスクへのプロンプトを混同しないでください。前者は不明なパーティションテーブルに関するものですが、後者は既知のパーティション内の不明なファイルシステムに関するものです。

(Windowsが誤って不明なファイルシステムにドライブ文字を割り当て、Windowsエクスプローラーからそれを開こうとすると、「フォーマット」プロンプトが表示されることがあります。)

要するに:

  • initialize diskへのプロンプト⇒パーティションテーブル(MBRまたはGPT)が見つかりませんでした。ディスクが空であるか、APMなどの非標準のパーティションテーブルを使用している可能性があります。

  • プロンプトは表示されませんが、未割り当てのスペースが表示されます⇒スペースは実際には未割り当てです。ディスクのパーティションテーブルには、その領域に対応するエントリがありません。

  • プロンプトはありませんが、不明なパーティションが表示されます⇒パーティションには、認識されないファイルシステムが含まれています。

  • format diskにプロンプ​​トを出す⇒パーティションに認識されないファイルシステムが含まれています。

57
user1686

最初に、ハードドライブの仕組みを説明しましょう。

明らかに、ハードドライブにはスペースがあります。ドライブ全体にパーティション構成を作成し、それをパーティションで埋めます。パーティションは、固定サイズのパーティションスペース内の予約です。 (これは非常に基本的な説明です。RAIDを追加すると、答えが不必要に複雑になるのではないかと心配しています)

ハードドライブにパーティションが1つしかなく、そのサイズがハードディスクのサイズよりも小さい場合、別のパーティション用のスペースが残っています。このビットは未割り当て領域と呼ばれます。

さて、これはいつでもそこにパーティションを作成できることを意味しますか?いいえ。別のOSがその領域に、自分のOSにまったくなじみのないパーティションを作成した可能性があります。

この場合、OSはこれを不明なパーティションと見なすか、最悪の場合は未割り当て領域と見なします。別のOSによって実際に割り当てられている未割り当て領域にパーティションを作成すると、ほとんどの場合、以前のパーティションが破棄されます。

別の可能性もあります。ドライブには、OSに慣れていないパーティション構成があります。この場合、OSはドライブが初期化されていないと見なし、初期化を要求します。 Windowsでは、GPTまたはMBRのいずれかになりますが、ドライブ(またはSDカードなど)が特別なデバイス用にフォーマットされ、その固有のフォーマットがセキュリティの一種であることが知られています。

12
LPChip

他の答えはすでに多くのことを伝えています、私はいくつかのギャップを埋めるためにもう少し詳細を追加します。

著者が尋ねる質問の1つは次のとおりです。

もしそうなら、これはWindowsの外では、ハードドライブに書き込むためにファイルシステムが必要ないことを意味しますか?

実際には、Windows内でも必要ありません。しかし、悪魔は詳細にあります:

低レベルでは、ハードドライブは読み書き可能なバイトの集まりです。各バイトには番号があります-1番目のバイト、2番目のバイトなど。そして...それだけです。数えられたバイトのちょうど束。 「ファイル」、「ディレクトリ」、「パーティション」などの概念はないことに注意してください。オペレーティングシステムがドライブに対して読み取りまたは書き込みを行う場合、最低レベルでは、「123〜456バイトを教えて」または「789〜1234バイトにこのデータを書き込んでください」と表示されます。またはそのようなもの。

実際、そのようなプログラムも簡単に作成できます。プログラマーであれば、通常のファイルのように特別なファイル名\\.\PhysicalDrive0を開くだけで、ドライブに書き込まれているすべてのバイトに完全にアクセスできます。 (注:これはWindowsの場合です。Linuxの場合、/devの下にあるファイルの1つを開くと、他のOSには他のメカニズムがまだある可能性があります)

ただし、doを実行すると、ドライブ上のすべての機密情報にアクセスできるため、管理者権限が必要になります。しかし、それ以外はそれだけです。私は自分でやった。

さて、実際には、私はあなたに少し嘘をつきました。少し白い嘘。ドライブは実際には個々のバイトを扱いません。 「セクター」内のデータを読み書きします。これは、「一度に大量のバイト」を表す単なる仮名です。 「回転する錆」の種類のドライブの場合、セクターは通常512バイトです。したがって、ドライブの読み取りまたは書き込みを行うときは、512バイトの大きなチャンクで行う必要があります。したがって、Windowsは実際にドライブに「セクター1〜5を取得する」または「セクター6〜8に書き込む」と通知します。しかし、それは本当に全体の考えを変えるわけではありません。

SSDは通常、セクターが大きく、サイズはドライブによって異なります。通常は4096バイトですが、2048バイトセクターのドライブがあり、他の値もある可能性があります。繰り返しますが、重要ではありません。覚えておいてください。通常、OSはそれを抽象化し、ユーザーが何でも読み書きできるようにします。その後、結果が期待どおりであることを確認するために少し余分な作業を行います。

次のステップは wallykが彼の答えでうまく説明した である「パーティションテーブル」です。

パーティションテーブルはドライブが気にするものではありません-それが気にするのはバイトのセクターを読み書きすることだけです。しかし、私たち人間は、ドライブを「パーティション」に分割し、そこにパーティションテーブルが入ります。パーティションテーブルは、慣例により、ドライブの最初に格納されます。すべてのツールとOSが同じように理解できるように、それはおそらくどこかの規格でも文書化されています。

MBR(マスターブートレコード)テーブルは、1982年以降の古い規格です。当時、SSDや512バイト以外のセクターを夢見たこともなかったため、MBRは1セクター(512バイト)を占めるように設計され、特に大きなドライブサイズに関連するその他の制限の束。

最終的にドライブはMBRだけでは不十分なほど大きくなり、GPT(GUIDパーティションテーブル)がこれらの制限を回避するために導入されました。

ここで、どのフォーマットを使用しても、パーティションテーブルが実際に言うことは、「パーティション1はセクター50〜5000に存在し、FAT32ファイルシステムでフォーマットされます。パーティション2はセクター5001〜10000に存在し、フォーマットされます。 EXT4ファイルシステム」などのように。

これにより、OSは実際のパーティションを見つけ、ファイルシステムを解析できます。そして、OSが提供するファイルやフォルダー、アクセス許可などの情報を取得します。これはすべてソフトウェアで行われます。

そして、もう1つ注意すべき点があります-すでに述べたように、パーティションテーブルは規約であり、必須ではありません。ハードウェアはそれを気にせず、ソフトウェアは気にします。したがって、ドライブがなくてもドライブを使用できます。たとえば、今日では、LVMをLinuxで使用してハードドライブを管理するのが一般的です(少し長い話ですが)。そして、その1つの可能性は、ドライブ全体をLVMが管理するデバイスのプールに追加することです。この場合、ドライブにパーティションテーブルはありません。代わりにLVMが管理します。

6
Vilx-

子供のための磁気ボードのようなHDDを想像してください

Magnetic whiteboard for children

初めてボードを手に入れるとき、それは完全に白ではなく、黒と白の意味のないスクランブルミックスになります。何かを読み書きする前に、まず書き込みたいボードの一部を消去する必要があります。また、ハードドライブはあらゆる種類のデータを保存できるため、ドライブにどのような種類のデータを格納するかを定義する初期情報(通常は最初に)も作成する必要があります。

たとえば、左上隅にドットのパターンを書いて、ボードの内容を英語で書くように指定できます。または、画像を示す別のパターン。または、ボードを4つの部分に分割し、左上の四分の一が画像を含み、右上が英語のテキストを含み、下半分の2つが空で、新しいデータの準備ができていると定義する複雑なパターン。 (そして、「下半分は空です」というパターンで書くだけで十分です。「空」として指定されているため、誰もこのスペースのコンテンツを読み取ろうとしないため、この部分を完全にクリーニングする必要はありません。 )

このようにして、OSは通常、ドライブの最初に明確なパターンを書き込みます。これを使用して、ドライブに書き込まれている他のデータとその場所を特定できます。これらの部分は、パーティションテーブルとファイルシステム記述子です。

未知のデータはノイズと簡単に区別できません

OSがHDDを検出すると、通常、ドライブの最初のバイトを読み取って特定のパターンを識別しようとします。ほとんどのオペレーティングシステムは、ドライブをパーティション分割する方法をさまざまな形式で認識しており、ドライブの内容を識別するために既知のマーカー(マスターブートレコード、パーティションテーブルなど)を見つけようとします。 -OS(Windowsなど)が認識できるパターンを見つけられない場合、ドライブが「空」(振動した後の磁気ボードのようなランダムノイズで満たされている)か、それがちょうど入っているかはわかりません。それが知らないフォーマット。

したがって、「未割り当てスペース」は、OSの識別可能なパターンのない認識できないデータです。このスペースにパーティションを作成することを選択した場合、OSは最初の数バイトを上書きし、データのパターンを作成します。これは基本的に「このドライブにはこの構造のファイルが含まれ、現在このメモの後のすべてが空であり、ドライブにコピーしたすべてのファイルは、このノートで定義されている構造で書き込まれます。

「未割り当てスペース」の特殊なケース

HDDの認識できない領域は、不明なファイルシステムである可能性があります。または、VeraCryptのような暗号化ソフトウェアによって生成された非表示のパーティションである可能性もあります。これは、非表示の暗号化データが未割り当てディスクのランダムノイズのように見えるように設計されています。別のケースは、破損したファイルシステムである可能性があります。ハードドライブに何らかの損傷があった場合、最初のパターンが壊れている可能性があるため、既知のタイプであっても、システムはファイルシステムを認識できなくなります。この場合、元のデータに再びアクセスできるように、ファイルシステムに関する情報を再構築しようとする回復ソフトウェアが必要になります。

生データにアクセスするためのツール

HDDの生データにアクセスできるWindows/Linux用のツールもあります。これらのツールは、ドライブがパーティション化されているか、ランダムノイズだけが含まれているかを気にしません。これらを使用すると、磁気ボードのようにドライブ全体を表示できます。そこには膨大な量のランダムに見える数字と記号が表示されます。これらは通常、OSのファイルシステムドライバーによって解釈され、ファイルとフォルダーの構造を確認できます。

ファイルシステムのしくみに興味がある場合は、そのようなツールを備えたドライブを見て、自分でパーティションテーブルを確認できます。

3
Falco