ディスクイメージを使う - dd, lofi


  1. メディアイメージを使う利点

    フロッピーディスクや CD-ROM をHDDにイメージとしてコピーする、というのが要旨です。これに一体どんな利点があるでしょうか?すぐには思い浮かばないかもしれませんが何かの役に立つかも!

  2. dd によるメディアイメージの作成 - /usr/bin/dd

    では早速、フロッピーディスクをイメージファイルに落としてみます (落とすという表現は古くさいのかも・・)。
    input-file と output-file を間違えないようにして dd を使用します。

    39 galley tachi> volcheck
    40 galley tachi> dd if=/vol/dev/aliases/floppy0 of=/home/tachi/image_01.img
    書き込まれたレコード数 2880+0
    読み出されたレコード数 2880+0
    41 galley tachi> ls -l ~/image_01.img
    -rw-r--r-- 1 tachi staff 1474560 11月 7日 01:14 /home/tachi/image_01.img
    42 galley tachi>

    次に、cdrom メディアのイメージファイル化を行ってみます。(ちなみに sample は Solaris 8 Companion CD です。)
    これで cdrom も一個のファイルになります。

    10 galley tachi> dd if=/vol/dev/aliases/cdrom0 of=/home/tachi/image_02.img
    書き込まれたレコード数 650240+0
    読み出されたレコード数 650240+0
    11 galley tachi> ls -l ~/image_02.img
    -rw-r--r-- 1 tachi staff 332922880 11月 7日 01:53 /home/tachi/image_02.img
    12 galley tachi>

    この時注意したい事は、作成されるイメージファイルはマウントされたファイルシステムのイメージであり、cdrom 全体のイメージでは無い場合がある、ということです。RockRidge フォーマットには詳しくないので上手く説明できませんが、例えば SPARC 用の Solaris 8 Installation CD は x86 上では正しくマウントできません。このような場合は作成されるイメージファイルも不完全なものになってしまいます。

  3. dd によるメディアイメージの復元

    作成したイメージファイルを元のメディアに戻してみます。
    以下はフロッピーディスクの場合です。

    48 galley tachi> eject -p
    /vol/dev/rdiskette0/5.8_d1 は現在手動で取り出せます。
    49 galley tachi> volcheck
    50 galley tachi> dd if=/home/tachi/image_01.img of=/vol/dev/aliases/floppy0
    書き込まれたレコード数 2880+0
    読み出されたレコード数 2880+0
    51 galley tachi>

    cdrom の場合は CD-R に書きこむことになりますが、これは別の機会に検証してみたいと思います。

  4. lofi によるイメージのドライブ - /usr/sbin/lofiadm

    では、いよいよ lofi です。lofi を使用する事によりイメージファイルをメディアそのもののように扱う事が出来ます。

    # lofiadm -a /home/tachi/image_01.img
    /dev/lofi/1
    # lofiadm -a /home/tachi/image_02.img
    /dev/lofi/2
    # lofiadm
    Block Device File
    /dev/lofi/1 /home/tachi/image_01.img
    /dev/lofi/2 /home/tachi/image_02.img
    #

    フロッピーディスクのイメージファイルと cdrom のイメージファイルを順番に追加 (というよりも登録というべきかも) しています。

    次に lofi デバイスをマウントしてみます。

    # mkdir /tmp/floppy /tmp/cdrom
    # mount -F pcfs /dev/lofi/1 /tmp/floppy
    # mount -F hsfs /dev/lofi/2 /tmp/cdrom
    #

    ファイルシステムはそれぞれのイメージファイルに適したものを指定する必要があります。

    マウントが成功すれば、このイメージファイルをメディアとして参照できます。

    # ls -l /tmp/floppy
    合計 17
    -rwxrwxrwx 1 root other 429 12月 11日 1999年 APPEND.BAT
    -rwxrwxrwx 1 root other 2944 12月 11日 1999年 COMMENT.BAT
    -rwxrwxrwx 1 root other 0 1月 1日 1970年 ESCD.RF
    -rwxrwxrwx 1 root other 148 12月 11日 1999年 IDENT
    -rwxrwxrwx 1 root other 579 12月 11日 1999年 MAKEDIR.BAT
    drwxrwxrwx 1 root other 512 12月 11日 1999年 RC.D
    -rwxrwxrwx 1 root other 496 12月 11日 1999年 REPLACE.BAT
    drwxrwxrwx 1 root other 512 12月 11日 1999年 SOLARIS
    -rwxrwxrwx 1 root other 1309 12月 11日 1999年 SOLARIS.MAP
    drwxrwxrwx 1 root other 512 12月 11日 1999年 X
    # ls -l /tmp/cdrom
    合計 18
    -rw-r--r-- 1 root sys 1227 12月 10日 1999年 README
    drwxrwxr-x 13 root sys 2048 12月 10日 1999年 components
    -rwxr-xr-x 1 root sys 4597 12月 10日 1999年 installer
    -rwxr-xr-x 1 root sys 636 12月 10日 1999年 volstart
    #

    ちょっと嬉しくないですか?o(^^)o

  5. lofi のドライブ解除

    lofi デバイスの解除は、デバイスのアンマウント、lofi からの削除 (登録抹消と呼びたい) の順序で行います。

    # umount /tmp/cdrom
    # umount /tmp/floppy
    # lofiadm -d /dev/lofi/2
    # lofiadm -d /dev/lofi/1
    # lofiadm
    Block Device File
    #

    以上の手順でイメージファイルを操作可能です。
    何か用途は思い浮かびましたでしょうか?


もどる Last modified: 04/09/01 00:41:01 JST