红联Linux门户
Linux帮助

在linux系统中使用mount挂载带分区的镜像文件

发布时间:2012-07-23 00:11:23来源:红联作者:相思爱文
[i=s] 本帖最后由 相思爱文 于 2012-7-23 00:32 编辑 [/i]

在linux中,可以用dd命令把分区镜像,保存为一个文件。使用mount -o loop可直接将镜象文件挂载。
前段时间,把一个128M的U盘用dd制作成为一个128M的文件,这里U盘为/dev/sdb,我用usb128Msdb作为文件名保存
dd if=/dev/sdb of=usb128Msdb


之所以用dd命令,是为了在终端操作方便快速,同时防止windows文件系统复制出错。由于128M的U盘很小,里面的文件目录太多,还是中文名称,用dd镜像后只有一个文件,方便保存和管理。

使用时,先习惯性用-o loop挂载
mount -o loop usb128Msdb /mnt/

结果没成功
分别用file 和fdisk -l命令查看usb128Msdb文件信息
确定是镜像文件,并且有一个分区

挂载带分区的镜像文件,这就需要用-o offset=xxx参数挂载,

首先用fdisk -lu查看分区信息(要用-u参数, 以扇区数而不是以柱面数的形式显示分区表中各分区的信息)
root@think:/home/usb# fdisk -ul usb128Msdb
You must set cylinders.
You can do this from the extra functions menu.

Disk usb128Msdb: 0 MB, 0 bytes
8 heads, 32 sectors/track, 0 cylinders, total 0 sectors
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: 0x0d0c0b0a

Device Boot Start End Blocks Id System
usb128Msdb1 * 32 257279 128624 b W95 FAT32

这里用32乘以512得到分区开始位置,就是offset参数值
root@think:/home/usb# echo 32*512 |bc
16384

用monut 挂载(由于能自动识别vfat文件系统,这里mount挂载时省略了-t参数)
mount -o offset=16384 usb128Msdb /mnt/

挂载成功
root@think:/home/usb# df -Th
……
/dev/loop0 vfat 125M 124M 1.6M 99% /mnt


附:parted查看分区信息方法
习惯用fdisk工具,还有其他工具可得到分区信息,如parted
我用的是debian Squeeze,系统默认没安装,先从源安装
aptitude install parted
然后运行
parted usb128Msdb
先设置unit为B,然后用p就可显示,记下分区位置,用quit退出。
root@think:/home/usb# parted usb128Msdb
GNU Parted 2.3
Using /home/usb/usb128Msdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? B
(parted) p
Model: (file)
Disk /home/usb/usb128Msdb: 131727360B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 16384B 131727359B 131710976B primary fat32 boot

(parted) quit

用parted可直接显示分区开始位置,不用再计算。
文章评论

共有 37 条评论

  1. william2011 于 2014-07-28 21:36:28发表:

    学习了,感谢楼主的分享

  2. ynlsa 于 2013-12-17 15:11:17发表:

    不错

  3. zhanggaoju 于 2013-11-16 20:31:14发表:

    嗯,很不错

  4. asd001897 于 2013-10-16 20:56:48发表:

    好东西mark一下

  5. goldenrich 于 2013-09-10 14:31:12发表:

    此贴必火。,支持

  6. yjf531 于 2013-09-07 09:54:14发表:

    很好

  7. scitcwp 于 2013-03-02 17:07:57发表:

    顶起。

  8. ymygy 于 2013-02-08 11:46:10发表:

    路过学习一下

  9. gaoer 于 2013-01-15 15:49:58发表:

    收下了

  10. bnmluo 于 2012-12-14 17:27:29发表:

    来学习学习

  11. makertang 于 2012-12-11 14:34:38发表:

    thanks a lot!!!!!

  12. 醉尘风 于 2012-12-11 14:26:24发表:

    学习

  13. 醉尘风 于 2012-12-11 14:26:09发表:

    学习

  14. gky2009514 于 2012-12-07 11:52:08发表:

    新手完成任务,求下书籍~

  15. ahsthx 于 2012-11-21 15:15:29发表:

    刚开始学 先了解下

  16. zyjysc 于 2012-11-20 19:35:53发表:

    学习而来

  17. heyujie 于 2012-11-19 23:22:29发表:

    不错

  18. heyujie 于 2012-11-19 23:11:42发表:

    学习

  19. zzszzti 于 2012-11-14 11:40:43发表:

    学习了!!!

  20. telson 于 2012-11-12 13:15:13发表:

    支持楼主!!!!

  21. 空中的云 于 2012-11-06 20:49:15发表:

    学习了

  22. tlhchts 于 2012-11-02 10:03:41发表:

    楼主的分享非常不错!!谢谢!!!!

  23. jjx0223 于 2012-10-30 00:42:31发表:

    感谢楼主的分享!!

  24. agbbs_Linux 于 2012-10-23 00:38:35发表:

    路过!!!
    帮顶……

  25. Sucre_Yang 于 2012-10-16 11:29:24发表:

    每回一贴有积分?

  26. ouyangcp 于 2012-10-05 01:18:43发表:

    感?您的教?分享!

  27. 寂寞弯刀 于 2012-10-05 00:08:20发表:

    顶了????????????好资源谢谢分享

  28. zron 于 2012-09-03 21:58:11发表:

    貌似了解了 不过 战时还没需要这样做了。 多学 多存。

  29. printhief 于 2012-09-01 22:00:44发表:

    对的 我就是学习了以上才菜鸟般的操作的

  30. xye9008 于 2012-08-31 11:07:13发表:

    不错?????????????

  31. whysame 于 2012-08-20 14:29:38发表:

    交流赚现金!这个任务是为新手准备的,新注册的网友都先领这个任务并完成它,每回一贴就有奖励积分弹出。

  32. 杨雅慧 于 2012-08-08 11:14:44发表:

    不错,还行,,

  33. 杨雅慧 于 2012-08-08 11:14:40发表:

    不错,还行,,

  34. 杨雅慧 于 2012-08-08 11:14:34发表:

    不错,还行,,

  35. yygqsx 于 2012-08-07 15:55:37发表:

    学习

  36. Growth兆 于 2012-07-23 09:19:58发表:

    感谢相思爱文的分享,本贴加入到论坛顶置的Linux应用贴中

  37. lktlks 于 2012-07-23 08:46:30发表:

    受教