Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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 でデバイスを参照すると高速に読み書きできます.

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away