Solaris のシステム管理 (第 1 巻)

ファイルシステムをディスクにコピーする

ファイルシステムをディスクにコピーするには、次の 2 つのコマンドを使用します。

次の節では、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

ディスクをクローン化する方法 (dd)

  1. コピー元とコピー先のディスクが同じディスクジオメトリを持っているかどうかを確認します。

  2. スーパーユーザーになります。

  3. /reconfigure ファイルをシステムに作成します。これによって、システムは追加されるクローンディスクをリブート時に認識します。


    # touch /reconfigure
    
  4. システムをシャットダウンします。


    # init 0
    
  5. クローンディスクをシステムに接続します。

  6. システムをブートします。


    ok boot
    
  7. 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 バイトなど)。ブロックサイズの値を大きくすると、コピーに要する時間を短縮できる。 

  8. 新しいファイルシステムをチェックします。


    # fsck /dev/rdsk/device-name
    
  9. クローンディスクのルート (/) ファイルシステムをマウントします。


    # mount /dev/dsk/device-name /mnt
    
  10. クローンディスクの /etc/vfstab を編集して、正しいデバイス名を参照するようにします。

    たとえば、c0t3d0 をすべて c0t1d0 に変更します。

  11. クローンディスクのルート (/) ファイルシステムをマウント解除します。


    # umount /mnt
    
  12. システムを停止します。


    # init 0
    
  13. クローンディスクからシングルユーザーモードにブートします。


    # boot diskn -s
    

    注 -

    installboot コマンドをクローンディスクで実行する必要ありません。これは、ブートブロックがオーバーラップスライスの一部としてコピーされるためです。


  14. クローンディスクの構成を解除します。


    # sys-unconfig
    

    構成を解除すると、システムが停止します。

  15. 再びクローンディスクからブートし、ホスト名や時間帯などのシステム情報を与えます。


    # boot diskn
    
  16. スーパーユーザーとしてログインして、一度システムがブートした後のシステム情報を確認します。


    hostname console login:

例 - ディスクのクローン化 (dd)


# 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