zoukankan      html  css  js  c++  java
  • Ubuntu命令行下缩小磁盘镜像img文件尺寸

    要解决的问题

    一个固件包里的system.img, 尺寸是1GB, 里面的内容只有470MB, 在设备上写入的时候报超出大小了, 所以想把这个img调整为512MB

    网上查了很多, 没有一个好用的, 最后还是通过gparted在图形界面下完成的. 记录一下过程

    步骤

    将img挂载到loop设备

    sudo losetup -f
    sudo losetup /dev/loop18 system.img.old 
    

    用gparted对此loop设备进行修改, 注意一定要在命令行用/dev/loop18 作为参数, 否则直接启动gparted是不显示这个loop设备的

    sudo gparted /dev/loop18
    

    处理完成后, 取消loop设备挂载

    sudo losetup -d /dev/loop18
    

    .查看img里的分区情况, 进行裁剪, 这个536871424是根据这个算出来的: 原来的块数是2097152, 需要保留的块数是 2097152 / 2 + 1 = 1048577, 每块大小512, 所以 1048577 * 512 = 536871424

    fdisk -lu system.img.old 
    truncate --size=536871424 system.img.old 
    

    再挂载检查是否正确

    sudo losetup /dev/loop18 system.img.old 
    sudo fdisk -lu /dev/loop18 
    mount /dev/loop18 /mnt/mnt1/
    sudo umount /mnt/mnt1
    sudo losetup -d /dev/loop18
    

    .

    Gparted中操作涉及的命令行

    从截图可以看到, 这些是可以通过命令行实现的,

    涉及的命令有:

    # check file system
    e2fsck -f -y -v -C 0 '/dev/loop18'
    
    # shrink file system
    resize2fs -p '/dev/loop18' 524288K
    
  • 相关阅读:
    Mongodb在windows下的安装和启动
    git操作的常用命令
    删除smartygit的配置文件
    注册树模式
    关于js的一些基础知识点
    关于mysql的初步学习 (五)
    关于mysql的初步学习 (四)
    关于mysql的初步学习 (三)
    关于mysql的初步学习 (二)
    关于数据库建表时的有趣实例--关键字重复
  • 原文地址:https://www.cnblogs.com/milton/p/12074890.html
Copyright © 2011-2022 走看看