LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 767|回复: 1

关于在X86平台上移植的问题

[复制链接]
发表于 2004-11-21 19:50:32 | 显示全部楼层 |阅读模式
我在想CF卡上抑制系统时候出现问题,请求大虾帮助!
    问题是这样的!
    我要做一个CF卡上的linux系统,要求开机引导后就可以运行应用程序!
    我的应用程序是叫hello,在终端打印hello,world!
    我现在是这样做的!
   
    第一阶段:制作CF卡上的LINUX系统
            环境:redhat linux 9.0   工具:CF卡和CF卡读卡器(对系统来说相当于USB设备,就是/dev/sda)
            制作步骤:
                1. 将CF卡分一个区,并格式化为ext2文件系统,然后mount在/mnt/usb 上,
                2. 然后准备根文件系统!我用busybox工具,首先将busybox-1.00下载并静态编译!得到一个_install目录
                    目录里面有/sbin /bin /usr 目录 和一个连接文件 linuxrc。我将这些目录和文件拷贝到CF上,
                    即:cp -a /_install/*  /mnt/usb
                3. 然后建立其它文件系统录: /dev /etc /etc/rc.d   /lib /proc /tmp /var /mnt /boot /boot/grub
              然后在/dev 下建立 console tty tty1 ttyS0 ttyS1 null ram0 hda hda1 hdb hdb1 hdc hdc1 sda sda1
                  在/lib 下 拷入hello程序需要使用的共享库libc-2.3.2.so ld-2.3.2.so libdl-2.3.2.so等
                  在/etc 下建立一些需要的脚本文件,rc.sysinit, inittab, fstab
                 其中:inittab内容如下:
                        id:2:initdefaults:
                         si::sysinit:/etc/rc.d/rc.sysinit
                        ::askfirst:/bin/bash

                        rc.sysinit内容如下:
                        #!/bin/bash
                            umount -a
                            mount -a
                         fstab内容如下:
                        /dev/sda1  /   ext2   defaults 1 1  
                        none /proc proc defaults 0 0
                  4. 建立initrd.img  我直接将redhat 9.0 /boot下的initrd-2.4.20-8.img 拷过!
                  5.将redhat /boot下的vmlinuz-2.4.20-8内核拷到 /boot 下
                  6. 这样文件系统全部完成了!
   第二阶段: 引导系统  
           工具: grub  作为bootloader   
            步骤:  首先将 /boot/grub 目录下的 stage1 stage2 拷贝到 CF卡上/boot/grub目录下面
                然后运行grub程序!

                 grub > root (hd1,0)
                 grub > setup (hd1)
                 grub > quit
               成功装如grub ,然后在/boot/grub目录下建立grub.conf脚本文件
                 default=0
                 timeout=10
                 title CFlinux
                    root (hd0,0)
                    kernel /boot/vmlinuz-2.4.20-8 ro /dev/sda1
                    initrd /boot/initrd-2.4.20-8.img
   然后开机,设定从USB启动, grub可以正确引导,不过系统报错: init can't  find !我的busybox是静态编译的!

    请帮我看看,我的操作步骤对不对,根文件系统是不是这样建立的!给点建议给我!万分感谢!
发表于 2004-11-25 17:02:40 | 显示全部楼层
你没有拷贝init过来吧。
或者下个sysvinit的包,编译,生成init halt killall5 等程序.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表