精华内容
下载资源
问答
  • 小型测试程序,将squashfs挂载到专用的挂接名称空间中。 如果未启用功能,则用户映射将有点混乱,除当前用户外的所有组和用户都将显示为nobody / nfsnobody 。 在大多数情况下,该程序应该干净地终止,并且不要让...
  • 目标:挂载cramfs为rw,可读可写,解包cramfs,重新打包cramfs file命令查看一下文件信息: /home/susu/mtd2: Linux Compressed ROM File System data, little endian size 9654272 version #2 sorted_dirs CRC 0x...

    cramfs

    目标:挂载cramfs为rw,可读可写,解包cramfs,重新打包cramfs

    1. file命令查看一下文件信息: /home/susu/mtd2: Linux Compressed ROM File System data, little endian size 9654272 version #2 sorted_dirs CRC 0x352b4d9b, edition 0, 5834 blocks, 818 files
    2. 假设需要挂载到的临时目录:/mnt/test,需要确保该目录存在,即在/mnt目录下有一个叫test的空文件夹
    3. 挂载镜像文件~/mtd2/mnt/testsudo mount ~/mtd2 /mnt/test
    4. 此时/mnt/test是只读的,需要把文件复制出来做编辑
    5. 新建一个用于编辑镜像的临时文件夹~/cram
    6. 拷贝所有文件到用于编辑的临时目录~/cramsudo cp -r /mnt/test/* ~/cram
    7. 此时在~/cram目录中做编辑操作就可以,比如添加文件删除文件。我是在里面添加了一个文件。
    8. 最后重新打包编辑后的目录~/cram为镜像~/mtd2newsudo mkfs.cramfs -b 4096 ~/cram ~/mtd2new
    9. 再来看一下文件信息:/home/susu/mtd2new: Linux Compressed ROM File System data, little endian size 9666560 version #2 sorted_dirs CRC 0xa37105a6, edition 0, 5835 blocks, 819 files

    有一个问题就是mkfs.cramfs的时候有一个参数-b,指定blocksize,目前还不太懂,好像是默认是用PAGE_CACHE_SIZE作为blocksize(参考1 - patch参考2 - fs-cramfs-readme)。获取PAGESIZE的方法:
    第一种:

    $ getconf PAGESIZE
    4096
    

    第二种:

    $ grep -i pagesize /proc/1/smaps
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    

    squashfs

    目标编辑squashfs文件系统镜像,解包squashfs文件系统并重新打包

    1. 分别用file命令和unsquashfs -s命令查看文件信息:
    $ file mtd2 
    mtd2: Squashfs filesystem, little endian, version 4.0, 14144357 bytes, 1122 inodes, blocksize: 131072 bytes, created: Fri Apr 14 06:43:01 2017
    
    $ unsquashfs -s mtd2 
    Found a valid SQUASHFS 4:0 superblock on mtd2.
    Creation or last append time Fri Apr 14 14:43:01 2017
    Filesystem size 13812.85 Kbytes (13.49 Mbytes)
    Compression lzo
    Block size 131072
    Filesystem is exportable via NFS
    Inodes are compressed
    Data is compressed
    Fragments are not stored
    Xattrs are compressed
    Duplicates are removed
    Number of fragments 0
    Number of inodes 1122
    Number of ids 1
    

    可以看到压缩方式lzo,blocksize131072,参数-comp lzo -b 131072 -no-fragments(这部分可以对照mksquashfs -h帮助分析)
    2. 解包命令:unsquashfs mtd2 会解包到当前目录下的squashfs-root文件夹
    3. 在squashfs-root文件夹中做需要的修改,我是添加了两个文件进去
    4. 打包命令:mksquashfs ./squashfs-root mtd2new -comp lzo -b 131072 -no-fragments
    5. 打包前后文件信息对比:

    $ unsquashfs -s mtd2
    Found a valid SQUASHFS 4:0 superblock on mtd2.
    Creation or last append time Fri Apr 14 14:43:01 2017
    Filesystem size 13812.85 Kbytes (13.49 Mbytes)
    Compression lzo
    Block size 131072
    Filesystem is exportable via NFS
    Inodes are compressed
    Data is compressed
    Fragments are not stored
    Xattrs are compressed
    Duplicates are removed
    Number of fragments 0
    Number of inodes 1122
    Number of ids 1
    
    $ unsquashfs -s mtd2new 
    Found a valid SQUASHFS 4:0 superblock on mtd2new.
    Creation or last append time Wed Mar 10 16:41:48 2021
    Filesystem size 13812.81 Kbytes (13.49 Mbytes)
    Compression lzo
    Block size 131072
    Filesystem is exportable via NFS
    Inodes are compressed
    Data is compressed
    Fragments are not stored
    Xattrs are compressed
    Duplicates are removed
    Number of fragments 0
    Number of inodes 1124
    Number of ids 1
    
    展开全文
  • squashfs挂载

    千次阅读 2011-11-04 14:43:41
    squashfs 是livecd中使用的一种压缩文件。 [qiaoliyong@oc0322165461 LiveOS]$ file squashfs.img squashfs.img: Squashfs filesystem, little endian, version 4.0, 95864989 bytes, 3 inodes, blocksize: ...

    squashfs 是livecd中使用的一种压缩文件。

    [qiaoliyong@oc0322165461 LiveOS]$ file squashfs.img
    squashfs.img: Squashfs filesystem, little endian, version 4.0, 95864989 bytes, 3 inodes, blocksize: 131072 bytes, created: Wed May 11 06:59:18 2011


    使用mount -o loop 将squashfs.img 挂在到某一目录


    eg:

    mount -o loop squashfs.img  /mnt/livecd


    然后继续将/mnt/livecd 目录中 ext3fs.img 挂到一个目录中


    eg:

    mount -o loop ext3fs.img


    展开全文
  • 创建挂载squashfs

    2021-06-05 10:15:48
    创建挂载squashfs 创建 mksquashfs /some/dir dir.sqsh 挂载 mount dir.sqsh /mnt/dir -t squashfs -o loop 设备上创建 mksquashfs /some/dir /dev/fd0 挂载设备 mount /dev/fd0 /mnt/floppy -t squashfs 基于/...

    创建挂载squashfs

    创建

    mksquashfs /some/dir dir.sqsh
    

    挂载

     mount dir.sqsh /mnt/dir -t squashfs -o loop
    

    设备上创建

    mksquashfs /some/dir /dev/fd0
    

    挂载设备

    mount /dev/fd0 /mnt/floppy -t squashfs
    

    基于/etc/fstab挂载

    /var/arch.sqsh	/var/arch	squashfs	ro,defaults	0 0
    

    排除虚拟文件系统

    use the -e option for mksquashfs to exclude all pseudo-filesystems such as /proc, /sys (on linux kernels after 2.5.x) and /dev (when using DevFS)

    mksquashfs floppylinux root.sqsh -e  proc
    

    Squashed file systems on CD-ROMs

    1.Enable SquashFS in the linux kernel of the target system
    2.Create a squashed root file system
    3.Modify the /etc/fstab or startup scripts of the target system to mount the squashd file system when you need it

    构建可读写文件系统

    Create the ro.fs squashed file system and the rw.fs dir

    mksquashfs /home/user1 ro.fs
    mkdir /home/rw.fs
    

    先挂载不可写的squashfs

    mount -t squashfs ro.fs /mnt -o loop
    

    再挂载unionfs文件系统
    mount the unionfs file system, that makes /mnt and /home/rw.fs apparently merged under /home/user1 location.

    合并挂载mnt和rw.fs文件夹到user1目录

    mount -t unionfs -o dirs=rw.fs=rw:/mnt=ro unionfs user1
    

    切换到最终可读写的根文件系统

    cd /realroot/mnt/Image
    chroot target /bin/sh
    

    参考链接:
    https://blog.csdn.net/u013566722/article/details/52494824
    https://www.cnblogs.com/zhishuai/p/8205229.html
    https://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html
    https://www.unix.com/man-page/FreeBSD/8/mount_unionfs/
    https://unionfs.filesystems.org/
    https://cloud.tencent.com/developer/article/1518056
    https://www.cnblogs.com/pengdonglin137/p/3521408.html
    https://blog.csdn.net/qq_15770331/article/details/97000866
    https://unix.stackexchange.com/questions/209920/squashfsunionfs-as-root-filesystem

    展开全文
  • 场景说明:因为需要重新定制squashfs.img文件的大小,其实是稀疏文件的大小,和实际文件的大小有区别。实际的操作如下: 1)dd if=/dev/zero of=rootfs bs=65536 count=24000 2)mke2fs -F rootfs 3)mkdir mnt 4)...

    场景说明:因为需要重新定制squashfs.img文件的大小,其实是稀疏文件的大小,和实际文件的大小有区别。实际的操作如下:

    1)dd if=/dev/zero of=rootfs bs=65536 count=24000 
    2)mke2fs -F rootfs

    3)mkdir mnt 
    4)mount rootfs mnt -o loop

    5)cp -rp yourRootDir mnt 
    6)umount mnt

    7)mkdir squashfs-dir 
    8)mv rootfs squshfs-dir 
    9)mksquashfs squashfs-dir squashRootfs

    出现挂载异常:

    mount :wrong fs type,bad option,bad superblock on /dev/mapper/live-rw

                 missing codepage or helper program,other error

                In some cases useful info is found in syslog -try dmesg |tail or so




         本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1570753,如需转载请自行联系原作者

    展开全文
  • 从日志中看到,这里使用了squashfs默认的压缩方式gzib,而squashfs使用lzma压缩的话,信息: /home/project/plc_platform/board/model_qca_qca95xx/build/../../../util/fakeroot /home/project/plc_platform/...
  • mount -t -o loop -t squashfs squashfs.img /a/ 里面有一个root.img,通过file命令可以知道它是linux系统的文件系统类型 可以直接用命令挂载 挂载以后发现就是系统
  • 常见分区加载方法: mount挂载iso文件: #mkdir /mnt/iso1 ...#mount –o loop linuxsetup.iso /mnt/iso1 ...mount挂载squashfs压缩文件系统: #mkdir /mnt/src-squashfs #sudo mount -t squas...
  • ubuntu 制作squashfs

    千次阅读 2018-11-26 15:35:44
    一、安装需要使用的软件 $sudo apt-get install squashfs-tools genisoimage //装入 squashfs文件系统处理工具以及 ISO制作工具 $sudo modprobe squashfs //加载 squashfs模块 ...2、挂载ubuntu光盘...
  • 可以将其视为可以挂载的.tar.gz(或XZ,LZO,LZ4,ZSTD)。 该项目最初是作为squashfs-tools 4.3的一个分支开始的,在经历了一些短暂的收获之后,他意识到SourceForge网站或邮件列表上很长一段时间都没有更新了。 ...
  • ubutun desktop squashfs

    千次阅读 2016-08-13 11:46:05
    简介:  squashfs是一种只读型的超高压缩率文件系统,这种文件系统能够将2GB-3GB的数据压缩成一个700MB的文件。你有没有想过Linux Live CD是怎样运行的?...这个文件可以使用环回的形式来挂载并对其中的文件
  • mount命令挂载

    2021-03-02 22:07:25
    1.1.2 以squashfs只读权限挂载mtdblock4分区到mtd目录 mount -t squashfs /dev/mtdblock4 /mnt/mtd 1.1.3 把分区 mmcblk0p1挂载到目录dir (可读可写) mount /dev/mmcblk0p1 /mnt/dir umount -f -
  • 这其实是openwrt中的一个功能,现在把它移到普通的target中 target文件系统是squashfs,它是只读...根目录是squashfs只读的挂载设备是/dev/mtdblock2,其上有/overlay /rootdir文件夹, 分配出一个jffs2分区mtdblock3...

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

squashfs挂载