'dmsetup'を使用して永続スナップショットデバイスを作成することはできません。

'dmsetup'を使用して永続スナップショットデバイスを作成することはできません。

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で十分です。

リソース:

関連情報