使用mount挂载hdd 磁盘类型的 img

比如用dd拷贝了一个硬盘文件为Img

#ddif=/dev/sdaof=/mnt/nfs/backup/harddrive.img

这里拿respberry的img作为参看

#file 2016-05-27-raspbian-jessie-lite.img

显示 x86启动扇区

2016-05-27-raspbian-jessie-lite.img: x86 boot sector


如果直接用mount xxx.img folder

会需要你指定文件系统。mount需要指定挂载的东西的类型,如果他可以识别的就不用指定。否则需要指定


先用fdisk -l xxx.img查看一下分区状况

fdisk-l 2016-05-27-raspbian-jessie-lite.img


Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6fcf21f3


                              Device Boot                  Start         End      Blocks   Id  System
2016-05-27-raspbian-jessie-lite.img1            8192      137215       64512    c  W95 FAT32 (LBA)
2016-05-27-raspbian-jessie-lite.img2          137216     2709503     1286144   83  Linux


单元是一个扇区 512字节

这个img分了两个区,一个是fat格式的 boot扇区。放了树莓派的kernel以及dtb等。

另外一个就是rootfs。

所以要分别挂载这两个


第一个start  8192 所以是8192*516=4194304字节。

由于是用img iso等映像模拟块设备。所以要用  -o以及 然后用offset指定偏移


sudo mount -o offset=4194304 2016-05-27-raspbian-jessie-lite.img fatpart/

后面的那个 也是一样137216*512 =70254592

sudo mount -o offset=70254592 2016-05-27-raspbian-jessie-lite.img rootfspart/



这样就能挂载成功了

如果直接想把这两块直接拷贝出来也可以

使用dd命令 默认的ibs和obs都是512  表示一次读取 512字节, 这里就不修改了。后续的count ×ibs或者obs才是总数

根据前面的fdisk信息 如下。 从xxx.img里面skip 8192*512字节的地方开始。拷贝 64512*512字节的数据到boot.img里面

dd if=2016-05-27-raspbian-jessie-lite.img of=boot.img skip=8192 count=129024

特别注意这个 这次这个count 是129024=end-start+1 

不要用 Blocks下面的计算。因为block是按照文件系统的块大小计算的,不是按sector的单位。这里是1024 也就是512的两倍。恰好64512*2=129024


同样注意count的数量(2709503-137216)+1=2572288

dd if=2016-05-27-raspbian-jessie-lite.img of=rootfs.ext4 skip=137216 count=1286144

就可以得到相关文件了。


就是这样。











  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值