私はddを使って私のrootfsを別のパーティションにコピーし、新しいrootfsコピーでシステムを起動しました。
sudo dd if=/dev/disk/by-partuuid/342853ea-cab9-4a4f-b935-1a704c1cc17f conv=sync,noerror bs=4M of=/dev/nvme0n1p1
ここで、 partuuid は rootfs パーティションの部分 uuid です。
問題は、時にはddによってコピーされたrootfsが少し破損しているように見えることです。 (私のファイルが破損しているかddが停止しました)
これを行うために使用できるより安全なオプションはありますか?
ベストアンサー1
問題は、時にはddによってコピーされたrootfsが少し破損しているように見えることです。 (私のファイルが破損しているかddが停止しました)
さて、今は両方のrootfsがマウントされていないことを意味していることを理解しています。問題はUSBのない組み込みシステムを使用しているため不可能です。サポートする。
全長DR
ソースおよび/またはターゲットファイルシステムポジティブrsync
(ローカルまたはネットワーク経由)または一般を使用して(インストール)cp
ファイルシステムレベルでコピー(同期)します。
ブロックレベルで
ファイルシステムを安全にコピー(複製)できます。ブロックレベル (フルディスク、パーティション、論理ボリューム)のみ2つのファイルシステム- ソースおよびターゲットブロックデバイスでインストールされていません。
次の理由により、ターゲットに一貫性のないコピー(破損したファイルシステム)が作成されます。
マウントされたファイルシステムソースブロックデバイスプログラムがデフォルトのソースブロックデバイスからブロックを読み取ると、対応する(メタ)データと他の内部構造が絶えず変更されます。
ファイルシステムもインストールされています対象ブロック装置プログラムがオペレーティングシステムを迂回してターゲットブロックデバイスに直接ブロックを書き込むと、対応する(メタ)データと他の内部構造が常に読み書きされます。オペレーティングシステムとターゲットシステムで実行されているプログラムのメモリ状態がファイルシステムのメタ(データ)と一致しないため混乱し、誤ったデータを読み書きすることでメタ(データ)が破損する可能性があります。
ブロックデバイスは、上位層(主にファイルシステム)がオフライン(マウントされていない、非アクティブ)の場合にのみコピーする必要があります。
ファイルシステムレベルで
これはファイルシステムがマウントされたことを意味します。
コピー中にターゲットファイルまたはソースファイルが更新されると、ブロックデバイスなどの不一致が発生する可能性がありますが、ターゲットファイルシステム(論理レベル)に保存されているデータにのみ適用されます。実行中のオペレーティングシステムとアプリケーションは、使用するターゲットファイルを置き換えると混乱する可能性があります。
100%保証では、ソースシステムで読み取り用に開いているファイルのみをコピーでき、ターゲットシステムのオペレーティングシステムまたはアプリケーションで書き込み用に開いていないファイルはコピーできません。
マウントされたアクティブファイルシステムから別のマウントされたアクティブファイルシステムにファイルをコピーできますが、結果は異なる場合があります。
ハードウェアアーキテクチャ、ファイルシステム層、展開などの異なるデバイス間でファイルを盲目的にコピーすることはできません。
ファイルシステムレベルのレプリケーションの場合rsync
(ローカルまたはネットワーク経由)または単純ですcp
。
両方のシステムに固有のランタイムデータを含むディレクトリをコピーしないでください。例:/dev
、、、、、、、、、、、構成ファイル、実行中のデータベースファイルなどは、ターゲットシステムとソースシステム/proc
の違いによって異なります/sys
。/tmp
/run
/var/run
/var/tmp
/lost+found
/media
/mnt
ファイルシステムがlvm論理ボリュームにあり、スナップショットからファイルをコピーしている場合は、lvmスナップショットを使用できます。
xfsを使用すると、ソースファイルシステムがオンラインのときにxfsdump /source_fsをxfsrestore /target_fsにパイプできます。