精华内容
下载资源
问答
  • 最近接手一个项目,要做UBI文件系统镜像还原,要达到以下目标: 实现UBI文件系统镜像文件还原,从镜像文件中还原出UBI文件系统的数据结构,类似于Linux内核中 加载文件系统镜像,最后还原出文件系统未压缩为镜像文件...
  • 解析jffs2文件系统镜像文件

    千次阅读 2015-10-15 11:18:48
    解析jffs2文件系统镜像文件

    原文来自: http://telltruth.blogbus.com/logs/25057536.html

    在 mtd-utils 里边有 mkfs.jffs2 和 jffs2dump. 那个 mkfs.jffs2 用来把一堆输入文件打成一个 JFFS2 文件系统的镜像文件, jffs2dump 可以显示一个镜像文件里边各个文件的各个 inode 的信息. --- 但是没有一个程序可以直接把镜像文件解开, 把里边的文件提取出来.

    可以先把镜像文件挂载到一个目录上, 再把里边的文件拷贝出来. 不过直接用 `mount -t jffs2 -o loop' 挂载 JFFS2 镜像是不行的, 因为 `/dev/loop#' 不是一个 MTD 设备. 这儿就要用到 block2mtd 这个内核模块了.

    # make the JFFS2 image, /tmp/rootfs.jffs2, a block device
    losetup /dev/loop0 /tmp/rootfs.jffs2
    
    # convert it to a MTD device
    modprobe block2mtd
    echo "/dev/loop0" > /sys/module/block2mtd/parameters/block2mtd
    # or
    #modprobe block2mtd block2mtd=/dev/loop0
    # now there should be an entry in /proc/mtd
    
    # for /dev/mtdblock#
    modprobe mtdblock
    # now /dev/mtdblock0 is created automatically
    
    # this would be done automatically when mount
    #modprobe jffs2
    
    # mount it, in read only mode so that it is not modified by accident
    mount -t jffs2 -o ro /dev/mtdblock0 /mnt/jffs2
    # extract files
    tar -cf - -C /mnt/jffs2 . | tar xvf - -C /tmp/rootfs
    # or
    #rsync -av /mnt/jffs2/ /tmp/rootfs
    # or whatever...
    
    # cleanup
    umount /mnt/jffs2
    rmmod jffs2
    rmmod mtdblock
    rmmod block2mtd
    losetup -d /dev/loop0
    #rmmod mtd_blkdevs mtd

    这些命令都得有 root 权限才行呢. 这儿假设了 /dev/loop0 没被别人占用, 而且这个 MTD 块是 /dev/mtdblock0. 用 `losetup -f' 可以看空闲的 loop 设备, 看 /proc/mtd 的内容就能知道该挂载哪个 mtdblock 了.

    2008/7/20 补充:

    昨天忽略了很重要的一点. 设 block2mtd 的参数, 格式是 `block2mtd=<dev>[,<erasesize>]', 这个 <erasesize> 说是可选的, 其实还是得设的.

    不设的话, block2mtd 给 erasesize 的默认值是 PAGE_SIZE, 也就是 4 kiB. 这样挂载成功, 拷贝成功, 出来的文件里边却但是总是有坏的地方. 用 dmesg 看的话, 能看到好多报错.

    我这里把 erasesize 设成 131072, 也就是 128 kiB 就好了. --- 这个要跟当初 mkfs.jffs2 时 -e 指定的大小一样.

    modprobe block2mtd block2mtd=/dev/loop0,131072

    另外今天我又知道了一个办法, 不用 block2mtd, 而是用 mtdram 的.

    # default total_size is 4 MiB, which may be too small for use
    # here I set it to 262144 kiB, ie 256 MiB
    modprobe mtdram total_size=262144
    # /proc/mtd should have an entry mtd0 now
    
    modprobe mtdchar
    # /dev/mtd0 created automatically
    
    # write the image to /dev/mtd0
    dd if=/tmp/rootfs.jffs2 of=/dev/mtd0
    
    modprobe mtdblock
    #modprobe jffs2
    mount -t jffs2 -o ro /dev/mtdblock0 /mnt/jffs2
    umount /mnt/jffs2
    
    rmmod jffs2 mtdblock mtdchar mtdram mtd_blkdevs mtd
    展开全文
  • Linux_Hi3518E开发_制作根文件系统镜像

    千次阅读 2017-01-05 12:54:10
     之前看《Linux开发环境用户指南》的时候没看仔细,没有看到文件系统镜像制作的介绍,今天终于制作成功了,特地记录下制作的过程,便于以后回顾,本文只介绍JFFS2格式文件系统镜像的制作。 根文件系统简介  ...

    开篇废话

        之前看《Linux开发环境用户指南》的时候没看仔细,没有看到文件系统镜像制作的介绍,今天终于制作成功了,特地记录下制作的过程,便于以后回顾,本文只介绍JFFS2格式文件系统镜像的制作。

    根文件系统简介

        Linux的目录结构的最顶层是一个被称为“ /”的根目录。系统加载 Linux 内核之后,就会挂载一个设备到根目录上。存在于这个设备中的文件系统被称为根文件系统。所有的系统命令、系统配置以及其他文件系统的挂载点都位于这个根文件系统中。

        根文件系统通常存放于内存和 Flash 中,或是基于网络的文件系统。根文件系统中存放了嵌入式系统使用的所有应用程序、库以及其他需要用到的服务。下图列出了根文件系统的顶层目录。

        通用的 Linux 系统的根文件系统中会包括根文件系统顶层目录结构图中所有的目录,不过在嵌入式系统中,需要精简根文件系统。部分可以被忽略的目录如下表所示。

    制作根文件系统

        根文件系统我们利用busybox来制作,首先需要获取busybox源代码,然后配置、编译和安装busybox,操作成功后开始制作根文件系统。

    1)获取busybox源代码

    成功安装SDK后,busybox完整源代码就存放在package/目录中。 

    2)配置busybox

    进入busybox所在目录,进行配置操作需要输入如下命令:

    hisilicon$ make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig

    busybox的配置界面和内核配置相似,其功能选项容易理解,可以根据自己的需求选择配置。

    在 Busybox Settings ---> Build Options 中注意下面两个选项:

    [*]Build BusyBox as a static binary (no shared libs)

    (arm-hisiv100nptl-linux-) Cross Compiler prefix

    其中:

    1. 第一个选项选择是否把 busybox 编译成静态链接的可执行文件。如果选择该选项,编译出来的 busybox 就是静态链接的,运行时不依赖于动态库,但体积较大;清除该选项将得到动态链接的busybox,体积较小,但需要动态库的支持。

    2. 第二个选项是用于选择 SDK 推荐的交叉编译器,配置好后保存并退出。

    3)编译和安装busybox

    编译和安装busybox的具体操作如下:

    hisilicon$ make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linuxhisilicon$ make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- install

    编译并安装成功后,在 busybox 目录下的_install 目录下生成以下目录及文件:

    drwxr-xr-x 2 linux linux 4096 2005-04-22 11:01 bin

    lrwxrwxrwx 1 linux linux 11 2005-04-22 11:01 linuxrc->bin/busybox

    drwxr-xr-x 2 linux linux 4096 2005-04-22 11:01 sbin

    drwxr-xr-x 4 linux linux 4096 2005-04-22 11:01 usr

    4)制作文件系统

    成功安装 SDK 后,在 osdrv/rootfs_scripts/目录中存放已制作好的根文件系统压缩包rootfs.tgz。

    用户如有需要可在 busybox 的基础上制作根文件系统。

    制作根文件系统的具体操作步骤如下:

    1. hisilicon$mkdir rootfs

    hisilicon$cd rootfs

    hisilicon$cp –R package/osdrv/ busybox/busybox-1.16.1/_intsall/* .

    hisilicon$mkdir etc dev lib tmp var mnt home proc

    2. 配置 etc、 lib、 dev 目录的必需文件。

    a. etc 目录可参考系统/etc 下的文件。其中最主要的文件包括 inittab、 fstab、 init.d/rcS文件等,这些文件最好从 busybox 的 examples 目录下拷贝过来,根据需要自行修改。

    b. dev 目录下的设备文件,可以直接从系统中拷贝过来或者使用 mknod 命令生成需要的设备文件。拷贝文件时请使用 cp –R file。

    c. lib 目录是存放应用程序所需要的库文件,请根据应用程序需要拷贝相应的库文件。

    完成以上两个步骤,一个完整的根文件系统就生成了。

    制作根文件系统镜像

        制作JFFS2格式的镜像文件需要用到mkfs.jffs2工具,这个工具可以从互联网中下载,也可以在SDK包中找到,具体目录Hi3518_SDK_V1.0.8.1/osdrv/tools/pc_tools。为了使内核支持 JFFS2 文件系统,必须在编译内核时把 JFFS2 的选项加入(SDK发布的内核默认已经加入了支持)。在 make ARCH=arm CROSS_COMPILE=armhisiv100nptl-linux- menuconfig 后,进入“ File systems”,选择“ miscellaneous filesystems”,最后选中其中的“ Journalling Flash File System v2 (JFFS2) support”选项。

        具体制作方法如下,在虚拟机终端输入如下命令:

    hisilicon$ /usr/bin/mkfs.jffs2 -d rootfs -l -e 0x10000 -o rootfs_64k.jffs2

    a. /usr/bin/mkfs.jffs2 为 mkfs.jffs2 文件的所在目录,操作之前可以用 chmod 修改该文件操作权限为 777

    b. rootfs 为根文件系统的目录

    c. 0x10000 代表Flash的块大小为64K

    d. rootfs_64k.jffs2 为输出的文件名

    具体参数说明如下表:

    展开全文
  • jffs2文件系统镜像挂载到Ubuntu

    千次阅读 2017-04-20 22:48:48
    jffs2文件系统镜像挂载到Ubuntu PC端因为jffs2是构建于MTD设备上的文件系统,所以可以通过mtdram设备来挂载,并且可以通过mtdblock设备来访问。

    jffs2文件系统镜像挂载到Ubuntu PC端

    因为jffs2是构建于MTD设备上的文件系统,所以可以通过mtdram设备来挂载,并且可以通过mtdblock设备来访问。

    • 加载mtdblock内核模块
      加载mtdblock内核模块后通过lsmod可以查看到:
      mtdblock、mtd_blkdevs、mtd等Module
    root@ubuntu:/# modprobe mtdblock
    • 加载mtdram内核模块
      将该设备的大小(total_size)指定为jffs2根文件系统映像的大小,将块擦除大小(erase_size)指定为flash块擦除大小,即生成该jffs2文件系统时填写的”-e”参数的值,两个参数的单位都是kB。
      加载mtdblock内核模块后通过lsmod可以查看到:mtdram Module
      同时在/dev 下可以找到设备mtdblock0
    root@ubuntu:/# modprobe mtdram total_size=16384 erase_size=64
    • 复制文件系统内容到mtdblock0
      通过dd命令将文件系统内容复制到/dev/mtdblock0设备中
    root@ubuntu:/# dd if=you_systemfs.jffs2 of=/dev/mtdblock0
    • 挂载文件系统
      将mtdblock设备挂载到指定的目录上,挂载完成后,可以到/mnt/目录查看、修改挂载的jffs2根文件系统
    root@ubuntu:/# mount -t jffs2 /dev/mtdblock0 /mnt/
    • 修改文件系统导出为镜像
      通过dd命令拷贝为一个jffs2的映像文件
    root@ubuntu:/# dd if=/dev/mtdblock0 of=new_systemfs.jffs2

    展开全文
  • 如何制作Ext4文件系统镜像

    千次阅读 2015-10-24 17:54:34
    如何制作Ext4文件系统镜像将来有一天,在一个目录上右击,会有一个选项是「生成Ext4镜像」。但是目前还没有,记录一下步骤。

    如何制作Ext4文件系统镜像

    将来有一天,在一个目录上右击,会有一个选项是「生成Ext4镜像」。但是目前还没有,记录一下步骤。

    个人认为,目前对Ext4镜像支持最活跃的是Google的Android了。那咱单独创建Ext4镜像使用时也向Android上靠拢。Android系统中System分区是在2.3以后默认使用Ext4了,从此后Ext4就好比Windows下的NTFS一样成了标配wikipedia_Ext4

    编译Android源码最后是使用make_ext4生成 Ext4镜像+签名(更新:合理使用make_ext4参数是不会导致添加签名的),如果需要纯Ext4镜像,那么需要再去掉签名,使用simg2img。这个两个工具都是在编译Android源码时编译出来的,如果没有Android源码编译环境,当然也可以使用Ubuntu社区已经整理好的工具集android-tools-fsutils,该工具集文件列表如下:(来自android-tools-fsutils/filelist)

    /usr/bin/ext2simg
    /usr/bin/ext4fixup
    /usr/bin/img2simg
    /usr/bin/make_ext4fs
    /usr/bin/mkuserimg
    /usr/bin/simg2img
    /usr/bin/simg2simg
    /usr/bin/simg_dump
    /usr/bin/test_ext4fixup
    /usr/share/doc/android-tools-fsutils/changelog.Debian.gz
    /usr/share/doc/android-tools-fsutils/copyright

    工具集安装方法:

    sudo apt-get install android-tools-fsutils

    制作Ext4文件系统镜像:

    # 创建测试目录
    mkdir /tmp/ext4 && cd /tmp/ext4 &&
    mkdir test test_mount &&
    echo "Hello Ext4" > test/HelloExt4.txt &&
    
    # 生成名为test.ext4的Ext4镜像
    make_ext4fs -l 512M test.ext4 test &&
    
    # 挂载test.ext4到test_mount测试
    mount -t ext4 -o loop test.ext4 test_mount &&
    ls test_mount || echo "Error!"

    以上放到一个名为test.sh的脚本中,执行正常结果如下:

    $ sudo ./test.sh 
    Creating filesystem with parameters:
        Size: 536870912
        Block size: 4096
        Blocks per group: 32768
        Inodes per group: 8192
        Inode size: 256
        Journal blocks: 2048
        Label: 
        Blocks: 131072
        Block groups: 4
        Reserved block group size: 31
    Created filesystem with 12/32768 inodes and 4207/131072 blocks
    HelloExt4.txt  lost+found

    扩展:将该文件系统挂载到Android设备中

    # 获取root权限
    su
    # 进入sdcard目录
    cd /sdcard
    # 将test.ext4挂载test目录下
    busybox mount -t ext4 -o loop test.ext4 test
    # 查看test目录下内容
    shell@hwH30-T00:/sdcard/test $ ls -l
    -rw-r--r-- root     root           11 2015-10-24 17:49 HelloExt4.txt
    drwx------ root     root              1970-01-01 08:00 lost+found
    shell@hwH30-T00:/sdcard/test $ 
    展开全文
  • 解开 JFFS2 文件系统镜像

    千次阅读 2013-02-06 09:14:36
    解开 JFFS2 文件系统镜像 解开 JFFS2 文件系统镜像 (摘自 (博客大巴):http://telltruth.blogbus.com/logs/25057536.html,在此对原作者表示感谢) 在 mtd-utils 里边有 mkfs.jffs2 和 ...
  • 虚拟机如何安装wim文件系统镜像

    千次阅读 2021-01-01 17:54:03
    3、分区助手生成分区盘,然后通过挂载把盘映射到物理机,接着把系统镜像拷贝过去 4、提供windows安装器安装你拷贝过去的系统文件 5、安装完重启虚拟机即可 后话,利用pe安装U盘成为系统盘,用于系统安装,也是...
  • 嵌入式文件系统镜像制作及烧写

    千次阅读 2016-08-16 17:25:51
    rootfs制作为rootfs.img镜像,采用的文件系统类型为cramfs,只读,用于保护根文件系统; userdata制作为userdata.img镜像,采用的文件系统类型为yaffs2,可读写; 配置linux内核,支持两种文件系统: cd /opt/kernel ma
  • 今天对Gphone文件系统镜像的制作做一个简单的记录。 一、镜像的制作 前两天对镜像进行了解包和简单的分析。然后把解包后的文件又压缩成了镜像刷会了我的G1手机。在这里我简单记录一下如何压缩镜像。 压缩镜像其实...
  • rootfs文件系统镜像制作-海思

    千次阅读 2019-03-08 09:56:42
    在编译目录的osdev/pub/下找到rootfs_uclibc....手工制作rootfs.jffs2镜像,再烧录测试即可 osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/rootfs_uclibc_64k.jffs2 注...
  • 和普通文件系统不同,YAFFS文件系统专门为Nand Flash设计,可以使用mkyaffsimage生成文件系统镜像,但如果要将此镜像烧入Flash,那么有些地方需要注意。 硬件上,Nand Flash的设计已考虑到包含坏块的情况,对于每...
  • 系统环境:龙芯1B开发板(mips32指令集)、Linux3.0.0内核 编译环境:ubuntu10.04 ,gcc-3.4.6-2f   1.mkcramfs工具 打开地址:http://sourceforge.net/projects/cramfs/,下载cramfs-1.1.tar.gz #tar zxf cramfs-1.1...
  • 系统镜像文件下载

    千次阅读 2019-01-14 13:33:20
    镜像文件下载:https://msdn.itellyou.cn/
  • linux 挂载iso系统镜像文件

    千次阅读 2019-10-18 08:35:20
    因为 linux系统镜像中包含了常用的软件包, 就不用从网上下载了 所以需要挂载 持有系统镜像 的 光驱 实现: 方式一: 1.选择目标虚拟机右击设置 点击cd/dvd 确保设备状态全部勾选了已连接 创建挂载持有系统镜像...
  • 从aufs文件系统到docker镜像

    千次阅读 2016-10-22 15:05:00
    2 aufs文件系统与docker镜像的关系。3 dockfile如何工作?4 docker镜像储存到哪里?储存的什么?5 docker镜像的储存过程简介。aufs文件下系统是什么?有什么特性?aufs文件系统全名为advanced multi-layered ...
  • centos操作系统镜像文件下载

    千次阅读 2019-04-23 23:17:21
    1.centos安装镜像下载 centos官网:www.centos.org 网易镜像:mirrors.163.com/centos(推荐) 2.确定计算机的架构来选择centos镜像版本 【1】版本选择标准 64位机需选择X86_64版本 32位机需选择i386版本 【2】...
  • linux系统镜像iso文件下载

    千次阅读 2019-07-04 15:25:00
    linux系统镜像iso文件下载  首先你要选择你想要的linux版本,常见版本有CentOS,Ubuntu。选择一个你需要的。  有两个镜像站推荐:  网易镜像站:http://mirrors.163.com/  国外镜像站:...
  • 1、使用Demon 创建虚拟光驱并加载完整的iso系统镜像 2、提取类似系统iso镜像的引导文件 启动菜单—>从CD/DVD提取引导文件 3、创建iso镜像,并加载上一步提取的引导文件 启动菜单—>加载引导文件 4、将解压的...
  • Android系统镜像文件的打包过程分析

    万次阅读 多人点赞 2014-04-14 01:01:01
    在前面一篇文章中,我们分析了Android模块的编译过程。当Android系统的所有模块都编译好之后,我们就可以对编译出来的模块文件进行打包了。...在本文中,我们就详细分析Android系统镜像文件的打包过程。
  • Linux系统镜像文件得下载地址

    万次阅读 多人点赞 2018-03-16 11:43:40
    Linux系统镜像文件的下载地址:http://archive.kernel.org/centos-vault/6.1/isos/x86_64/(复制到浏览器中)然后选中下载即可。
  • 假设已经制作好文件系统rootfs,下面就开始制作映像文件了:1.创建文件系统 ramdisk8M.image ,文件系统格式为ext2,大小最好不要超过32Mdd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192mke2fs -F ramdisk8M....
  • 制作SD卡系统镜像img文件

    千次阅读 2019-08-09 17:18:01
    img为一种镜像文件格式,它包含整个系统的所需要的文件。 #!/bin/bash _ersze=10 # 进入脚本所在目录 _DIR=$( cd "$(dirname "${BASH_SOURCE[0]}...# 设置boot分区大小为40MB,根文件系统为1G fatsize=40 linuxs...
  • 下载内容为百度云分享链接,官方原版windows2008系统。自己手动制作的,希望帮到需要的朋友!
  • busybox创建文件系统镜像制作

    千次阅读 2013-01-28 20:17:51
     这里主要用busybox工具来创建文件系统,以及用mkyaffs2image工具来将创建后的文件系统制作成可下载到开发板中 的镜像 .img 文件。  首先安装busybox工具(网上资源很多的),解压后进入文件目录,这个和配置剪切...
  • UBUNTU如何做成系统镜像文件

    千次阅读 2015-03-16 13:37:02
    硬件:ubuntu14.04.1 安装工具: sudo apt-get install squashfs-tools ...可将 ubuntu 系统备份为 squashfs 映像文件,也可从映像文件中恢复系统,与 GHOST 类似; 可以直接将系统克隆到其它硬盘分区; 可用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 382,981
精华内容 153,192
关键字:

文件系统镜像