一文了解如何制作rootfs?

一口Linux
关注

五、制作ramdisk文件系统

通过NFS测试以后,就可以制作ramdisk文件系统了,具体如下:

1、制作一个大小为8M的镜像文件 $ cd  ~

$ dd  if=/dev/zero  of=ramdisk  bs=1k  count=8192 (ramdsik为8M)

If: input file

Of: output file

2、格式化这个镜像文件为ext2$ mkfs.ext2  -F  ramdisk

3、在mount下面创建initrd目录作为挂载点$ sudo  mkdir  /mnt/initrd

4、将这个磁盘镜像文件挂载到/mnt/initrd下

注意这里的ramdisk不能存放在rootfs目录中

$ sudo  mount  -t  ext2   ramdisk  /mnt/initrd
5、将测试好的文件系统里的内容全部拷贝到 /mnt/initrd目录下面$ sudo  cp  /source/rootfs   /mnt/initrd  –a

如果拷贝遇到错误,需要再次删除不需要的库,比如c++库

6、卸载/mnt/initrd$ sudo  umount  /mnt/initrd

7、压缩ramdisk为ramdisk.gz$ gzip  --best  -c  ramdisk  >  ramdisk.gz

8、格式化为uboot识别的格式并拷贝到/tftpboot下$ mkimage -n "ramdisk" -A arm -O linux -T ramdisk -C gzip  -d ramdisk.gz  ramdisk.img
$ cp  ramdisk.img  /tftpboot

9、配置内核支持RAMDISK

制作完 initrd.img.gz后,需要配置内核支持RAMDISK作为启动文件系统

make menuconfig
File systems  --->
 <*> Second extended fs support
Device Drivers
 SCSI device support  --->
  <*> SCSI disk support
 Block devices  --->
  <*>RAM  block  device  support  
  (16)Default number of RAM disks  
  (8192) Default RAM disk size (kbytes)   (修改为8M)
General setup  --->
 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

重新编译内核,复制到/tftpboot

10、在U-BOOT命令行重新设置启动参数:# setenv bootcmd tftp 41000000 uImage;tftp 42000000 exynos4412-fs4412.dtb;tftp 43000000  ramdisk.img;bootm 41000000 43000000 42000000
# saveenv

重新启动开发板查看能否正常启动

【注意】因为各个开发板命令会有所差异,uboot命令的设置要厂家出厂的手册操作。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存