24
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

ディスクのクローンを作成

Linux

読み込み

TODO

書き込み

TODO

Mac

読み込み

まずは,読み出し対象のディスク (/dev/rdiskX) を見つけます.

diskutil list

/dev/rdiskX からデータを読み出し,bk.img という名前のディスクイメージを作成します.

sudo dd if=/dev/rdiskX of=bk.img bs=1m

書き込み

まずは,書き込み対象のディスク (/dev/rdiskX) を見つけます.

diskutil list

/dev/rdiskX のすべてのパーティションをアンマウントします.

diskutil unmountDisk /dev/diskX

bk.img というディスクイメージをもとに /dev/rdiskX に書き込みを行います.

sudo dd if=bk.img of=/dev/rdiskX bs=1m

備考

dd コマンドのオプション

それぞれのオプションは次の意味を持ちます.

bs     -- block size
cbs    -- conversion buffer size
conv   -- specify conversions to apply
count  -- number of input blocks to copy
files  -- specify number of input files to copy and concatenate
ibs    -- input block size
if     -- specify input file
obs    -- output block size
of     -- specify output file
seek   -- output blocks initially skipped
skip   -- input blocks initially skipped

disk と rdisk

BSD (Mac) では,同一デバイスに /dev/diskX/dev/rdiskX の 2 つの名前でアクセスできます.

disk も rdisk も同じデバイスを参照しますが,ランダムアクセス可能かどうか,という点で異なります.disk はランダムアクセスが可能です.それに対して,rdisk はデバイスにシーケンシャルアクセスします.

ランダムアクセスは,インデックスを指定することで参照したいブロックに直接アクセスすることができます.それに対して,シーケンシャルアクセスは,先頭から順にブロックをたどって参照したいブロックにアクセスします.
ランダムアクセスは配列のようなもの,シーケンシャルアクセスはリストのようなもの,というイメージを持っておくといいでしょう.

disk はランダムアクセスを可能にするために 4 KB のバッファを介してデバイスにアクセスします.それに対して,rdisk はバッファを介さずにデバイスにアクセスすることができます.そのため,dd コマンドのようなランダムアクセスの発生しない読み書きの場合は,rdisk でデバイスを参照すると高速に読み書きできます.

参考

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
24
Help us understand the problem. What are the problem?