[Momonga-devel.ja:00155] uml あれこれ
- From: Kazuhiko <kazuhiko@xxxxxxxxxx>
- Date: Sat, 20 Jul 2002 14:47:45 +0900
かずひこです。
最近、uml でいろいろいじっていますが、いくつか疑問がでてきました。
● xfs で initrd が作れない
まず
tar xzf /usr/lib/uml/modules.tar.gz -C /
として、xfs が /etc/fstab にある状態で mkinitrd しようとしました。
$ sudo mkinitrd -v test.img 2.4.18-102m-35um
Using modules: ./kernel/fs/xfs_support/xfs_support.o ./kernel/fs/xfs_dmapi/xfs_dmapi.o ./kernel/fs/xfs/xfs.o
Using loopback device /dev/loop0
/sbin/nash -> /tmp/initrd.l32560/bin/nash
/sbin/insmod.static -> /tmp/initrd.l32560/bin/insmod
`/lib/modules/2.4.18-102m-35um/./kernel/fs/xfs_support/xfs_support.o' -> `/tmp/initrd.l32560/lib/xfs_support.o'
`/lib/modules/2.4.18-102m-35um/./kernel/fs/xfs_dmapi/xfs_dmapi.o' -> `/tmp/initrd.l32560/lib/xfs_dmapi.o'
`/lib/modules/2.4.18-102m-35um/./kernel/fs/xfs/xfs.o' -> `/tmp/initrd.l32560/lib/xfs.o'
Loading module xfs_support
Loading module xfs_dmapi
Loading module xfs
tar: ./lib/xfs.o: Wrote only 3584 of 10240 bytes
tar: Skipping to next header
tar: Error exit delayed from previous errors
これが uml なカーネルでなければあっさりと作れるので、モジュールのサイズ
を調べてみました。
$ du -s /lib/modules/2.4.18-102m*/kernel/fs/xfs*/*o
19164 /lib/modules/2.4.18-102m-35um/kernel/fs/xfs/xfs.o
3728 /lib/modules/2.4.18-102m-35um/kernel/fs/xfs_dmapi/xfs_dmapi.o
1288 /lib/modules/2.4.18-102m-35um/kernel/fs/xfs_support/xfs_support.o
592 /lib/modules/2.4.18-102m/kernel/fs/xfs/xfs.o
52 /lib/modules/2.4.18-102m/kernel/fs/xfs_dmapi/xfs_dmapi.o
20 /lib/modules/2.4.18-102m/kernel/fs/xfs_support/xfs_support.o
このように、uml なカーネルだと、通常のカーネルに比べて異様に大きいくて
ramdisk に入りきらないのが問題だと思います。そこで、/sbin/mkinitrd の
IMAGESIZE=8192
を
IMAGESIZE=81920
としてみたら無事作れました。しかし、実際に起動しようとすると、
$ linux initrd=test.img ubd0=/tmp/xfs.fs
(snip)
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 7082k freed
VFS: Mounted root (ext2 filesystem).
attempt to access beyond end of device
01:00: rw=0, want=65542, limit=8192
となって、やはりだめです。
しかしなぜ uml カーネルのモジュールはこんなに巨大なのでしょうか?
$ du -s /lib/modules/*
28976 /lib/modules/2.4.18-102m
107040 /lib/modules/2.4.18-102m-35um
● jfs で仮想ファイルシステムが作れない
$ dd if=/dev/zero of=/tmp/jfs.fs seek=6192 count=1 bs=1M
$ mkfs.jfs /tmp/jfs.fs
mkfs.jfs version 1.0.20, 21-Jun-2002
is not a valid block device.
とあっさり断られます。
というわけで、現状では ext2 以外は難しそうです。
でも、ext2 ではとても安定して動いています。普段の環境は IPv4 で、uml の
中で IPv6 の環境を実験するとか、uml の中では GCC3 ブランチを試すとか、い
ろいろ使えそうです。
--
かずひこ@...
ふぇみにん日記 http://www.fdiary.net/~kazuhiko/diary/
GK Kyoto Inc. http://www.gk-kyoto.com/
Momonga Linux http://www.momonga-linux.org/
電子辞書オープンラボ http://openlab.jp/edict/
電子書体オープンラボ http://openlab.jp/efont/