romfs, cramfs和ramdisk

From:http://blog.csdn.net/at91rm9200/article/details/550074

文章来源 (http://publishblog.blogchina.com/blog/tb.b?diaryID=3226065)

cramfs和romfs只是一个文件系统类型,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你 linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 ^-^恭喜你,你答对了,加10分
cramfs是只读压缩的文件系统,文件系统类型可以是ext2,ext3,什么的,
制作方法: 假如你的根文件系统的目录是 rootfs (你将来要用到的所有的文件就在这里)
like this : mkcramfs rootfs rootfs.cramfs 就搞定了。如名字所言,它是只读压缩,所以比较省空间,如果你的flash比较小,就用这个吧! 系统启动后,kernel把他load到内存中,解压,所以比较占内存。看你的需要了。

而ramdisk呢?这个用的比较多,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 关键是以后,在ramdisk里面可以写,这是一个和cramfs重要的区别了。
具体制作方法:
dd if=/dev/zero of=rootfs.img bs=1M count=一个整数(看你的实际的需要的空间了,一般也就10M)
把它格式化为你需要的文件系统,比如 ext2 ,ext3 ,reiserfs 什么的,
比如ext3 : mkfs.ext3 root.img
然后把它mount到某个目录,比如tmp 吧:
mount -t ext3 /tmp/

然后,你的文件系统所在的目录的所有文件copy到tmp目录下: 比如你的文件系统目录在/root/rootfs-test :
cp -av /root/rootfs-test/* /tmp/ (这里注意一个细节:copy的时候,用参数a表示copy全部,v表示只copy链接本身,不copy它指向的内容,这点很关键哦!) ,另外,有的人常用:cp -pdR 这个你也可以试试,意思就是原来什么样,copy过去就什么样。

然后卸载/tmp/ 目录就好了。
umount /tmp

一般的情况下,ramdisk是要压缩的,对于上面的生成好的img, rootfs.img ,你可以这样压缩:
gzip -v9 rootfs.img 会自动生成rootfs.img.gz ,一般压缩率,30%吧!

romfs 
uCLinux系统采用ROMFS文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面:首先内核支持ROMFS文件系统比支持ext2文件系统需要更少的代码;其次ROMFS文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。ROMFS文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟RAM盘的方法进行处理(RAM盘将采用ext2文件系统).
可以从http://romfs.sourceforge.net/下载生成romfs的工具genromfs

个人经验: 你自己要创建文件系统,一般是先建一个目录在里面建一些常用的目录,比如bin ,sbin ,root ,etc lib 什么的,正如楼上所言,lib比较烦,需要考虑你要用的程序需要的动态链接库,
建议你先搞一个别人的,拿过来,参考,自己去改,一开始,自己去作肯定要疯的。

你可以到网上搜搜的。 有个网站,http://user-mode-linux.sourceforge.net/  这个里面提供了一些简单的文件系统,你可以拿过来,自己改改。 这是个比较快的方法,其实,里面要改基本是:
/etc/rc.d/** 下面的启动脚本。
lib/下的一些动态链接库。
shell busybox知道吗? 利用这个,可以省很多空间, 到google上搜搜



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt中利用QProcess调用外部cmd.exe执行程序

1、#include "mainwindow.h"中 添加头文件&#xff1a; #include <QProcess> 添加成员&#xff1a; QProcess *myprocess; 添加槽函数声明&#xff1a; void showCMDResult(); void showCMDState(QProcess::ProcessState state); void showCMDError(); vo…

html 后# 号的作用,及html 如何传参

2019独角兽企业重金招聘Python工程师标准>>> 经常在 网上看到一些静态网页后加着 #XXX 如http://www.family168.com/tutorial/springsecurity3/html/introduction.html#spring-security-core 这种形式。这个#spring-security-core 起的作用就是在 introduction 中定…

oracle10g生成awr报告,awr报告生成位置.docx

awr报告生成位置/u01/app/oracle/product//dbhome_1/rdbms/admin/脚本生成awr报告  在SQL环境执行&#xff1a;SQL>/u01/app/oracle/product//dbhome_1/rdbms/admin/  输入报告类型&#xff1a;html或text  输入要生成报告的天数&#xff0c;缺省是7天  列出最近7天…

Codeforces Round #304 (Div. 2)

这次打得较差&#xff0c;差点就绿了。。。 B题&#xff0c;这B题竟然WA了&#xff0c;再看看就发现一个很严重的错误。。--! #include <iostream> #include <cstdio> #include <algorithm> #include <cstring>using namespace std;int num[3050];int …

Qt 设置应用程序开机自启动

要实现开机自启动&#xff0c;主要是将应用程序添加到注册表中。 一、首先定义注册表 #define AUTO_RUN "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run" 二、编写开机自启动设置函数 //开机自启动&#xff0c;采用QSetting的方式将其写…

MySQL浅谈 LEFT JOIN

On条件&#xff08;在“A left join b on conditional_expr”&#xff09;决定如何从table B 中检索数据行&#xff08;Matching-State&#xff09;; 如果&#xff22;中没有行匹配On 条件&#xff0c;额外的B的所有数据列被设为null; 如果Matching-Stage阶段,where语句的任…

oracle cdc 关闭,Oracle CDC部署流程

一、ORACLE环境检查查oracle数据库版本(>9.2.0.4.0).select * from v$version;BANNEROracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdPL/SQL Release 10.2.0.1.0 - ProductionCORE 10.2.0.1.0 ProductionTNS for 32-bit Windows: Version …

几个重要的RedHat Linux内核文件介绍 (1)

From:http://tech.sina.com.cn/s/s/2006-06-27/061923370.shtml Linux服务器内核编译基础 mynix编译自www.linux.org之Linux HowTo之Kernel HowTo 在网络中&#xff0c;不少服务器采用的是Linux系统。为了进一步提高服务器的性能&#xff0c;可能需要根据特定的硬件及需求重新…

Qt 两个Ui 界面传值

一、说明 A子界面 B主界面 &#xff0c; 实现A往B传值&#xff0c;B显示. 二、利用emit和slot实现 2.1 对A.h 添加声明 signals: void sendData(QString); //用来传递数据的信号 2.2在A.cpp中适当位置将数据进行发射 emit sendData(ui->lineEdit->text());…

有哪些是你成为一名开发之后才知道的事情

目录 前言 疑问1成为一名开发真的很难嘛&#xff1f; 疑问2作为一名开发的工资一定很高吗 疑问3开发一定加班会很厉害嘛 疑问4一定要去大厂嘛 疑问5程序员是个很好的职业选择吗 疑问6毕业前参加培训好吗 疑问7入行之后要不断提升自己的能力吗 疑问8大学四年该如何度过 疑问…

她们分别买了什么?

using System; using System.Collections.Generic; using System.Text; class Program { static void Main(string[] args) { /* * 测试 9&#xff0e;她们分别买了什么? */ WhatWasBought(); …

[发布] 矩阵乘法及其对于编程求斐波那契数列的某一项的应用

需要PDF的读者可以向我索要。 如果发现有翻印与用于商业用途&#xff0c;将予追究。 编者注&#xff1a;本文中如果没有特殊说明&#xff0c;除法均只取整数部分&#xff0c;忽略小数部分。 感谢大家对我的支持&#xff01;同时感谢ysy大聚聚。转载于:https://www.cnblogs.com…

oracle新建用户sql局域,oracle 新建数据库,及创建用户,表空间,sqlplus导入导出数据库...

oracle11G新建数据库&#xff1a;默认下一步&#xff1a;默认下一步&#xff1a;默认下一步&#xff1a;填写数据库名下一步&#xff1a;默认下一步&#xff1a;完成&#xff0c;再按指示确定&#xff0c;就完成了数据库的创建。数据库创建完后&#xff0c;在oracle11G Net Man…

QIcon 给按钮和动作添加图片

对Qt中资源文件的引用时&#xff0c;QAction/QPushbutton添加图标时&#xff0c;需要用到图片的路径。 1、先添加资源文件&#xff0c;项目->添加新的文件->Qt resource files->添加前缀->添加文件。 2、复制需要文件的路径&#xff1b;&#xff08;工程树对应图…

linux下xargs命令用法详解

From:http://biancheng.dnbcw.info/shell/268829.html xargs在 linux中是个很有用的命令,它经常和其他命令组合起来使用,非常的灵活.xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.由此这个命…

监理公司的核心竞争力

企业竞争力模型&#xff0c;无疑要看迈克尔波特的文章&#xff0c;从企业竞争、行业竞争至国家竞争&#xff0c;都有成熟的竞争理论。同多数IT公司一样,监理公司核心竞争力仍然是创新与复制能力.只不过IT产品是监理咨询与服务&#xff0c;纯粹服务产品的研发和管理&#xff0c;…

Altera 速度等级

~~ 转载于:https://www.cnblogs.com/agllero/p/4533848.html