根文件系统解压缩|根文件系统的讲解

根文件系统解压缩|根文件系统的讲解的第1张示图

1. 解压缩的问题 困扰死了

你的磁盘文件系统应该是FAT32的吧,改成NTFS就好了.方法如下:依次点击“开始”→“运行”,输入“cmd”后回车打开“命令提示符”窗口。在命令提示符状态下键入“convert F:/FS:NTFS /V”,回车,这里的“F:”就是要转换文件系统的分区,参数“V”表示在转换时显示详细信息,可以不使用此参数。在重启电脑时 ,WinXP会自动先将F:盘转换为NTFS文件系统(会在进入系统前显示相关过程),然后再进入系统。 注意: 在这个过程中,一定要保证不断电,否则可能使系统产生异常,而且该分区的使用可能受到影响。 也许你对Convert命令的字符界面“过敏”,那就使用第三方工具吧。具备这种功能的图形工具中,我推荐Partitio nMagic(分区魔术师)。安装并运行PartitionMagic,在主窗口中用鼠标右键单击要进行文件系统转换的分区(如 F:),在弹出的快捷菜单中选择“Convert”,然后在“File System”中选择“NTFS”,单击“OK”按钮。如果要操作的分区中有打开的文件,会弹出一个警告窗口,把文件关闭后重新 启动计算机,在启动时会在进入系统前自动完成转换,也有相关信息的提示。(在这个转换的过程中,同样要注意保证不断电,以免系统 崩溃。) 将 FAT 卷转换成 NTFS。 CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X] volume 指定驱动器号(后面跟一个冒号)、 装载点或卷名。 /FS:NTFS 指定要被转换成 NTFS 的卷。 /V 指定 Convert 应该用详述模式运行。 /CvtArea:filename 将根目录中的一个接续文件指定为 NTFS 系统文件的占位符。 /NoSecurity 指定每个人都可以访问转换的文件 和目录的安全设置。 /X 如果必要,先强行卸载卷。 该卷的所有打开的句柄则无效。

2. 如何解包/编辑/打包android系统的boot.img文件

Android产品中,内核格式是linux标准的zImage,根文件系统采用ramdisk格式。这两者在Android下是直接合并在一起取名为boot.img,会放在一个独立分区当中。这个分区格式是Android自行制定的格式。Android开发时,最标准的做法是重新编译于内核和根文件系统,然后调用Android给的命令行文件mkbootimg(out/host/linux-x86/bin/)来打包。 在制作手机ROM时,有时会单独编译内核或抽出根文件进行修改内容,比如我只编译内核,其余的地方不变。这样重新安装巨大的Android开发环境实在不划算。因此很多boot.img解包工具被人开发出来,这一些工具都是把内核和根文件系统从一个现成的boot.img抽取出来,修发后再次打包还原。一.常见的解包工具因为boot.img的格式比较简单,它主要分为三大块(有的可能有四块)因此很多人开发分析工具,有是linuxshell脚本,比如repack-zImage,也有人采用perl,还有C语言编写的unbootimg, 我使用的是在源码位置system/core/mkbootimg/下的mkbootimg。为了简化,蓝点工坊把与mkbootimg中打包工具和解包工具以及所包含的libmincrpty库抽出来,并且重写一个Makefile,作为开源项目。使用者只需要在linux(需安装gcc,make,一般是标配)或windows(需要安装mingw)的命令行执行make,即可产生可执行文件mkbootimg,unpackbootimg。二.解/打包工具使用解包工具:unpackbootimg常见格式 unpackbootimg-i.\tmp\boot.img-o.\out 这一句命令行表示把boot.img解包,所有文件输出到out目录下它会解压出如下文件:boot.img-zImage(内核文件)boot.img-ramdisk.gz(根文件系统打包文件) boot.img-cmdline(mkbootimgcmdline参数) boot.img-pagesize(mkbootimgpagesize参数) boot.img-base(mkbootimgbase参数)打包工具:mkbootimg(Android自带)常见的命令格式: ./mkbootimg –cmdline'no_console_suspend=1console=null' –kernel zImage –ramdisk boot/boot.img-ramdisk.gz -o boot.img–base02e00000 这句含义是把内核文件zImage和boot目录下的根文件压缩包boot.img-ramdisk.gz打包成boot.img. 其中cmdline和base的值均来源于unpackbootimg的结果

3. 好大的文件怎么解压!!跟NTFS有关!!急救啊~!!!!

用convert命令 可无损更改格式 Convert将 FAT 和 FAT32 卷转换为 NTFS。 语法 convert [volume] /fs:ntfs [/v] [/cvtarea:FileName] [/nosecurity] [/x] 参数 volume 指定驱动器号(其后要紧跟冒号)、装入点或要转换为 NIFS 的卷名。 /fs:ntfs 必需将卷转换为 NTFS。 /v 指定详细模式,即在转换期间将显示所有的消息。 /cvtarea:FileName 仅适用于高级用户。指定将主控文件表 (MFT) 以及其他 NTFS 元数据文件写入相邻的现存占位符文件中。该文件必须位于要转换的文件系统的根目录下。如果使用 /CVTAREA 参数,可以使转换后的文件系统具有较少的碎片。为了得到最佳结果,该文件的大小最好为 1 KB 与文件系统中文件和目录数量的乘积,但是,该转换工具也接受任意大小的文件。 有关使用 /cvtarea 参数的详细信息,请参阅 Microsoft Windows XP 资源工具包网站中的“文件系统”。(http://www.microsoft.com/) 要点 在运行 convert 之前,首先必须使用 fsutil file createnew 命令创建占位符文件。Convert 并不创建此文件。Convert 使用 NTFS 元数据覆盖此文件。完成转换后,会释放此文件中所有未被使用的空间。有关 fsutil file 命令的详细信息,请参阅“相关主题”。 /nosecurity 对于转换后的文件和目录的安全性设置,将其指定为每个人都可访问。 /x 如果需要,使用该参数可在转换之前将该卷卸载。对该卷任何打开的句柄不再有效。 注释 必须指定重新启动计算机时应该转换的驱动器。否则,将无法转换当前驱动器。 如果 convert 无法锁定驱动器(系统卷、当前驱动器等),它会主动在下次重新启动计算机时转换该驱动器。 在从早期版本的 NIFS 转换得到的卷上,MFT 位置是不同的。因此,卷的性能可能不如从 Windows NT 转换得到的卷优异。 与最初就使用 NIFS 进行格式化的卷相比,从 FAT 转换为 NTFS 的卷会缺少部分性能。在转换后的卷上,MFT 可能会变得破碎。另外,转换后的启动卷上的 NTFS 权限不再适用。 范例 要将驱动器 E 上的卷转换为 NTFS 并且显示所有消息,请键入: convert e:/fs:ntfs /v

4. 根文件系统的文件系统

(1)jffs2JFFS嵌入式系统文件系统最早是由瑞典 Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux, uCLinux中。Jffs2: 日志闪存嵌入式系统文件系统版本2 (Journalling Flash FileSystem v2)主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。目前jffs3正在开发中。关于jffs系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。jffsx不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。(2)yaffs:Yet Another Flash File Systemyaffs/yaffs2是专为嵌入式系统使用 NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了Linux和eCos,还支持WinCE, pSOS和ThreadX等。yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用。yaffs与 yaffs2的主要区别在于,前者仅支持小页(512 Bytes) NAND闪存,后者则可支持大页(2KB) NAND闪存。同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。(3) Cramfs:Compressed ROM File SystemCramfs是Linux的创始人 Linus Torvalds参与开发的一种只读的压缩文件系统。它也基于MTD驱动程序。在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比 Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到 RAM中。另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。由于以上特性,Cramfs在嵌入式系统中应用广泛。但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。Cramfs映像通常是放在Flash中,但是也能放在别的文件系统里,使用 loopback 设备可以把它安装别的文件系统里。(4)网络文件系统NFS (Network File System)NFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS 的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。以上讨论的都是基于存储设备的文件系统(memory-based file system),它们都可用作Linux的根文件系统。实际上,Linux还支持逻辑的或伪文件系统(logical or pseudo file system),例如procfs(proc文件系统),用于获取系统信息,以及devfs(设备文件系统)和sysfs,用于维护设备文件。

5. 根文件系统的讲解

Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括这样一些子版目录:/etc/, /dev/, /usr/, /usr/bin/, /bin/, /var/等。etc/目录主要含有一些系权统配置文件;dev/含有设备特殊文件,用于使用文件操作语句操作设备;/usr/存放库函数、手册和其它一些文件。bin/存放执行程序;var/用于存放系统运行时可变的数据或者是日志等信息。存放文件系统的设备就是文件系统设备。比如,对于一般使用的windows 2000操作系统,硬盘C盘就是文件系统设备,而硬盘上按一定规则存放的文件就组成文件系统,windows 2000有NTFS或FAT32等文件系统。

6. 什么时候要重新制作Linux的根文件系统谢谢

首先要理解什么是根文件系统,如果你不是做应用开发如嵌入式等等话,就不需要修改。1. 根文件系统文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点。注:对于我们应用开发来说,购买开发板的时候,厂家会提供好现成的根文件系统和BootLoader等,如果需要,我们可以改变其中的命令而无需从头开始制作一个新的根文件系统。不过这儿的制作过程可以让我们更深一点理解Linux的文件系统。2.主要的根文件系统* Linux 中,rootfs 是必不可少的。PC 上主要实现有 ramdisk 和直接挂载 HD(Harddisk,硬盘) 上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方法是将 rootfs load 到 RAM 的 RAMDisk,稍复杂的就是 直接从Flash 读取的 Cramfs,更复杂的是在 Flash 上分区,并构建 JFFS2 等文件系统。* RAMDisk 将制作好的 rootfs 压缩后写入 Flash,启动的时候由 Bootloader load 到RAM,解压缩,然后挂载到 /。这种方法操作简单,但是在 RAM 中的文件系统不是压缩的,因此需要占用许多嵌入式系统中稀有资源 RAM。ramdisk 就是用内存空间来模拟出硬盘分区,ramdisk通常使用磁盘文件系统的压缩存放在flash中,在系统初始化时,解压缩到SDRAM并挂载根文件系统, 在linux系统中,ramdisk有二种,一种就是可以格式化并加载,在linux内核2.0/2.2就已经支持,其不足之处是大小固定;另一种是 2.4的内核才支持,通过,ramfs来实现,他不能被格式化,但用起来方便,其大小随所需要的空间增加或减少,是目前linux常用的ramdisk技术.* initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大简化了 Linux 的启动过程,附合 Linux 的基本哲学:Keep it simple, stupid(KISS). 不过cpio-initrd 作为新的格式,还没有经过广泛测试,嵌入式 Linux 中主要采用的还是 image-initrd。* Cramfs 是 Linus 写的很简单的文件系统,有很好的压缩绿,也可以直接从 Flash 上运行,不须 load 到 RAM 中,因此节约了 RAM。但是 Cramfs 是只读的,对于需要运行时修改的目录(如: /etc, /var, /tmp)多有不便,因此,一般将这些目录做成ramfs 等可写的 fs。* SquashFS 是对 Cramfs 的增强。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有优势。不过,据开发者介绍,在性能上可能不如 Cramfs。这也是一种新方法,在嵌入式系统采用之前,需要经过更多的测试。3.Ramdisk制作RAMDisk的制作方法如下:(1) 在PC机的Linux操作系统环境下,生成可以虚拟成块设备的文件,假设文件名为init.img。$ dd if=/dev/zero of=init.img bs=4096 count=1024其中bs*count为块设备大小(单位:字节),生成init.img文件以后,还必须对该文件进行格式化。$ mke2fs –m0 –F init.img(2) 新建一个文件夹ram,并将init.img挂接到ram目录。$ mkdir ram$ mount init.img ram/ -o loop这时,读写ram目录,等效于读写init.img文件。用户可以将根文系统所需的文件写入到ram目录中。往ram目录写完文件以后,还需要使用umount ram命令卸载init.img,才能将已写入的文件保存到init.img中。(3)添加完毕,需要umount ram4. Cramfs制作CramFS(Compressed Rom File System)是Linux Torvalds在Transmeta任职时,所参与开发的文件系统。它是针对Linux内核2.4之后的版本所设计的一种新型只读文件系统,采用了 zlib 压缩,压缩比一般可以达到1:2,但仍可以作到高效的随机读取,Linux系统中,通常把不需要经常修改的目录压缩存放,并在系统引导的时候再将压缩文件解开。因为Cramfs不会影响系统的读取文件的速度,而且是一个高度压缩的文件系统。因此非常广泛应用于嵌入式系统中。在嵌入式的环境之下,内存和外存资源都需要节约使用。如果使用RAMDISK方式来使用文件系统,那么在系统运行之后,首先要把Flash上的映像文件解压缩到内存中,构造起RAMDISK环境,才可以开始运行程序。但是它也有很致命的弱点。在正常情况下,同样的代码不仅在Flash中占据了空间(以压缩后的形式存在),而且还在内存中占用了更大的空间(以解压缩之后的形式存在),这违背了嵌入式环境下尽量节省资源的要求。使用CramFS文件系统就是一种解决这个问题的方式。CramFS是一个压缩格式的文件系统,它并不需要一次性地将文件系统中的所有内容都解压缩到内存之中,而只是在系统需要访问某个位置的数据的时候,马上计算出该数据在CramFS中的位置,将它实时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据。CramFS中的解压缩以及解压缩之后的内存中数据存放位置都是由CramFS文件系统本身进行维护的,用户并不需要了解具体的实现过程,因此这种方式增强了透明度,对开发人员来说,既方便,又节省了存储空间。但是Cramfs也有其缺点:延迟、小于16MB、不支持写,只支持PAGE_CREATE_SIZE=4096的内核。制作的命令:(root文件夹中存放着文件系统)#mkcramfs root cramfs.img5. 其他根文件系统的制作制作yaffs文件系统: mkyaffsimage myroots myroots.img制作squashfs: mksquashfs $(FS_DIR) $(FS_NAME) -noappend -be -lzma -no-fragments –noI6. BusyBox编译以及移植(根文件系统内命令的制作移植)建立目标板空根目录文件夹及根目录下的文件夹:[[email protected] friendly-arm]# mkdir myroots[[email protected] friendly-arm]#pwd/friendly-arm/myroots[[email protected] friendly-arm]#cd myroots[[email protected] myroots]# mkdir bin sbin usr lib dev mnt opt root etc home proc tmp var[[email protected] myroots]# mkdir etc/init.d进入etc/init.d目录下,建立一个脚本文件,并命名为rcS,用gedit打开,添加如下内容:#! /bin/shPATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:runlevel=Sprevlevel=Numask 022export PATH runlevel prevlevel## Trap CTRL-C &c only in this shell so we can interrupt subprocesses.#trap ":" INT QUIT TSTP创建 dev 中的节点如果使用“linux 2.6.xx”的内核,应该事先创建节点“console”、“null”。否则在系统启动时内容会提示以下错误:Warning: unable to open an initial console.Kernel panic – not syncing: Attempted to kill init!创建节点的命令如下:# mknod dev/console c 5 1# mknod dev/null c 1 3移植Busybox:进入到压缩文件存放的目录下,并解压。然后进入解压后的busybox目录文件夹,随后配置busybox 。[[email protected] busybox-1.2.0]# make menuconfig由于每个版本的配置选项组织有所不同。不管怎样,我们注意以下选项就行了:1) Support for devfs2) Build BusyBox as a static binary ( no shared libs ) //将busybox编译成静态链接3) Do you want to build busybox with a Cross Compile?(/usr/local/arm/3.3.2/bin/arm-linux-) Cross Compile prefix //指定交叉编译器4) init5) Support reading an inittab file //支持init读取/etc/inittab 配置文件6) (X) ash选中ash //建立的rcS脚本才能执行7)ash8)cp cat ls mkdir mv //可执行命令工具的选择,自己看着办吧,需要用到的就选上9) mount10) umount11) Support loopback mounts12) Support for the old /etc/mtab file13) insmod14) Support version 2.2.x to 2.4.x Linux kernels15) Support version 2.6.x Linux kernels16) vi17)don’t use user以上内容必须选上,其他可按默认值;如果要支持其他功能,如网络支持等,可按需选择,英语不是很烂的话,这些都没有问题。配置好之后,保存退出。然后对其编译和安装到刚才建立的根文件系统目录下:[[email protected] busybox-1.2.0] make TARGET_ARCH=arm CROSS=arm-linux- \ PREFIX=/friendly-arm/myroots/ all install安装好之后,将相应的二进制文件拷贝到根文件系统相应的目录下:* 拷贝一些管理员控制程序到/sbin目录下,最重要的就是要包含一个init命令;* 拷贝应用程序运行时所需要的库到/lib,库文件可以从PC机上的交叉编译工具安装目录下拷贝,如libc-2.2.2.so、libcryt- 2.2.2.so、libm-2.2.2.so、libutil-2.2.2.so等,为部分相应库建立快捷方式,提供一些应用程序按快捷方式名称调用。

7. 为什么显示解压缩失败呢

解压失败可能是抄传输过程中网络出现问题导致,需要重新传输,解决办法如下:

1.首先,打开下载的RAR压缩文件。

8. 解压缩问题

那是因为你解压后的文件大于4G,虽然你的内存远大于4g,但是它不是在NTFS系统下格式化的,只有用NTFS格过后才能单次存储或删除大于4G的文件,所以解决方法很简单,把内存格成NTFS系统后一切皆ok了。

9. win7下 解压缩tar.bz2文件与在linux虚拟机中解压缩有什么区别

在windows下面解压缩的话,linux文件的一些属性都没有了,比如所有者,读权限,写权限,运行权限等。

未经允许不得转载:山九号 » 根文件系统解压缩|根文件系统的讲解

赞 (0)