ということは、LILO や GRUB 相当のローダがあるはず。
そして、それはおそらく /dev/fl2 か、見えない ROM? かにあって、
gzip のソースコードを使わずに gz ファイルを展開しているはず
そうでないと、ローダも GPL 下になり、ソースの開示が必要になるので。
#define MELCO_EMERGENCY_FS_BOOT #ifdef MELCO_EMERGENCY_FS_BOOT blkdev_close(bdev->bd_inode, NULL); strcpy(root_device_name, "rd/0"); strcpy(ROOT_DEVICE_NAME, root_device_name); ROOT_DEV = MKDEV (1, 0); goto TRY_RAMDISK; #endif panic("VFS: Unable to mount root fs on %s", kdevname(ROOT_DEV));こういうコードがある。
つまり、よく(?) PC で見る VFS: Unable to mount root fs on ?? と
いうカーネルパニックの前に、RAM DISK で再試行している。
Major 1, Minor 0 というと、/dev/ram0 である。
ということは、このあたりで ramdisk.img.gz が展開されているはず。
また、drivers/block/rd.c には、
/* * If it matches the gzip magic numbers, return -1 */ if (buf[0] == 037 && ((buf[1] == 0213) || (buf[1] == 0236))) { printk(KERN_NOTICE "RAMDISK: Compressed image found at block %d\n", start_block); nblocks = 0; goto done; }があるので、このあたりで展開しているに違いない。
今日は、ここまで。