最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

制作ext2/ext3根文件系统的两种方法

工作和技术 crifan 2719浏览 0评论

制作ext2/ext3根文件系统的两种方法

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,启动系统了。

转载请注明:在路上 » 制作ext2/ext3根文件系统的两种方法

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.153 seconds, using 22.13MB memory