ファイルシステムをディスクにコピーするには、次の 2 つのコマンドを使用します。
volcopy
dd
次の節では、dd コマンドを使用してファイルシステムをディスク間でコピーする方法について説明します。
dd コマンドでは、UFS ファイルシステムのリテラル (ブロックレベル) コピーを別のファイルシステムやテープに作成します。デフォルトでは、dd コマンドはその標準入力を標準出力にコピーします。
可変長テープドライブで dd コマンドを使用するときは、必ず適切なブロックサイズを指定してください。
標準入力、標準出力、またはその両方の代わりに、デバイス名を指定できます。次の例では、フロッピーディスクの内容が /tmp ディレクトリ内のファイルにコピーされます。
$ dd < /floppy/floppy0 > /tmp/output.file 2400+0 records in 2400+0 records out |
dd コマンドは、読み込みブロック数と書き込みブロック数をレポートします。+ の次の数値は、部分的にコピーされたブロックの数です。デフォルトのブロックサイズは 512 バイトです。
dd コマンドの構文は、他のほとんどのコマンドとは異なっています。オプションは keyword=value のペアで指定します。この場合、keyword は設定したいオプションで、value はそのオプションの引数です。たとえば、標準入力と標準出力を次の構文に置き換えることができます。
$ dd if=input-file of=output-file |
たとえば、上記の例のリダイレクト記号の代わりに keyword=value の形式で指定するには、次のように入力します。
$ dd if=/floppy/floppy0 of=/tmp/output.file |
コピー元とコピー先のディスクが同じディスクジオメトリを持っているかどうかを確認します。
スーパーユーザーになります。
/reconfigure ファイルをシステムに作成します。これによって、システムは追加されるクローンディスクをリブート時に認識します。
# touch /reconfigure |
システムをシャットダウンします。
# init 0 |
クローンディスクをシステムに接続します。
システムをブートします。
ok boot |
dd コマンドを使用してマスターディスクをクローンディスクにコピーします。
# dd if=/dev/dsk/device-name of=/dev/dsk/device-name bs=blocksize |
if=/dev/dsk/device-name |
マスターディスクデバイスのオーバーラップスライスを指定する。通常はスライス 2。 |
of=/dev/dsk/device-name |
クローンディスクデバイスのオーバーラップスライスを指定する。通常はスライス 2。 |
bs=blocksize |
ブロックサイズ (128K バイト、256K バイトなど)。ブロックサイズの値を大きくすると、コピーに要する時間を短縮できる。 |
新しいファイルシステムをチェックします。
# fsck /dev/rdsk/device-name |
クローンディスクのルート (/) ファイルシステムをマウントします。
# mount /dev/dsk/device-name /mnt |
クローンディスクの /etc/vfstab を編集して、正しいデバイス名を参照するようにします。
たとえば、c0t3d0 をすべて c0t1d0 に変更します。
クローンディスクのルート (/) ファイルシステムをマウント解除します。
# umount /mnt |
システムを停止します。
# init 0 |
クローンディスクからシングルユーザーモードにブートします。
# boot diskn -s |
installboot コマンドをクローンディスクで実行する必要ありません。これは、ブートブロックがオーバーラップスライスの一部としてコピーされるためです。
クローンディスクの構成を解除します。
# sys-unconfig |
構成を解除すると、システムが停止します。
再びクローンディスクからブートし、ホスト名や時間帯などのシステム情報を与えます。
# boot diskn |
スーパーユーザーとしてログインして、一度システムがブートした後のシステム情報を確認します。
hostname console login: |
# init 0 ok boot # dd if=/dev/dsk/c0t0d0s2 of=/dev/dsk/c0t2d0s2 bs=128k # fsck /dev/rdsk/c0t2d0s2 # mount /dev/dsk/c0t2d0s2 /mnt # cd /mnt/etc # vi vfstab (新しいディスクのエントリを変更) # cd / # umount /mnt # init 0 # boot disk2 -s # sys-unconfig # boot disk2 |