0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

移植Linux内核ramfs和ramdisk文件系统

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-10-04 14:41 次阅读

在移植Linux内核早期时,如果flash等存储设备的驱动还没写好,可以将文件系统放到内存中运行。

此时可以使用ramfsramdisk,即将内存的一部分用作文件系统。

ramfs

ramfs就是将文件系统和内核一起编译,编译出来的镜像就包括 内核本身和文件系统

内核打开ramfs

Initramfs source file(s)选项中,填入文件系统的路径即可。

最后,ubootbootargs中需要将init=/sbin/init修改为rdinit=/sbin/init,主要就是initrdinit的区别。

ramdisk

ramdisk也是将内存的一部分用作文件系统,只不过不用像上面一样要重新编译内核。

ramdisk制作

ramdisk制作可以使用genext2fs工具或者mke2fs等工具制作。

方法一:genext2fs

genext2fs安装:

sudo apt-get install genext2fs

ramdisk制作脚本:

genext2fs -b 16384 -d /home/book/rootfs ramdisk.image
gzip –v9 ramdisk.image
mkimage -A arm -O linux -T ramdisk -C gzip -n 'xx ramdisk filesystem' -d ramdisk.image.gz uramdisk.image.gz
  • 先使用genext2fs/home/book/rootfs制作成一个名为ramdisk.imageramdisk
  • 然后使用gizp压缩ramdisk.image,得到ramdisk.image.gz
  • 最后用mkimage工具生成uramdisk.image.gzuboot使用

方法二:mke2fs

ramdisk制作脚本:

dd if=/dev/zero of=ramdisk.image bs=1k count=15360
mke2fs –F –v –m 0 ramdisk.image
mount –o loop ramdisk.image /mnt/loop
cp -a rootfs/* /mnt/loop
umount /mnt/loop
gzip –v9 ramdisk.image
mkimage -A arm -O linux -T ramdisk -C gzip -n 'xx ramdisk filesystem' -d ramdisk.image.gz uramdisk.image.gz

过程类似,只不过是先制作一个空的镜像,然后拷贝文件系统的内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 系统
    +关注

    关注

    1

    文章

    981

    浏览量

    21036
收藏 人收藏

    评论

    相关推荐

    ramfsramdisk文件系统的制作和启动

    移植Linux内核早期时,如果flash等存储设备的驱动还没写好,可以将文件系统放到内存中运行。
    发表于 08-21 15:31 2187次阅读
    <b class='flag-5'>ramfs</b>和<b class='flag-5'>ramdisk</b><b class='flag-5'>文件系统</b>的制作和启动

    浅析Ramdisk制作供linux挂载的根文件系统过程

    ,然后去执行。在linux中,ramdisk有2种:◾initrd:linux内核2.0开始支持,大小固定◾initramfs: linux
    发表于 07-21 15:26

    ramfs不支持创建文件夹,是否可以设计一个ramdisk呢?

    ramfs不支持创建文件夹,是否可以设计一个ramdisk来实现块设备然后实现在ram上的文件系统。想法是:1.在系统初始化时使用ram生成
    发表于 02-08 11:08

    Linux文件系统简介

    Linux文件系统简介 什么是根文件   根文件系统首先是一种文件系统,但是相对于普通的文件系统
    发表于 04-21 17:01 5027次阅读

    制作ZedBoard上linux文件系统(ramdisk)

    loader(FSBL)和引导linux需要的Second-Stage boot loader(SSBL)、Linux内核zImage、设备树文件devicetree_
    发表于 02-10 18:46 1349次阅读
    制作ZedBoard上<b class='flag-5'>linux</b>根<b class='flag-5'>文件系统</b>(<b class='flag-5'>ramdisk</b>)

    详解Linux文件系统Ramdisk的制作过程

    ramdisk是一个最小的linux rootfs系统,它包含了除内核以外的所有linux系统
    发表于 10-30 15:54 1次下载

    嵌入式Linux常用文件系统

    Linux支持很多文件系统,在选择时应根据应用的功能选择文件系统 内核只认识VFS(虚拟文件系统),不同的
    发表于 05-04 17:19 2147次阅读
    嵌入式<b class='flag-5'>Linux</b>常用<b class='flag-5'>文件系统</b>

    Linux 内核/sys 文件系统介绍

    linux2.6内核引入sysfs文件系统,sysfs可以看成与proc,devfs和devpty同类别的文件系统,该文件系统是虚拟的
    发表于 04-25 16:20 4086次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>内核</b>/sys <b class='flag-5'>文件系统</b>介绍

    需要了解的混合文件系统ramdisk+jffs)

    ramdisk制作成一个基本的文件系统,不同项目改动的只是jffs2数据分区,可以实现文件系统的重复利用。类似于核心板和底板的关系。
    发表于 04-25 17:38 1657次阅读
    需要了解的混合<b class='flag-5'>文件系统</b>(<b class='flag-5'>ramdisk</b>+jffs)

    Linuxramdisk,tmpfs,ramfs对比说明

    Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk,分为:Ramdisk, ramfs, tmpfs.
    发表于 04-27 19:38 2363次阅读
    <b class='flag-5'>Linux</b>中<b class='flag-5'>ramdisk</b>,tmpfs,<b class='flag-5'>ramfs</b>对比说明

    如何实现Linux内核移植和yaffs2根文件系统制作

    本文档的主要内容详细介绍的是如何实现Linux内核移植和yaffs2根文件系统制作。
    发表于 03-24 09:12 9次下载

    嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统

    基于Yocto构建嵌入式u-boot,内核文件系统Yocto是什么?简单地概括,它是一个工具,可以用来构建u-boot,kernel,文件系统,交叉编译工具链,等等。Yocto提供了一套完整的全面
    发表于 11-01 17:38 12次下载
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>移植</b>开发-(1)基于Yocto构建嵌入式u-boot,<b class='flag-5'>内核</b>,<b class='flag-5'>文件系统</b>

    嵌入式Linux系统移植-(Linux文件系统

    嵌入式Linux系统移植-(Linux文件系统)嵌入式文件系统概述·
    发表于 11-02 12:51 16次下载
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>移植</b>-(<b class='flag-5'>Linux</b><b class='flag-5'>文件系统</b>)

    深入剖析Linux内核虚拟文件系统

    虚拟文件系统(Virtual File System,简称VFS)是Linux内核的子系统之一,它为用户程序提供文件
    的头像 发表于 05-14 15:53 2736次阅读
    深入剖析<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>虚拟<b class='flag-5'>文件系统</b>

    Linux配置kernel使用ramdisk文件系统

    配置kernel使用ramdisk文件系统 修改 uboot 的环境变量: setenv initrd_high= 0 xffffffff setenv bootargs console=ttyS
    的头像 发表于 10-04 14:48 927次阅读
    <b class='flag-5'>Linux</b>配置kernel使用<b class='flag-5'>ramdisk</b><b class='flag-5'>文件系统</b>