ということは、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;
}
があるので、このあたりで展開しているに違いない。
今日は、ここまで。