dmsetup
次のことができるスナップショットデバイスを作成しようとしています。fsckによる変更のロールバック。
私は電話を間違えたと思いますdmsetup
。例は次のとおりです。
$ truncate -s 4096 real snapshot
$ losetup --show -f real
/dev/loop0
$ losetup --show -f snapshot
/dev/loop1
$ sudo dmsetup -v create snapdev --table '0 8 snapshot /dev/loop0 /dev/loop1 P 1'
device-mapper: reload ioctl on snapdev failed: Input/output error
Command failed
エラーメッセージの最後の2つのスペースはsnapdev
少し奇妙です。
しかし、P
永続性をN
非持続性に変更すると、すべてがうまく機能します。
$ sudo dmsetup -v create snapdev --table '0 8 snapshot /dev/loop0 /dev/loop1 N 1'
Name: snapdev
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 254, 4
Number of targets: 1
私は何が間違っていましたか?
答え1
永続的なスナップショットに使用するには、デバイスの最初の数ブロックが\0
。この例
最初の32ブロックを0にします。
このバイトはSnAp\001
永続スナップショットデバイスの先頭に書き込まれます。。
プライマリデバイスの最初のブロックは、永続スナップショットデバイスのブロック16にマッピングされます。 (データはバイトオフセット8192または0x2000から始まります)。
スナップショットデバイス(指定されていない)最小サイズが必要です。。 4MBで十分です。
リソース: