mke2fs 制作ext2文件系统image
方法1: 利用/dev/ram1:
linux下有很多ram,我们用ram1,首先把ram1格式化成ext2文件系统
[root@gucuiwen babylinux]# sudo mkfs.ext2 -m0 /dev/ram1
将ram1挂装到文件系统中:
先建立一个挂装点:
#mkdir /mnt/ram
挂上ram1:
# sudo mount /dev/ram1 /mnt/ram
将先前做好的rootfs根文件系统拷贝到ram1上.
# sudo cp -R dist/* /mnt/ram/
拷贝好根文件系统后卸载ram1:
# sudo umount /dev/ram1
再用dd把这个ram1以映象方式取出来:
[root@gucuiwen babylinux]# dd if=/dev/ram1 of=initrd.img
读入了 8192+0 个块输出了 8192+0 个块
把生成的initrd.img拷到一个地方备用
gzip -v9 initrd.img //压缩成initrd.img.gz
方法2 : loop device和ram disk.
loop device:
创建fs image:
dd if=/dev/zero of=image.file bs=1k count=100000
losetup /dev/loop0 image.file
mke2fs -c /dev/loop0 100000
加载:
mount -t ext2 /dev/loop0 /mnt
umount /mnt
losetup -d /dev/loop0
或者
mount -t ext2 -o loop image.file /mnt
umount /mnt
loop device将一个硬盘上的文件虚拟成块设备,大小取决于losetup
时那个文件的大小,断电后内容不丢失;
ram disk将一块内存虚拟成块设备,大小取决于ramdisk_size启动参数,
断电后内容丢失。
ramdisk: 根据grub启动参数ramdisk_size决定大小,默认4MB
可以格式化ram disk并往里面写文件,然后dd出来做一个fs image,
但这个image大小跟ramdisk一样大(疑问:好像可以比ramdisk的
容量小,因为mke2fs可以指定block数目)。
综上,做一个fs image的办法还是得losetup那个好些, 不用受内存
大小的限制.
mke2fs 制作ext2文件系统image的更多相关文章
- 深入解析ext2文件系统之mke2fs
上一遍博文的重点其实将ext2整体的组织框架,我们知道了ext2文件系统由块组组成,每个块组里面的组织形式.我们甚至直接把超级块和组描述符里面的内容,用十六进制形式展现了出来.这篇博文主要讲述如何 ...
- ext2文件系统 - mke2fs
上一遍博文的重点其实将ext2整体的组织框架,我们知道了ext2文件系统由块组组成,每个块组里面的组织形式.我们甚至直接把超级块和组描述符里面的内容,用十六进制形式展现了出来.这篇博文主要讲述如何 ...
- ext2文件系统
2.1. 总体存储布局 我们知道,一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种mkfs命令)格式化成某种格式的文件系统,然后才能存储文件,格式化的过程会在磁盘上写一些管理存储布局的 ...
- 利用busybox制作根文件系统
实际项目中可以使用Buildroot制作根文件系统 1.busybox源码下载及配置 https://busybox.net/downloads/ 1.1.修改Makefile (1) ARCH = ...
- 认识 EXT2 文件系统
认识ext文件系统 硬盘组成与分割 文件系统特性 Linux 的 EXT2 文件系统(inode) 与目录树的关系 EXT2/EXT3 文件的存取与日志式文件系统的功能 Linux 文件系统的运行 挂 ...
- ext3是对ext2文件系统的一个扩展高性能日志文件系统
嵌入式开发者所做的最重要的决定之一就是部署哪种文件系统.有些文件系统性能比较高有些文件系统空间利用率比较高,还有一些文件系统设备故障或者意外断电后恢复数据比较方便. linux文件系统概念 分区 分区 ...
- EXT2 文件系统
转自:http://www.cnblogs.com/ggjucheng/archive/2012/08/22/2651641.html#ext2_filesystem 认识ext文件系统 硬盘组成与分 ...
- Linux ext2文件系统
Linux最传统的磁盘文件系统(filesystem)使用的是ext2 1.ext2文件系统结构ext2文件系统划分为多个块组,每个块组拥有独立的inode/block,一个文件系统只有一个Super ...
- 深入解析 ext2 文件系统
很久以来,就想写一篇关于ext 家族文件系统的文章,源于我刚工作的时候,曾经一不小心rm -rf,误删除了很多文件,当时真想有个数据恢复软件能帮我把数据回复了.当然学习数据恢复,首先要学习文件系统. ...
随机推荐
- ios网络请求
1.AFNetworking object 2.Alamofire swift
- j.u.c系列(02)---线程池ThreadPoolExecutor---tomcat实现策略
写在前面 本文是以同tomcat 7.0.57. jdk版本1.7.0_80为例. 线程池在tomcat中的创建实现为: public abstract class AbstractEndpoint& ...
- 基于ASP.NET WebAPI OWIN实现Self-Host项目实战
引用 寄宿ASP.NET Web API 不一定需要IIS 的支持,我们可以采用Self Host 的方式使用任意类型的应用程序(控制台.Windows Forms 应用.WPF 应用甚至是Windo ...
- tomcat点击startup.bat一闪而退的方法
摘要 在摸索tomcat的配置的时候,发现在启动tomcat服务器的时候,点击startup一闪而退. 解决办法 分析闪退原因,简单做法,右键编辑startup.bat文件,在最后一行添加“pause ...
- IEnumerable是集合,IEnumerator是集合的迭代器
我们常用IEnumerable,却忽视IEnumerator.简单来说,IEnumerable是可以被循环遍历的集合,IEnumerator实施循环遍历. 接口分别是: public interfac ...
- 集群服务器下使用SpringBoot @Scheduled注解定时任务
原文:https://blog.csdn.net/huyang1990/article/details/78551578 SpringBoot提供了 Schedule模块完美支持定时任务的执行 在实际 ...
- bean validation 技术规范
Bean Validation 技术规范特性概述 张 冠楠 和 陈 志娴2011 年 3 月 24 日发布 WeiboGoogle+用电子邮件发送本页面 2 概述 Bean Validation 规范 ...
- java容器的总结
1.什么是容器? 在程序中,容器是一种用来容纳对象的数据结构,比如说list.set .map.queue. 2.为什么需要容器? 我们为什么需要容器呢?因为在程序中,我们会在任意时刻和任意位置创建任 ...
- Caused by: java.lang.IllegalArgumentException: Can not set int field reyo.sdk.enity.xxx.xxx to java.lang.Long
由于数据库字段设置不正确引起的,不能选中 alter <table> modify <column> int unsigned; 关于unsigned int类型,可以看看它的 ...
- Spring Boot中application.yml与bootstrap.yml的区别(转载)
说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...