さまざまなパーティションが順番にハードディスクのスペースを占有しますか?


1

ディスクの位置が0〜4049 MBであるとします。パーティション1のサイズが50 MBの場合、0から49の位置を取りましたか?

私の仮定は次の話から来ています。

Linuxシステム(Raspberry PI)をバックアップしようとしています。それから私はそれを行う方法をグーグルで検索し、SDカード全体をバックアップするのではなく、サイズに縮小しました。

その後、ブートパーティションとメインパーティションの大きさ(gpartedを使用)を最初に確認する必要があるという回答が見つかりました。次に、ddを実行します。例えば

dd if=/dev/sdb of=sysbackup.img bs=1M count=1024

したがって、このカウントは2つのパーティションのサイズと同じです。

しかし、ddはディスク全体を順番にスキャンするだけだと思いました。つまり、パーティションも実際に順番に配置されているということですか?


Superduper(Mac用)などのツールはコンテンツをコピーします。ソースディスクが300GB未満を使用する場合、500GBパーティションを300GBにコピーできます。AFAIK ddはバイトをコピーし、コンテンツを分析しません。そのため、500GB全体がコピーされます。そして、それが2つのパーティションである場合、はい、ディスク上にある順にそれらをコピーします。ただし、これについては100%確信はありません。
SPRBRN

疑問に思う代わりに、GPartedを使用して、Informationプルダウンメニュー項目を使用して各パーティションの実際の(最初と最後の)セクターアドレスを取得できます。
おがくず

@sawdustそれは素晴らしいトリックです!
JR

回答:


1

パーティションの場所は、パーティションテーブルによって記述されます。現在、パーティションテーブルの最も一般的な2つのタイプは、マスターブートレコード(MBR)GUIDパーティションテーブル(GPT)です。詳細は異なりますが、どちらの場合も、ディスクのいくつかのセクターがそれぞれのパーティションの始まりと終わりの場所を記述するために確保され、タイプコード、名前(GPTのみ)などの追加のメタデータを保持します。オン。OSは、ディスク上のパーティションテーブルを探し、使用するタイプ(MBR、GPT、またはよりエキゾチックなもの)を把握し、セクターの範囲を別の範囲とは異なるパーティションとして解釈するのに十分な知識を持っています。セクター。

MBRとGPT、パーティションテーブル内のパーティションの順序、したがって、(それらに割り当てられたパーティション番号の両方の場合に/dev/sda1/dev/sda2例えば、)は、必ずしもパーティションがディスク上に表示される順序と一致しません。つまり、セクター40〜1,126,439を占有し、セクター1,126,440〜15,628,053,134を占有/dev/sda2する可能性があります/dev/sda1。また、パーティション化されていないスペース(本を持たない本棚の部分に類似)、パーティションシステムで使用される領域などがあります。最初のパーティションの開始点は完全に標準化されていません。したがって、ディスク全体をバックアップすることが目標の場合、次の3つの選択肢があります。

  • ディスク全体のバックアップ -あなたは、低レベルのバックアップ(使用して行うことができますddまたはいくつかの他のツール)の全体ディスク、セクター0からディスクの最後まで。これには、パーティションテーブル、すべてのパーティションの内容、およびディスクのパーティション化されていないセクションのすべてをバックアップする効果があります。このようなバックアップを復元すると、OSの元のバックアップとまったく同じになります(ディスクモデルと正確なディスクサイズを確認するか、質問します)。これは、ディスク上のパーティション、使用されているパーティションテーブルなどの知識を必要としないという点で、かなり「馬鹿げた」アプローチです。実際に使用されていないディスクの領域。これにより、おそらく必要以上にバックアップのサイズが大きくなる可能性があります。この非常に非効率性は、多くの場合欠点ですが、実際には、ディスクが sデータ構造がひどく破損している-バックアップを操作して、元のデータを破損することを心配せずにデータを回復できます。同様に、復号化キーがない場合でも、暗号化されたディスクをバックアップできます。
  • パーティション全体のバックアップ - ddまたは同様のツールを使用して、各パーティションの「ダム」バックアップを実行できます。バックアップを復元するときは、おそらく元のものと一致する新しいパーティションテーブルを作成する必要があります。したがって、パーティションテーブル自体をバックアップするか、少なくとも各パーティションのサイズを記録する必要があります。(ddバックアップファイルサイズがこの情報を提供する場合があります。)ディスク全体のバックアップと同様に、このようなバックアップは、ほとんどのディスクがパーティション化されていないか、パーティション自体がほとんどいっぱいでない限り、スペース効率が悪い可能性があります。復元するにはより多くの「スマート」が必要です。復元されたディスクが元のディスクと完全に一致しない可能性があるため、一部のOSおよびツールが機能しなくなる場合があります。たとえば、ディスクは起動できない場合があります。
  • ファイルシステム対応バックアップ -このアプローチでは、各パーティションで使用中のファイルシステムを理解するツールを使用します。つまり、ツールはNTFS、FAT、ext4fs、HFS +、または各パーティションが使用するファイルシステムを読み取ります。これは次のようなものを使用することができcptarまたはzipOS自体を使用してファイルシステムを処理し、ファイルをバックアップします。または、ファイルシステムの未使用部分を省略しながら、下位レベルでバックアップできるファイルシステム固有のツールである可能性があります。いずれにせよ、このアプローチは他のどのアプローチよりもはるかに多くの「スマート」を必要としますが、利点はバックアップがより高速でディスクスペースをあまり消費しないことです。欠点は、バックアップを復元するためにツールにさらに「スマート」が必要になることです。復元されたディスクを再度起動可能にするために追加の手順が必要になる場合があります。また、パーティションテーブル自体をバックアップするか、互換性のあるものを再作成するのに十分な知識が必要です。元のファイルシステムが破損している場合、このタイプのバックアップは適切ではありません。ファイルシステムを読み取るツールが混乱したり、重要なデータを省略したり、クラッシュしたりする可能性があるためです。

どのタイプのツールを使用するかは、ニーズによって異なります。あなたは、スペースの最小量を使用して高速なバックアップまたは1つたい場合、元はそのままであれば、あなたはファイルシステム対応のバックアップツールを使用したいと思います。ディスクが小さいか破損している場合は、ディスク全体(または少なくともパーティション全体)のバックアップの方が適している可能性があります。

パーティション全体またはファイルシステムに対応したバックアップの場合、パーティションテーブルをバックアップする必要があります。これを行う方法は、パーティションテーブルの種類によって異なります。場合によっては、パーティション分割ツールの出力を記録することで十分なはずです。たとえばsudo fdisk -l /dev/sda、出力をテキストファイルに入力してカットアンドペーストし、パーティションデータをに記録できます/dev/sda。一部のツールは、データをより詳細に記録する方法を提供します。例えば、私自身のGPTのfdisk( 、gdiskcgdiskおよびsgdisk)は、バイナリファイルにGPTデータをバックアップできます。これは、のメインメニューのbオプションgdisk、「バックアップ」項目cgdisk、または-b/ --backupコマンドラインオプションを使用して行います。sgdisk。パーティショニングツールのディスプレイの簡単な記録またはGPT fdiskが生成するような詳細なバイナリバックアップファイルが必要かどうかは、ニーズに依存します。

ディスクパーティションの詳細については、以下を参照してください。


やった!それは非常に有益です!
JR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.