热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

制作ramdisk根文件系统大家说

来源: 作者: 时间:2008-02-16 Tag: 点击:


再来编写rcS脚本:

xuxian@omap1:~/fsys/ramdisk/etc/$mkdir init.d

xuxian@omap1:~/fsys/ramdisk/etc/$cd init.d

xuxian@omap1:~/fsys/ramdisk/etc/init.d$vi rcS
脚本如下:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

HOSTNAME=OMAP5912OSK
hostname $HOSTNAME
echo ""
echo "******************************************"
echo "Starting System Init for $HOSTNAME"
echo "******************************************"

# goto the init.d directory
cd /etc/init.d

# Mount the default file systems
mount -a # Mount the default file systems

# Configure network
#/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255
#/sbin/ifconfig eth0 128.247.75.151 netmask 255.255.254.0 broadcast
128.247.75.255
#/sbin/route add default gw 128.247.74.1 eth0

然后时rcS2脚本:

xuxian@omap1:~/fsys/ramdisk/etc/init.d$vi rcS2

#!/bin/sh
/bin/mount -n -o remount,rw /

/bin/mount -a
echo Starting Network
#modprobe i2c-core
#modprobe i2c-algo-bit
#modprobe i2c-omap1510
#modprobe soundcore
#modprobe omap-audio
#modprobe omap1510-aic23

/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
/sbin/ifconfig eth0 10.1.3.3 netmask 255.255.0.0 broadcast 10.1.255.255
/sbin/route add default gw 10.1.0.100 eth0
~
~

最后时编写fstab脚本,我的很简单:

xuxian@omap1:~/fsys/ramdisk/etc$vi fstab
proc             /proc            proc     defaults         0        0

8、用nfs检查根文件系统:

做完以上这些就可以用nfs来启动目标系统了。编辑/etc/exports加入/home/xuxian/fsy
s/ramdisk 192.168.4.190(rw,sync,no_root_squash,no_all_squash)其中192.168.4.19
0是目标板的ip。
连接目标板用tftp或者串口线下载u-boot和kernel,在u-boot的环境变量中加入:seten
v bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs
nfsroot=192.168.0.11:/home/xuxian/fsys/ramdisk,nolock mem=30M其中192.168.0.11
是主机ip,/home/xuxian/fsys/ramdisk为ramdisk目录。

9、通过烧写flash检查文件系统

最后如果想生成image文件烧到flash中可以执行如下命令:

xuxian@omap1:~/fsys$umount ramdisk
xuxian@omap1:~/fsys$gzip -v9 rootfs
这样就生成了rootfs.gz文件,可以连同u-boot,kernel一起烧到flash中了。

儒雅说:

# vi mkinitrd.sh -- 脚本好
----------------------------------------

#!/bin/bash

#------------- make file system
cd /tftpboot
rm -fr ramdisk &> /dev/null
umount /mnt    &> /dev/null
dd if=/dev/zero of=ramdisk bs=1k count=8192 &>/dev/null
mkfs.ext2 -F ramdisk       &> /dev/null
mount -o loop ramdisk /mnt &> /dev/null

#------------- make directory
cd /mnt
rm -r *
mkdir lib dev proc etc mnt usr bin sbin tmp sys


#------------- cp lib
cd /usr/local/arm/3.4.1/arm-linux/lib
for file in libc libcrypt libdl libm libpthread libresolv libutil
do
    cp $file-*.so /mnt/lib
    cp -d $file.so.[*0-9] /mnt/lib
done
cp -d ld*.so* /mnt/lib

#------------- cp busybox
cd /home/zxl/s3c2410/source/busybox/busybox-1.7.0
cp -rf _install/* /mnt/
cp -r examples/bootfloppy/etc/init.d/ /mnt/etc/


#------------- edit /etc/init.d/rcS (0)
echo "echo /sbin/mdev > /proc/sys/kernel/hotplug" >>/mnt/etc/init.d/rcS
echo "/sbin/mdev -s"                              >>/mnt/etc/init.d/rcS

#------------- make device file     (1)
cd /mnt/dev
mknod -m 660 console c 5 1
mknod -m 660 null    c 1 3


#------------- make etc file
cat > /mnt/etc/inittab << EOF
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/msh       
::restart:/sbin/init      
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r   
::shutdown:/sbin/swapoff -a   
EOF

cat > /mnt/etc/fstab << EOF
proc    /proc    proc    defaults    0    0
sysfs   /sys     sysfs   defaults    0    0
EOF


#------------- make zip file
cd /
umount /mnt
cd /tftpboot
rm -fr ramdisk.gz &>/dev/null
gzip -9 ramdisk


(0) 配置mdev
(1) 由于2.6.19中已经不包含devfs,所以还需要在root filesystem中配置console和null设备,否则将不能进入交互界面(不会出现提示符#)

# vi mkinitrd.sh -- 脚本好
----------------------------------------

#!/bin/bash

#------------- make file system
cd /tftpboot
rm -fr ramdisk &> /dev/null
umount /mnt    &> /dev/null
dd if=/dev/zero of=ramdisk bs=1k count=8192 &>/dev/null
mkfs.ext2 -F ramdisk       &> /dev/null
mount -o loop ramdisk /mnt &> /dev/null

#------------- make directory
cd /mnt
rm -r *
mkdir lib dev proc etc mnt usr bin sbin tmp sys


#------------- cp lib
cd /usr/local/arm/3.4.1/arm-linux/lib
for file in libc libcrypt libdl libm libpthread libresolv libutil
do
    cp $file-*.so /mnt/lib
    cp -d $file.so.[*0-9] /mnt/lib
done
cp -d ld*.so* /mnt/lib

#------------- cp busybox
cd /home/zxl/s3c2410/source/busybox/busybox-1.7.0
cp -rf _install/* /mnt/
cp -r examples/bootfloppy/etc/init.d/ /mnt/etc/


#------------- edit /etc/init.d/rcS (0)
echo "echo /sbin/mdev > /proc/sys/kernel/hotplug" >>/mnt/etc/init.d/rcS
echo "/sbin/mdev -s"                              >>/mnt/etc/init.d/rcS

#------------- make device file     (1)
cd /mnt/dev
mknod -m 660 console c 5 1
mknod -m 660 null    c 1 3


#------------- make etc file
cat > /mnt/etc/inittab << EOF
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/msh       
::restart:/sbin/init      
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r   
::shutdown:/sbin/swapoff -a   
EOF

cat > /mnt/etc/fstab << EOF
proc    /proc    proc    defaults    0    0
sysfs   /sys     sysfs   defaults    0    0
EOF


#------------- make zip file
cd /
umount /mnt
cd /tftpboot
rm -fr ramdisk.gz &>/dev/null
gzip -9 ramdisk


(0) 配置mdev
(1) 由于2.6.19中已经不包含devfs,所以还需要在root filesystem中配置console和null设备,否则将不能进入交互界面(不会出现提示符#)

最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册