RAMDISKイメージの作成方法@CentOS5
RAMDISKイメージの作成方法とついでにRAMDISKイメージに格納したコンパクト化したLinuxを起動する方法を以下に示す。
Linuxのコンパクト化については省略する。
# dd if=/dev/zero of=ramimage.img bs=1M count=250
250MBのサイズでRAMDISKイメージの入れ物を作る
# losetup /dev/loop0 ramimage.img
イメージファイルをloopデバイスにマウントする
(イメージファイルをマウントする為のデバイスって認識でいいのかな?)
# mke2fs -m 0 /dev/loop0
# tune2fs -c 0 -i 0 /dev/loop0
マウントしたイメージにファイルシステムを作成する
スーパーユーザの予約エリアを0に(mke2fs -m 0)し、チェックディスクを行わない様に(tune2fs -c 0 -i 0)する。
# mount -o loop /dev/loop0 /media/ram
ループバックで/media/ramにマウントする
これで初めてイメージファイルに読み書きが出来るようになる
# cp -ar /miniLinux/master/* /media/ram/
必要なファイルをコピーする
# umount /media/ram
losetup -d /dev/loop0
デバイスのアンマウント
# gzip ramimage.img
RAMDISKイメージを圧縮(容量喰うので)
# vi /boot/grub/grub.conf
grub.confを修正する
title miniLinux on CentOS5
root (hd0,2)
kernel /vmlinuz-2.6.18-8.el5 ro noswap
initrd (hd0,5)/pocketclient/ramimage/ramimage.img.gz
立ち上げるとエラーが
grow_buffers: requested out-of-range block 18446744071562067968 for device ram0
isofs_fill_super: bread failed, dev=ram0, iso_blknum=17, block=-2147483648
No filesystem could mount root, tried: ext2 iso9660
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
どうやらRAMDISKのブロックサイズが解らなくなっていてpanicになったらしい
色々調べたところ、"ramdisk_blocksize=1024"をブートオプションに追加すると動いた
最終更新:2007年06月21日 11:24