基本信息
源码名称:busybox详解制作根文件系统
源码大小:0.23M
文件格式:.doc
开发语言:C/C++
更新时间:2019-09-26
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

FHS(Filesystem Hierarchy Standard)标准介绍

当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

748 static int noinline init_post(void)
749 {
750         free_initmem();
751         unlock_kernel();
752         mark_rodata_ro();
753         system_state = SYSTEM_RUNNING;
754         numa_default_policy();
755
756         if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
757                 printk(KERN_WARNING "Warning: unable to open an initial console.\n");
758
759         (void) sys_dup(0);
760         (void) sys_dup(0);
761
762         if (ramdisk_execute_command) {
763                 run_init_process(ramdisk_execute_command);
764                 printk(KERN_WARNING "Failed to execute %s\n",
765                                 ramdisk_execute_command);
766         }
767
768         /*
769          * We try each of these until one succeeds.
770          *
771          * The Bourne shell can be used instead of init if we are
772          * trying to recover a really broken machine.
773          */
774         if (execute_command) {
775                 run_init_process(execute_command);
776                 printk(KERN_WARNING "Failed to execute %s.  Attempting "
777                                         "defaults...\n", execute_command);
778         }
779         run_init_process("/sbin/init");
780         run_init_process("/etc/init");
781         run_init_process("/bin/init");
782         run_init_process("/bin/sh");
783
784         panic("No init found.  Try passing init= option to kernel.");
785 }

显然,内核错误是由175行不能打开/dev/console所致。通过查看已经安装好的linux机器的/dev/console设备文件,可知其是字符设备文件,主设备号为5,次设备号为1:

dennis@dennis-desktop:/work/nfs_root/fs_mini3/etc$ ls -l /dev/console
crw------- 1 root root 5, 1 2010-04-08 08:40 /dev/console