/dev/lvm/home
2つの論理ボリューム(および)を含むLVグループがあるとします/dev/lvm/root
。誤って重要なデータを削除し、/dev/lvm/home
それを実現したときにコンピュータをシャットダウンし、/dev/lvm/home
fstabをfstabから読み取り専用モードでマウントするように変更し、起動して/dev/lvm/root
使用を開始し、内容を書き始めたとします。私のものですか?削除されたデータは安全ですか? LVMがどのように機能するのかわかりません。同じLVグループの別の論理ボリュームにデータを書き込むことで、1つの論理ボリュームから削除されたデータを上書きできますか?fdisk -l
論理ボリュームの幾何学的構造が表示されないので、論理ボリュームの幾何学的構造というものがないのでしょうか?
答え1
短い答え:はい、この場合、削除されたデータはできるだけ安全です。
通常の論理ボリューム(「シン」論理ボリュームとは反対)を構成すると、各論理ボリュームに特定のディスクブロック拡張が割り当てられ、これらのディスクブロックは、LVM構成コマンドを再使用しない限り変更されません。論理ボリュームのサイズ変更を開始しない限り、削除されたファイルを保持してhome
いるLVのブロックはそのLVに割り当てられたままであり、他のファイルシステムには触れません。
lvdisplay -m /dev/lvm/home
またはを使用して、pvdisplay -m /dev/sdXX
各LVに割り当てられているブロック拡張のリストを表示できますdmsetup table
。
(「薄い」LVの場合、問題はファイルシステムがこのオプションでマウントされてdiscard
いるかどうかです。)このオプションが設定されている場合、ファイルシステムは削除された基本ブロックで利用可能になり、薄いLVの場合、これらのブロックは「Thin Pool」再リリースすると、同じプールに属する別のThin LVに再割り当てできますが、discard
マウントオプションはデフォルトではなく、一般的な用途には推奨されません。
注意すべきはプログラムの実行ですfstrim
。特にディスクがSSDの場合はさらにそうです。多くの最新のディストリビューションでは、マウントされた各ファイルシステムに対して/ジョブまたはsystemdデバイスを介してfstrim
週に1回、このジョブを実行する傾向があります。削除されたデータを回復するには、安全のために無効にする必要があります。cron
anacron
*.timer
リバースエンジニアリングに興味がある場合、または8 GB未満のHDDで作業していない場合は、次の点を考慮する必要があります。ディスク幾何学〜のように「私たちは互換性のために古いソフトウェア/ファームウェアについて嘘をついています。」。これより大きいディスクは、デフォルトでブロック番号である論理ブロックアドレス(LBA)を使用します。
ディスク自体のファームウェアだけが実際のディスク構造に興味があり、これは既存のC / H / Sトリプルが表すことができるよりも複雑になる可能性があります。例えば、外側シリンダが内側シリンダよりも多くのセクタを含むことが標準である。 。報告されたすべてのC / H / S番号は、非常にfdisk
古いシステムに新しいディスクを挿入する場合に備えて、事実上完全にフィクションです。
答え2
論理ボリュームは独立しており、あるボリュームに書き込んでも他のボリュームには影響しません。 LVには「幾何学」があります。以下を実行して表示できます。
sudo dmsetup table
これは、各LV(構成DMデバイスとして表示)がどのようにマッピングされるかを示しています。
LVを使用しているため、スナップショットの可用性はこの場合に便利なツールです。home
LVのスナップショットを使用して現在の状態を保存し、その状態を使用してデータを回復できます。
答え3
通常の論理ボリュームの場合、各LVはパーティションが独立しているかのように独立しています。
LVMは各LVに物理ボリュームの範囲を割り当てます。スナップショットを除いて同じ範囲を2回付与することはできません。したがって、/dev/lvm/root
0〜1023の範囲を使用することも、/dev/lvm/home
1024〜2047の範囲を使用することもできます。冗長性がないため、Home-LVを損なうことなくRoot-LVに何でも書くことができます。
ただし、シン・プロビジョニング論理ボリュームなど、エクステントが動的に割り当てられる他の特別な場合もあります。この場合、LV-Homeは一部の拡張領域を解放した可能性があり、後でLV-Rootで使用して上書きされる可能性があります。
これはfstrim
orメカニズムによってdiscard
達成されます。 SSDストレージを使用している場合、fstrim
使用するとデータが消えます。残念ながら、fstrim
これは読み取り専用でマウントされたファイルシステムでも機能します。
したがって、読み取り専用()に設定することに加えて、無効にする(タイマー、cron、および/またはバイナリ自体)、マウントオプションを実行し、有効になっlvchange -p r
ている場合はlvm.confで無効にします。fstrim
chmod -x
discard
issue_discards
残念ながら、読み取り専用を保証することは非常に困難です。読み取り専用インストールだけでは不十分な場合があります。