linux cp dd 不同文件系统,根文件系统的制作

根文件系统的制作

(贴在这是为了方便分析,和大家一起讨论分析,尊重原创)

使用Busybox-1.16.1制作根文件系统

Busybox下载地址:

交叉编译器:arm-linux-4.3.2

一、STEP 1创建根目录:

在home目录下创建/home/rootfs文件夹,用作新构建的根文件系统的根目录

#cd/home

#mkdir  rootfs

创建根文件系统目录,主要包括以下目录

/dev  /etc/lib  /usr  /var/proc/tmp/home/root/mnt/bin/sbin

#mkdirdev  etclib  usr  varproctmphomerootmntbinsbinsys

二、STEP2构建 /bin、/sbin、linuxrc:

解压并进入busybox-1.16.1目录,执行

# make defconfig

# make menuconfig

Busybox Setting ----->

Build Options ----->

[*]Build BusyBox as a static binary (no shared libs)\\静态编译busybox

指定交叉编译器为

(/usr/local/arm/4.3.2/bin/arm-linux-)Cross Compiler prefix

Installation Options ----->

选择上Don’t use /usr

Busybox Library Tuning--->

[*]Username shell prompts

[*]Query  cursor  position  from  terminal

[*]   Fancy shell prompts(这个要是不加会出现[\u@\h \W]#ls这样的错误)

编译出的busybox的shell命令解释器支持显示当前路径及主机信息

保存退出

# make

# make install

在busybox目录下会看见_install目录,里面有/bin/sbinlinuxrc三个文件

三、STEP3构建etc目录:

1)进入根文件系统rootfs的etc目录,执行如下操作:

#cd /home/rootfs/etc

拷贝Busybox-1.2.0/examples/bootfloopy/etc/*到当前目录下

# cp  –r  busybox-1.16.1/examples/bootfloopy/etc/*  rootfs/etc

修改inittab,把第二项改为::respawn:-/bin/login

2)拷贝虚拟机上的/etc/passwd, /etc/group, /etc/shadow到rootfs/etc下。

# cp /etc/passwd    rootfs/etc

# cp /etc/group     rootfs/etc

# cp /etc/shadow    roofs/etc

对以上三个文件修改,只保存与root相关的项,根据具体情况内容会有所不同。

修改passwd为root:x:0:0:root:/root:/bin/sh,即只保存与root相关项,而且最后改成/bin/ash(也就是只保留第一行)

修改group为root:x:0:root

修改shadow为root:$1$x9yv1WlB$abJ2v9jOlOc9xW/y0QwPs.:14034:0:99999:7:::

登陆开发板时需输入用户名密码,同虚拟机相同

3)修改profile

PATH=/bin:/sbin:/usr/bin:/usr/sbin\\可执行程序环境变量

export LD_LIBRARY_PATH=/lib:/usr/lib\\动态链接库环境变量

USER="`id -un`"

LOGNAME=$USER

HOSTNAME='/bin/hostname'

PS1='[\u@\h \W]# '

显示主机名、当前路径等信息:

4)修改 etc/init.d/rc.S文件

/bin/mount -n -t ramfs ramfs /var

/bin/mount -n -t ramfs ramfs /tmp

/bin/mount -n -t sysfsnone /sys

/bin/mount -n -t ramfs none /dev

/bin/mkdir /var/tmp

/bin/mkdir /var/modules

/bin/mkdir /var/run

/bin/mkdir /var/log

/bin/mkdir -p /dev/pts

/bin/mkdir -p /dev/shm

/sbin/mdev -s

/bin/mount –a

echo /sbin/mdev > /proc/sys/kernel/hotplug

5)修改etc/fstab文件,增加以下文件

none/dev/ptsdevptsmode=06220 0

tmpfs/dev/shmtmpfsdefaults0 0

四、STEP4构建lib目录:

进入/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib目录

将以下动态库拷贝到rootfs/lib下

#cp  *so*  roofs/lib  -a

进入以下目录/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib

将以下动态库拷贝到rootfs/lib下

#cp ./libstdc++.so.*  rootfs/lib  -a

五、SETP5下载验证

经过以上几步,一个最基本的linux根文件系统已经制作完毕

可以将制作好的根文件系统通过nfs、cramfs、yaffs工具进行验证

1)CRAMFS工具包主要有两个工具,分别是mkcramfs和cramfsck

mkcramfs工具用来创建CRAMFS文件系统

# mkcramfs dirname  outfile

cramfsck工具用来进行CRAMFS文件系统的释放和检查

# cramfsck  file -x  dir

2)Yaffs工具包yaffs.tar.gz的使用:

#tar  zxvf  yaffs.tar.gz

#cd  yaffs;

#cd  untils

#make   //会产生mkyaffsimage

用mkyaffsimage制作yaffs文件系统镜像:

#mkyaffsimage usr usr.yaffs

与cramfs不同,这个过程是不可逆的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值