无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6642|回复: 16
打印 上一主题 下一主题

ubuntu 下 挂在 vhd的脚本

  [复制链接]
跳转到指定楼层
1#
发表于 2016-10-23 21:38:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dos时代菜鸟 于 2016-10-23 21:44 编辑
  1. #! /bin/sh
  2. # 通过 vhdimount 实现 vhd 的挂载 ,挂载 vhd 中的第一个分区
  3. # 需要安装的软件包 sudo apt-get install libvhdi-utils sleuthkit
  4. # 需要 awk 计算 要装载分区的首位置 offset = start_byte =Units * Start

  5. echo $1
  6. echo mkdir......
  7. VhdPath=`dirname /v_disk.`basename $1`
  8. sudo mkdir $VhdPath/`basename $1` -p
  9. sudo mkdir $VhdPath/01 -p

  10. echo mount $1 to $VhdPath ...
  11. sudo vhdimount $1 $VhdPath/`basename $1`

  12. sudo mmls $VhdPath/`basename $1`/vhdi1 > vhdi1.txt
  13. cat vhdi1.txt
  14. # start_byte =Units * Start 要装载的分区首位置
  15. echo .
  16. start_byte=`awk '{if ($1=="Units") split($4,Units,"-"); if ($2=="000:000") start=$3} END {print Units[1]*start}' vhdi1.txt`
  17. sudo rm -r vhdi1.txt

  18. echo Mounting ... "(" Units*Start = $start_byte ")"
  19. sudo  mount -o ro,noload,offset=$start_byte $VhdPath/`basename $1`/vhdi1 $VhdPath/01
  20. echo .
  21. echo List $VhdPath/01
  22. echo --------------------------------
  23. sudo ls $VhdPath/01
  24. echo --------------------------------
  25. echo End ....
复制代码

2016-10-23 21-38-29屏幕截图.png (88.51 KB, 下载次数: 36)

2016-10-23 21-38-29屏幕截图.png

vhd.7z

823 Bytes, 下载次数: 25, 下载积分: 无忧币 -2

包含 装载 vhd 和卸载vhd 的 sh脚本

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

推荐
 楼主| 发表于 2016-10-25 20:34:42 | 只看该作者
不知 发表于 2016-10-25 08:48
ubuntu对ntfs是可以可写挂载的,我测试一般ntfs分区没有问题。


是啊,我的硬盘也有 ntfs 分区,可以正常读写,就是 vhdimount 挂载的不行。
实在不行,还是要用到 虚拟机,用虚拟机挂载后 再通过网络协议 sma 共享出去。
回复

使用道具 举报

3#
 楼主| 发表于 2016-10-23 21:48:45 | 只看该作者
只在  ubuntu 麒麟系统下,对  dos 分区表 的 vhd 进行了测试。
算是抛砖引玉吧。因为 vmware 需要注册而且也很大,
而 virtualbox-fuse 只支持 virtualbox 4.14,现在 virtualbox 都 5.18 版本了
用 qtemu 的  qemu-nbd 需要开端口,还要 kvm 支持,也麻烦。
所以  ,考虑 用 vhdimount 就是 在洋人的网上 找了老半天,才弄明白  offset 到底是个啥。
呵呵 。
回复

使用道具 举报

4#
发表于 2016-10-24 09:34:49 来自手机 | 只看该作者
如果不自己安装新版vbox,这没问题。但安了最新版的vbox,apt-get会提示冲突,新安任何软件都会把vbox卸了。最终,我放弃了virtualbox-fuse。

点评

是啊 ,用 apt-get -f install 就会修复问题,解决的方案就是删除 vbox-fuse . 所以,我用 vhdimount 也不错。  详情 回复 发表于 2016-10-24 12:33
回复

使用道具 举报

5#
 楼主| 发表于 2016-10-24 12:33:23 | 只看该作者
本帖最后由 dos时代菜鸟 于 2016-10-24 12:39 编辑
不知 发表于 2016-10-24 09:34
如果不自己安装新版vbox,这没问题。但安了最新版的vbox,apt-get会提示冲突,新安任何软件都会把vbox卸了 ...


是啊 ,用  apt-get -f install 就会修复问题,解决的方案就是删除 vbox-fuse .
所以,我用 vhdimount 也不错。就是需要计算下 分区的起始位置,用 awk 搞定,呵呵,这是 dos 时代练出的本领。

点评

这个还是有点麻烦啊。还要计算。不过也没办法,我以前想到的办法是不在ubuntu下处理vhd。  详情 回复 发表于 2016-10-24 21:52
回复

使用道具 举报

6#
 楼主| 发表于 2016-10-24 15:41:10 | 只看该作者
刚发现 对于  ntfs 分区 只能  -o ro 只读挂载。不知道能否解决可写的问题。 用 -o rw 就告知没有权限,写保护之类。

点评

将楼主脚本的23行的ro改为rw.  详情 回复 发表于 2016-10-24 21:56
vbox-fuse 有可写选项,必须加上,默认是只读挂载。  详情 回复 发表于 2016-10-24 21:53
回复

使用道具 举报

7#
发表于 2016-10-24 21:28:54 | 只看该作者
这个好 收藏了







    神奇的小尾巴:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36  (zh-CN)
    ——2016/10/24 下午9:28:57
             
    回复

    使用道具 举报

    8#
    发表于 2016-10-24 21:52:04 | 只看该作者
    dos时代菜鸟 发表于 2016-10-24 12:33
    是啊 ,用  apt-get -f install 就会修复问题,解决的方案就是删除 vbox-fuse .
    所以,我用 vhdimount ...

    这个还是有点麻烦啊。还要计算。不过也没办法,我以前想到的办法是不在ubuntu下处理vhd。

    点评

    不要直接安装virtualbox-fuse 用apt-get download下载下来,然后把virtualbox-fuse的执行文件解压到/usr/local/bin就好了。  详情 回复 发表于 2016-11-5 11:09
    所以啊,我编辑了个脚本,负责计算和自动挂载啊。 就是 发现只能只读打开。郁闷中。。。。。  详情 回复 发表于 2016-10-25 08:28
    回复

    使用道具 举报

    9#
    发表于 2016-10-24 21:56:04 | 只看该作者
    dos时代菜鸟 发表于 2016-10-24 15:41
    刚发现 对于  ntfs 分区 只能  -o ro 只读挂载。不知道能否解决可写的问题。 用 -o rw 就告知没有权限,写 ...

    将楼主脚本的23行的ro改为rw.

    点评

    改成 -rw ,就说没权限,写保护啥的。 不知道是 vhdimount 的问题,还是 mount 的问题。或许是 linux 对 ntfs 结构的写保护的问题?  详情 回复 发表于 2016-10-25 08:12
    回复

    使用道具 举报

    10#
     楼主| 发表于 2016-10-25 08:12:25 | 只看该作者
    不知 发表于 2016-10-24 21:56
    将楼主脚本的23行的ro改为rw.

    改成 -rw ,就说没权限,写保护啥的。
    不知道是  vhdimount  的问题,还是 mount 的问题。或许是 linux 对 ntfs 结构的写保护的问题?

    点评

    ubuntu对ntfs是可以可写挂载的,我测试一般ntfs分区没有问题。  详情 回复 发表于 2016-10-25 08:48
    回复

    使用道具 举报

    11#
     楼主| 发表于 2016-10-25 08:28:46 | 只看该作者
    不知 发表于 2016-10-24 21:52
    这个还是有点麻烦啊。还要计算。不过也没办法,我以前想到的办法是不在ubuntu下处理vhd。

    所以啊,我编辑了个脚本,负责计算和自动挂载啊。
    就是 发现只能只读打开。郁闷中。。。。。
    回复

    使用道具 举报

    12#
    发表于 2016-10-25 08:48:22 | 只看该作者
    dos时代菜鸟 发表于 2016-10-25 08:12
    改成 -rw ,就说没权限,写保护啥的。
    不知道是  vhdimount  的问题,还是 mount 的问题。或许是 linux  ...

    ubuntu对ntfs是可以可写挂载的,我测试一般ntfs分区没有问题。

    点评

    是啊,我的硬盘也有 ntfs 分区,可以正常读写,就是 vhdimount 挂载的不行。  详情 回复 发表于 2016-10-25 20:34
    回复

    使用道具 举报

    13#
    发表于 2016-11-5 11:09:36 | 只看该作者
    不知 发表于 2016-10-24 21:52
    这个还是有点麻烦啊。还要计算。不过也没办法,我以前想到的办法是不在ubuntu下处理vhd。

    不要直接安装virtualbox-fuse
    用apt-get download下载下来,然后把virtualbox-fuse的执行文件解压到/usr/local/bin就好了。

    点评

    这也是个好方法,只是没有写入ubuntu的软件包数据库,以后忘了可能有一定影响。  详情 回复 发表于 2016-11-5 11:14
    回复

    使用道具 举报

    14#
    发表于 2016-11-5 11:14:47 | 只看该作者
    yuub 发表于 2016-11-5 11:09
    不要直接安装virtualbox-fuse
    用apt-get download下载下来,然后把virtualbox-fuse的执行文件解压到/usr ...

    这也是个好方法,只是没有写入ubuntu的软件包数据库,以后忘了可能有一定影响。
    回复

    使用道具 举报

    15#
    发表于 2017-1-17 21:48:20 | 只看该作者
    固定大小的vhd 还是用kpartx 简明。
    1. sudo kpartx -av VHD文件名
    复制代码
    可惜对于动态大小vhd不能用。
    回复

    使用道具 举报

    16#
    发表于 2017-9-15 15:53:59 | 只看该作者
    本帖最后由 2012angelkyo 于 2017-9-15 15:55 编辑

    来嘛,送你一个我提取的vdfuse
    在解压后的目录右键--在当前目录打开终端
    然后输入
    1. ./install.sh
    复制代码
    即可。
    要删除就运行
    1. ./uninstall.sh
    复制代码
    vdfuse.tar.gz (1022.35 KB, 下载次数: 6)

    其实就几个文件而已
    1. .
    2. ├── bin
    3. │   └── vdfuse
    4. ├── install.sh
    5. ├── lib
    6. │   └── virtualbox
    7. │       ├── VBoxDDU.so
    8. │       └── VBoxRT.so
    9. └── uninstall.sh
    复制代码


    回复

    使用道具 举报

    17#
     楼主| 发表于 2017-9-25 12:23:31 | 只看该作者
    已经 改用 qemu-nbd  
    实现 起来更 方便。


    http://bbs.wuyou.net/forum.php?m ... d=387667&extra=
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

    闽公网安备 35020302032614号

    GMT+8, 2025-12-10 18:37

    Powered by Discuz! X3.3

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表