无忧启动论坛

标题: ubuntu 下 挂在 vhd的脚本 [打印本页]

作者: dos时代菜鸟    时间: 2016-10-23 21:38
标题: ubuntu 下 挂在 vhd的脚本
本帖最后由 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, 下载次数: 42)

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

vhd.7z

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

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


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

作者: 不知    时间: 2016-10-24 09:34
如果不自己安装新版vbox,这没问题。但安了最新版的vbox,apt-get会提示冲突,新安任何软件都会把vbox卸了。最终,我放弃了virtualbox-fuse。
作者: dos时代菜鸟    时间: 2016-10-24 12:33
本帖最后由 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 时代练出的本领。
作者: dos时代菜鸟    时间: 2016-10-24 15:41
刚发现 对于  ntfs 分区 只能  -o ro 只读挂载。不知道能否解决可写的问题。 用 -o rw 就告知没有权限,写保护之类。
作者: sysop    时间: 2016-10-24 21:28
这个好 收藏了






神奇的小尾巴: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
         

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

这个还是有点麻烦啊。还要计算。不过也没办法,我以前想到的办法是不在ubuntu下处理vhd。
作者: 不知    时间: 2016-10-24 21:56
dos时代菜鸟 发表于 2016-10-24 15:41
刚发现 对于  ntfs 分区 只能  -o ro 只读挂载。不知道能否解决可写的问题。 用 -o rw 就告知没有权限,写 ...

将楼主脚本的23行的ro改为rw.
作者: dos时代菜鸟    时间: 2016-10-25 08:12
不知 发表于 2016-10-24 21:56
将楼主脚本的23行的ro改为rw.

改成 -rw ,就说没权限,写保护啥的。
不知道是  vhdimount  的问题,还是 mount 的问题。或许是 linux 对 ntfs 结构的写保护的问题?
作者: dos时代菜鸟    时间: 2016-10-25 08:28
不知 发表于 2016-10-24 21:52
这个还是有点麻烦啊。还要计算。不过也没办法,我以前想到的办法是不在ubuntu下处理vhd。

所以啊,我编辑了个脚本,负责计算和自动挂载啊。
就是 发现只能只读打开。郁闷中。。。。。
作者: 不知    时间: 2016-10-25 08:48
dos时代菜鸟 发表于 2016-10-25 08:12
改成 -rw ,就说没权限,写保护啥的。
不知道是  vhdimount  的问题,还是 mount 的问题。或许是 linux  ...

ubuntu对ntfs是可以可写挂载的,我测试一般ntfs分区没有问题。
作者: dos时代菜鸟    时间: 2016-10-25 20:34
不知 发表于 2016-10-25 08:48
ubuntu对ntfs是可以可写挂载的,我测试一般ntfs分区没有问题。


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

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

不要直接安装virtualbox-fuse
用apt-get download下载下来,然后把virtualbox-fuse的执行文件解压到/usr/local/bin就好了。
作者: 不知    时间: 2016-11-5 11:14
yuub 发表于 2016-11-5 11:09
不要直接安装virtualbox-fuse
用apt-get download下载下来,然后把virtualbox-fuse的执行文件解压到/usr ...

这也是个好方法,只是没有写入ubuntu的软件包数据库,以后忘了可能有一定影响。
作者: 2011niumao    时间: 2017-1-17 21:48
固定大小的vhd 还是用kpartx 简明。
  1. sudo kpartx -av VHD文件名
复制代码
可惜对于动态大小vhd不能用。
作者: 2012angelkyo    时间: 2017-9-15 15:53
本帖最后由 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
复制代码



作者: dos时代菜鸟    时间: 2017-9-25 12:23
已经 改用 qemu-nbd  
实现 起来更 方便。


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




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3