Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1015428
  • 博文数量: 244
  • 博客积分: 6820
  • 博客等级: 准将
  • 技术积分: 3020
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 21:33
文章分类

全部博文(244)

文章存档

2013年(1)

2012年(16)

2011年(132)

2010年(3)

2009年(12)

2008年(80)

我的朋友

分类: LINUX

2012-03-31 10:28:49

1.利用buildroot自动生成
A。确保自己已经建立好了可以使用的buildroot

具体如何建立,请参考其他相关资料

B。配置使buildroot支持ext2的rootfs
make menuconfig
   Target filesystem options --->       
| |                         [*] ext2 root filesystem
| |                         (0)   size in blocks (leave at 0 for auto calculation)
| |                         (0)   inodes (leave at 0 for auto calculation)
| |                         (0)   reserved blocks percentage

这样,保存退出之后,再make
buildroot就会自动去下载并编译,生成对应的genext2fs工具,
去制作生成对应的rootfs镜像了,生成的文件在:
binaries/uclibc/rootfs.arm-.ext2

2.利用工具mke2fs工具手动制作rootfs

前提:
A。根文件系统所有需要的文件都已经准备好了
此处放在root文件夹下,ls结果为:
drwxr-xr-x   19 root     root         4.0k Dec 31 17:06 ./
drwxr-xr-x   19 root     root         4.0k Dec 31 17:06 ../
drwxr-xr-x    2 root     root         4.0k Sep 23 2009 bin/
drwxr-xr-x   11 root     root         8.0k Sep 20 2009 dev/
drwxr-xr-x    5 root     root         4.0k Sep 23 2009 etc/
drwxr-xr-x    3 root     root         4.0k Sep 20 2009 home/
drwxr-xr-x    3 root     root         4.0k Sep 23 2009 lib/
lrwxrwxrwx    1 root     root           11 Dec 31 17:04 linuxrc -> bin/busybox*
drwx------    2 root     root        16.0k Dec 31 17:01 lost+found/
drwxr-xr-x    4 root     root         4.0k Sep 20 2009 media/
drwxr-xr-x    4 root     root         4.0k Dec 31 17:01 mnt/
drwxr-xr-x    2 root     root         4.0k Sep 20 2009 opt/
dr-xr-xr-x   29 root     root            0 Dec 31 17:00 proc/
drwxr-xr-x    2 root     root         4.0k Sep 23 2009 root/
drwxr-xr-x    2 root     root         4.0k Sep 23 2009 sbin/
drwxr-xr-x   10 root     root            0 Dec 31 17:00 sys/
drwxr-xr-x    2 root     root         4.0k Sep 23 2009 test/
drwxrwxrwt    2 root     root           40 Dec 31 17:00 tmp/
drwxr-xr-x    7 root     root         4.0k Sep 20 2009 usr/
drwxr-xr-x    3 root     root         4.0k Sep 20 2009 var/

B下载需要的工具的源码
此处需要mke2fs工具,其作用是:
针对一个分区/设备,创建一个ext2/ext3的文件系统

对于mke2fs的用法,简单提示一下:
a.常见得mkfs.ext2 和 mkfs.ext3其实就是mke2fs的链接,即制作ext2和ext3都是用的mke2fs这个工具:
-rwxr-xr-x    1 root     root        53.8k Sep 23 2009 mke2fs*
lrwxrwxrwx    1 root     root            6 Dec 31 17:04 mkfs.ext2 -> mke2fs*
lrwxrwxrwx    1 root     root            6 Dec 31 17:04 mkfs.ext3 -> mke2fs*

b.如果参数是-j,表示加上日志,就是ext3,否则默认的是ext2.

制作ext2/ext3的rootfs的步骤:
A .格式化设备/分区
mkfs.ext2 /dev/lba
输入结果如下:
[root@10 mnt]# mkfs.ext2 /dev/lba
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
488640 inodes, 976640 blocks
48832 blocks (500%) reserved for the super user
First data block=0
Maximum filesystem blocks=1002438656
30 block groups
32768 blocks per group, 32768 fragments per group
16288 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                           
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

B。挂载设备
注:此处我们nfs启动
将/dev/lba这个块设备mount上去:
mkdir /mnt/lba
mount -t ext2 /dev/lba /mnt/lba

C。拷贝所有的rootfs的文件到ext2分区里
cp root/* /mnt/lba -a

注意: cp命令此处的-a参数即-dpR,即
-d 保留链接,如果不加此参数,拷贝时候就会直接拷贝文件,就会极大增加拷贝后的rootfs的大小
-p 尽可能地保留原先文件的属性,比如mode,ownership,timestamp等
-R 递归

这样,就可以将rootfs文件全部拷贝到此块设备里面了。
然后,就可以继续我们需要的,启动时候,从/dev/lba,按照ext2方式挂载rootfs,启动系统了。


阅读(4273) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~