Changes between Version 1 and Version 2 of Developers/kenta


Ignore:
Timestamp:
2010/12/11 23:51:31 (13 years ago)
Author:
kenta
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Developers/kenta

    v1 v2  
    1010  * chroot でなんちゃって Virtual Machine 
    1111 
     12 == 参考資料 == 
     13  ぐぐったら、同じことやっている人がいた。 
     14  http://d.hatena.ne.jp/adsaria/20080724 
     15 
    1216 == 事例 1:古い Vine Linux 4.2 の環境を Vine Linux 5.2 にお引っ越し == 
    13   1. dd したディスクイメージをループバックマウント 
    14   1. MAKEDEVとか 
    15   1. sshd を動かしてログイン 
    16   1. VMWare Player と chroot 環境でベンチマーク比較 
     17  === dd したディスクイメージをループバックマウント === 
     18   {{{ 
     19# dd if=/dev/hdX of=/opt/Vine42.dd.img 
     20   }}} 
     21   とやって、ディスクをファイルにダンプ。 
     22 
     23   でも、このまま 
     24   {{{ 
     25# mkdir /opt/Vine42 
     26# mount /opt/Vine42.dd.img /opt/Vine42 
     27mount: ファイルシステムタイプを指定する必要があります 
     28   }}} 
     29   とやってもマウントはできません。 
     30   まず、パーティションの情報を確認。 
     31   {{{ 
     32# fdisk -lu /opt/Vine42.dd.img  
     33設定する必要があります シリンダ数. 
     34あなたは特別機能メニューからこれを行なうことができます 
     35 
     36Disk /opt/Vine42.dd.img: 0 MB, 0 bytes 
     37255 heads, 63 sectors/track, 0 cylinders, total 0 sectors 
     38Units = セクタ数 of 1 * 512 = 512 bytes 
     39Disk identifier: 0x000a0970 
     40 
     41       デバイス Boot      Start         End      Blocks   Id  System 
     42/opt/Vine42.dd.img1   *          63      208844      104391   83  Linux 
     43/opt/Vine42.dd.img2          208845    15727634     7759395   83  Linux 
     44/opt/Vine42.dd.img3        15727635    16771859      522112+  82  Linux swap / Solaris 
     45領域 3 は異なった物理/論理終点になっています: 
     46     物理=(1023, 254, 63) 論理=(1043, 254, 63) 
     47   }}} 
     48   Startセクタ * 512バイト目がパーティションの始まりになるので、offset を指定してマウントする。 
     49   {{{ 
     50# mount -o loop,offset=`expr 63 \* 512` /opt/Vine42.dd.img /opt/Vine42 
     51# ls /opt/Vine42/ 
     52System.map@                 initrd-2.6.16-0vl76.27.img  vmlinuz@ 
     53System.map-2.6.16-0vl76.27  initrd.img@                 vmlinuz-2.6.16-0vl76.27 
     54System.map.old@             initrd.old.img@             vmlinuz.old@ 
     55config-2.6.16-0vl76.27      kernel.h 
     56grub/                       lost+found/ 
     57   }}} 
     58   こっちは /boot パーティションですね。 
     59   一旦アンマウントして、/ に対応する 2番目のセクタをマウント。 
     60   /boot もついでにマウントする。必要は無いけど。    
     61   {{{ 
     62# umount /opt/Vine42 
     63# umount /opt/Vine42 
     64# mount -o loop,offset=`expr 208845 \* 512` /opt/Vine42.dd.img /opt/Vine42 
     65# mount -o loop,offset=`expr 63 \* 512` /opt/Vine42.dd.img /opt/Vine42/boot  
     66# df 
     67ファイルシステム     1K-ブロック  使用        空き 使用% マウント位置 
     68/dev/sda3             38456340  26437676  10065160  73% / 
     69none                   2021060         0   2021060   0% /dev/shm 
     70/dev/loop0             7637400   1928112   5321320  27% /opt/Vine42 
     71/dev/loop1              101086      8908     86959  10% /opt/Vine42/boot 
     72   }}} 
     73   これで Vine Linux 4.2 のディスクを Vine Linux 5.2 からアクセスできるようになりました。 
     74   でも、ライブラリの依存関係を満たせないので Vine Linux 4.2 のバイナリはほとんどの場合で実行できません。 
     75   {{{ 
     76$ /opt/Vine42/usr/bin/gnome-calculator  
     77/opt/Vine42/usr/bin/gnome-calculator: error while loading shared libraries: libgnomeui-2.so.0: cannot open shared object file: No such file or directory 
     78   }}} 
     79   {{{ 
     80   }}} 
     81   {{{ 
     82   }}} 
     83   {{{ 
     84   }}} 
     85   {{{ 
     86   }}} 
     87 
     88   ちなみに、dd せずにそのまま mount しても可。 
     89  === MAKEDEVとか === 
     90  === sshd を動かしてログイン === 
     91  === VMWare Player と chroot 環境でベンチマーク比較 === 
    1792    * I/O で差がつくはずだから、ディスクに負荷がかかるベンチマークを探す 
    1893