zoukankan      html  css  js  c++  java
  • (转)linux中挂载IMG文件

    原文:http://www.linuxsir.org/bbs/thread334903.html

    1. 先查看第一个空闲loop设备
    Shell代码
    sudo losetup -f  
    /dev/loop0  


    2. 使用上一步得到的设备名,第一次创建loop设备
    Shell代码
    sudo losetup /dev/loop0 archlinux-2008.06-core-i686.img  


    3. 查看信息
    Shell代码
    sudo fdisk -lu /dev/loop0  
      
    Disk /dev/loop0: 322 MB, 322469376 bytes  
    53 heads, 12 sectors/track, 990 cylinders, total 629823 sectors  
    Units = sectors of 1 * 512 = 512 bytes  
    Disk identifier: 0x00000000  
      
          Device Boot      Start         End      Blocks   Id  System  
    /dev/loop0p1   *          63      629822      314880   83  Linux  
    Partition 1 has different physical/logical beginnings (non-Linux?):  
         phys=(0, 1, 1) logical=(0, 5, 4)  
    Partition 1 has different physical/logical endings:  
         phys=(39, 52, 12) logical=(990, 15, 3)  

    我们可以看到,该镜像只有一个分区(loop0p1),从第63扇区开始(Start列),每扇区512字节(Units = sectors of 1 * 512 = 512 bytes),我们算出offset,下面mout命令会用到:
    Shell代码
    63*512=32256  


    4. mout
    Shell代码
    sudo losetup -o 32256 /dev/loop1 archlinux-2008.06-core-i686.img  
    sudo mount -o loop /dev/loop1 /mnt/  
    ls /mnt/  
    addons  archlive.sqfs  boot  lost+found  


    事实上,fdisk可以直接查看img文件(虽然功能不全,下面会说到),mount可以自动创建loop设备,所以上面步骤可以简化为:
    I. 查看信息
    Shell代码
    sudo fdisk -lu archlinux-2008.06-core-i686.img  
    You must set cylinders.  
    You can do this from the extra functions menu.  
      
    Disk archlinux-2008.06-core-i686.img: 0 MB, 0 bytes  
    53 heads, 12 sectors/track, 0 cylinders, total 0 sectors  
    Units = sectors of 1 * 512 = 512 bytes  
    Disk identifier: 0x00000000  
      
                              Device Boot      Start         End      Blocks   Id  System  
    archlinux-2008.06-core-i686.img1   *          63      629822      314880   83  Linux  
    Partition 1 has different physical/logical beginnings (non-Linux?):  
         phys=(0, 1, 1) logical=(0, 5, 4)  
    Partition 1 has different physical/logical endings:  
         phys=(39, 52, 12) logical=(990, 15, 3)  

    第一行抱怨不能得到cylinders,原因是普通文件上没有实现ioctl操作,我们可以看到0 cylinders,但这对我们不重要,关键是我们依然可以得到第一个分区(archlinux-2008.06-core-i686.img1)的偏移值

    II. 直接mount
    Shell代码
    sudo mount -o loop,offset=32256 archlinux-2008.06-core-i686.img /mnt/  
    ls /mnt/  
    addons  archlive.sqfs  boot  lost+found  


    参考Loop-mounting partitions from a disk image

  • 相关阅读:
    个人作业——软件工程实践总结&个人技术博客
    Vue实现表格导出Excel
    个人作业——软件测评
    结对第二次—某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    代码规范
    软工实践寒假作业(2/2)
    软工实践寒假作业(1/2)
    个人作业——软件工程实践总结&个人技术博客
    Android 自定义控件
  • 原文地址:https://www.cnblogs.com/yinsua/p/3503550.html
Copyright © 2011-2022 走看看