安卓终端吧 关注:215贴子:627
  • 4回复贴,共1

[重发*2][Shell三阶]终端乐趣----建立文件系统

只看楼主收藏回复

连续发了两次了都被吞了,还好复制备份了,一楼防吞!


IP属地:广东来自Android客户端1楼2015-06-02 00:38回复
    前言:更新好你手机的busybox,因为涉及的许多指令都需要busybox支持,以下指令在HTC G10测试可用,busybox已更新,超级终端的版本不影响指令的执行
    测试机型:HTC
    大家百度就可以知道,其实在Linux上的设备,都可以表示为一个文件(/dev),当你用mount指令查看时,都可以看到挂载设备和挂载点,你也会发现那些分区和对应的文件系统的格式也有所不同
    cat /proc/filesystems
    以上指令可以看到系统所支持的文件系统
    那么我们如何建立一个文件系统?建立它又能做什么??
    个人猜想的作用:
    1.建立一个文件系统,把自己的秘密都集合到一个文件上,需要打开的时候直接挂载,不需要的时候就卸载,这样有点用,别人找不到的,当然文件里边的内容可以用安卓厨房的ext2explore解开,也可以在Linux挂载打开
    2.我想可以用来app2sd,那样就不需要分区啦,不过脚本问题,就要自己写,麻烦点
    3.对于解包ROM,有些机子根本ext2格式的分区容量有限,如果我们可以扩展一个1G的ext2分区,那也是个不错的事情,因为手机端解包可以用unyaffs指令
    4.apktool中也用到了这个办法搭载了一个java环境他是将apktool/ext2挂载到/lib
    建立一个ext2文件系统的流程
    1.建立一个文件系统的容量(一个有大小的文件)
    2.格式化文件(将他格式化为ext2)
    3.挂载文件系统
    容易出现的问题:
    1.在mke2fs时容易出现那个文件不是一个block,那样只能更新一个mke2fs文件和他的库(.so)
    2.在挂载时说/dev/loop1 :not found
    那样的话尝试下用mknod建立一个空设备,...…百度上有
    详细流程见3L


    IP属地:广东来自Android客户端2楼2015-06-02 00:39
    回复
      详细流程:
      1.建立有大小的文件
      用dd指令
      dd if=/dev/zero of=/sdcard/文件名 bs=a count=b
      文件名就是你要建立空文件的名字
      bs:块的大小
      count:块的数量
      计算方法:文件大小=块的大小乘上块的数量,单位为b(也就是axb)
      1Gb=1024Mb
      1mb=1024Kb
      1Kb=1024b
      例如:我要建立一个文件,名字为ms,大小为100MB,文件位置是在内存卡
      dd if=/dev/zero of=/sdcard/ms bs=1024 count=10240 //因为我设定bs的大小为1024b(为了方便计算),那么就是1k,102400个1k就是100MB
      2.建立文件系统(相当于格式化文件为ext2)
      mke2fs 文件路径
      例子我将内存卡的ms文件弄成ext2格式的文件系统
      mke2fs /sdcard/ms //如果手机没有mke2fs指令请尝试更新busybox或者以下提供,因为普通的mke2fs用来格式化内存卡的文件他会和你说那不是一个block然后就没有下文了,如果有的就是问你是否继续,你就输入y然后回车
      3.挂载文件系统
      说到文件系统就不得不说到mount命令,
      mount 作用:挂载
      1.不带任何参数:显示已挂载的文件系统
      显示:设备路径 on 挂载点 type 文件系统格式 (参数,ro代表只读,rw代表读写,uid什么的,嘻嘻,自己度娘)
      2.要挂载某个文件系统
      mount -t 文件系统格式 -o 读写权限 设备路径 挂载点
      3.对已挂载的文件系统挂载读写权限
      mount -o remount rw 挂载点


      IP属地:广东来自Android客户端3楼2015-06-02 00:41
      回复
        su -------------- //su指令获得管理员权限,变身超级用户
        mount -o remount rw / -------------- //挂载根目录为可读写(其实/也是个文件系统,格式为rootfs),让我们可以在根目录下建立文件夹
        mkdir /ms-----------//在根目录建立ms文件夹作为挂载点
        mount -t ext2 -o rw /sdcard/ms /ms -----------------//挂载/sdcard/ms文件到/ms文件夹,指定文件系统为ext2格式,-o后的rw(r是read,有读取权限,w是write,有写入权限),一般这样的就可以把ms文件挂载到/ms作为一个"分区"
        好了,如果挂载成功你就可以不带参数输入mount来查看挂载信息,或者是用
        df /ms
        来查看挂载的/ms文件系统的容量


        IP属地:广东来自Android客户端17楼2015-06-02 21:51
        回复
          楼主,咱想发一个与这差不多的教程,不过是关于vfat的,你介不介意


          来自Android客户端18楼2015-06-05 13:09
          回复