您现在的位置: 万盛学电脑网 >> 操作系统 >> Linux教程 >> 正文

基本制作过程

作者:佚名    责任编辑:admin    更新时间:2022-06-22

基本制作过程 创建目录和文件 在imgae目录下创建dev, proc , sys , etc ,mnt 四个目录   创建如下两个设备文件    mknod  -m 600 dev/console c 5 1   mknod -m 600 dev/null c  1 3  proc,dev,sys都是用来mount内核信息的。   etc是用来放配制文件的。   更详细请看“Linux 目录详解” 测试一下 加载内核信息 首先要加载内核信息。其中$INITRD为一环境变量,保存镜像文件夹的位置如“/initrd”。   mount -v --bind /dev $INITRD/dev mount -vt devpts devpts $INITRD/dev/pts  mount -vt tmpfs shm $INITRD/dev/shm  mount -vt proc proc $INITRD/proc mount -vt sysfs sysfs $INITRD/sys 更改根文件系统 chroot $INITRD /bin/sh  命令进入busybox的环境。出现shell的命令提示符,可以试着输入几个命令,看看执行结果。例如,输入 fdisk -l 命令看看是否能显示 mdev自动生成/dev下的设备文件 上节用chroot方法试验busybox时,为了简单,是用“绑定”的方式把主机的/dev中的设备文件映射到image目录下的dev目录。在initramfs上,这种方法显然不能使用。   生成系统的设备文件,现在通常都是用udev动态生成,而initramfs为了做到通用,动态生成的要求是必须的。在busybox中有一个mdev命令,就是用来动态生成设备文件,填充到/dev目录的。   在系统启动时,用    mdev -s  命令可以根据内核的sysfs文件系统在/dev目录中自动生成相应的设备文件。   命令执行前,需要先挂载内核的proc和sysfs虚拟文件系统。 最简init文件 在image目录下写一个最简单的init脚本,这也默认我们是用initramfs制作镜像了,linuxrc文件可以删除,只有在制作initrd时都用它。   #!/bin/sh  mount -t proc proc /proc  mount -t sysfs sysfs /sys  mdev -s  /bin/sh  系统最终会启动到一个shell交互环境,和测试一下中类似。前提是dev,proc,sys目录已经创建。   为init文件设置可执行权限,当前目录为镜像根目录:   chmod +x init  有些busybox配置中,mdev命令需要读取/etc/mdev.conf文件,为了避免出错信息,我们创建一个空文件。   touch etc/mdev.conf  mdev.conf文件是用 来控制mdev生成的设备文件的读写权限的,在这里我们不需要对设备文件设置特别的权限,就使用mdev缺省的660的权限设置。有关mdev的设备文件 权限的控制详细信息,可参考busybox源码树docs目录下的mdev.txt文件。