无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: Misty
打印 上一主题 下一主题

[原创] vdfuseloop:支持更多格式虚拟磁盘启动的Linux方式(vdi/vmdk/vhd等)

    [复制链接]
33#
发表于 2022-11-23 17:44:17 | 只看该作者
lijingjack 发表于 2020-12-22 10:32
**** 作者被禁止或删除 内容自动屏蔽 ****

qemu-nbd 挂载 动态 ubuntu vhd ,在 dracut 的 pre-mount 挂脚本处理,救援模式shell 下看日志是可以成功挂到 sysroot上的,也手动验证了,但是在 switch root 的时候,qemu-nbd 就立马断开连接了(shutting down socket),ps 看进程结束了,猜测是 systemd kill 掉了。exec 的方案也无效,但是理论上来说 vdfuse 都可以挂载到进入系统,qemu-nbd 原理也是一样的,不知道怎么整了emmm,大佬给点建议呗
回复

使用道具 举报

32#
发表于 2022-3-11 12:36:50 | 只看该作者
我有两个问题
第一,如果我不用win,我只是多个linux的多系统,但不想多分区,我该怎么做
我的考虑是,vhd并不是linux下的常规虚拟磁盘格式,使用vhd格式更多的需求是win作为主系统的需求。那么如果摒弃vhd这种格式,只考虑将linux装进一个虚拟磁盘文件,无论它是raw,crow2,会不会更简单一些。

第二,我目前折腾的这台机器是个国产机,也就是arm64架构,既然这个方案是用的vbox的解决方案,那么它能否支持arm64架构的linux呢?

点评

显然不支持,vbox除了apple的m系列外目前不支持arm,当然把挂载工具vdfuse换成支持arm的即可  详情 回复 发表于 2023-5-29 15:48
回复

使用道具 举报

31#
发表于 2022-3-8 20:54:29 | 只看该作者
zhangxuwang 发表于 2021-11-10 10:32
大佬,想用动态vhd装linux,能否出个详细的教程

我也在等待大佬的详细教程
回复

使用道具 举报

30#
发表于 2021-11-10 10:32:45 | 只看该作者
大佬,想用动态vhd装linux,能否出个详细的教程
回复

使用道具 举报

29#
发表于 2021-11-3 11:09:46 | 只看该作者
回复

使用道具 举报

28#
发表于 2021-10-20 18:44:20 | 只看该作者
I would like to study it
回复

使用道具 举报

27#
发表于 2021-9-25 22:14:59 | 只看该作者
有哪位完成此帖 可以分享 完成的档案 感谢
回复

使用道具 举报

26#
发表于 2021-9-22 21:35:12 | 只看该作者
本帖最后由 minmax 于 2021-9-23 20:54 编辑

vdfuse 讚
回复

使用道具 举报

25#
发表于 2021-4-1 20:59:15 | 只看该作者
本帖最后由 faoao 于 2021-4-13 17:27 编辑

已在上一楼修改,请删除本楼
回复

使用道具 举报

24#
发表于 2021-4-1 19:53:45 | 只看该作者

求助vdfuse编译安装,和grub2启动项编写

本帖最后由 faoao 于 2021-4-13 17:25 编辑

我的系统是 ubuntu20.04 用VMware安装在vmdk里,自动分了 /boot/efi 和 /根目录两个分区

1、vdfuse编译安装问题
./fetch_vbox_headers.sh 执行有问题(是不是仓库地址改了?),我直接从 https://download、virtualbox、org/virtualbox/6.1.18/VirtualBox-6.1.18.tar.bz2 下载的源码提取了include文件夹放入vdfuse中(能不能行?)。
后面的 make 和 sudo make install 执行感觉有问题
  1. w@X:~/下载/vdfuse$ make
  2. gcc -DHAVE_CONFIG_H -I. -I./src    -Iinclude -I/usr/include/fuse -D_FILE_OFFSET_BITS=64 -MT vdfuse.o -MD -MP -MF .deps/vdfuse.Tpo -c -o vdfuse.o `test -f 'src/vdfuse.c' || echo './'`src/vdfuse.c
  3. src/vdfuse.c: In function ‘main’:
  4. src/vdfuse.c:272:7: warning: passing argument 5 of ‘VDInterfaceAdd’ makes integer from pointer without a cast [-Wint-conversion]
  5.   272 |   if (RT_FAILURE(VDInterfaceAdd(&vdError, "VD Error", VDINTERFACETYPE_ERROR,
  6.       |       ^~~~~~~~~~
  7.       |       |
  8.       |       void *
  9. In file included from include/VBox/vd.h:42,
  10.                  from src/vdfuse.c:114:
  11. include/VBox/vd-ifs.h:155:39: note: expected ‘size_t’ {aka ‘long unsigned int’} but argument is of type ‘void *’
  12.   155 |                                size_t cbInterface, PVDINTERFACE *ppVDIfs)
  13.       |                                ~~~~~~~^~~~~~~~~~~
  14. mv -f .deps/vdfuse.Tpo .deps/vdfuse.Po
  15. gcc -Iinclude -I/usr/include/fuse -D_FILE_OFFSET_BITS=64 -Wl,-rpath,/usr/lib/virtualbox  -o vdfuse vdfuse.o /usr/lib/virtualbox/VBoxDDU.so -lfuse -pthread
复制代码

2、grub2启动项编写问题

我的grub启动项参照 niumao大佬的改的
  1. menuentry 'VBUNTUFIX linux' --class ubuntu --class gnu-linux --class gnu --class os {
  2.         insmod gzio
  3.         insmod part_msdos
  4.         insmod part_gpt
  5.         insmod ext2
  6.         insmod ntfs
  7.         insmod probe
  8.         insmod search
  9.         search --no-floppy -f --set=aabbcc /Ubuntu/Ubuntucl.vmdk
  10.         set root=${aabbcc}
  11.         probe -u --set=ddeeff ${aabbcc}
  12.         linux /Ubuntu/vmlinuz root=UUID=${ddeeff} vloop=/Ubuntu/Ubuntucl.vmdk vlooppart=p1
  13.         initrd /Ubuntu/initramfs-5.8.0-48-generic.img
  14. }
复制代码
但是还是进不了系统,进入了 dracut: 的命令行
我现在不知道是vmdk系统中软件还没安装配置好,还是grub2启动项没编辑好。麻烦大佬帮忙修改下
回复

使用道具 举报

23#
 楼主| 发表于 2021-3-21 08:27:34 | 只看该作者
2011niumao 发表于 2021-3-21 07:17
另外,最近发现另一种可写挂载ntfs分区的方法,其挂载格式是ufsd ,可以安装到ubuntu上,用它代替ntfs-3g,  ...

哦是paragon的那个驱动啊,感觉确实会好用一些,但是感觉这种闭源驱动配置起来都不简单,我个人感觉正确使用ntfs3g就够了(用dracut已经解决buffer io错误了)

这个帖子主要是想把vmware虚拟机起起来(这样既可以在vmware里跑,又可以在需要的时候拿出来跑)
回复

使用道具 举报

22#
发表于 2021-3-21 07:21:45 来自手机 | 只看该作者
论坛里就有帖子,“关于paragon ntfs驱动(ufsd)性能的问题请教”
回复

使用道具 举报

21#
发表于 2021-3-21 07:17:04 来自手机 | 只看该作者
另外,最近发现另一种可写挂载ntfs分区的方法,其挂载格式是ufsd ,可以安装到ubuntu上,用它代替ntfs-3g, 不需要改写源文件,就可以避免buffer io 错误。

点评

哦是paragon的那个驱动啊,感觉确实会好用一些,但是感觉这种闭源驱动配置起来都不简单,我个人感觉正确使用ntfs3g就够了(用dracut已经解决buffer io错误了) 这个帖子主要是想把vmware虚拟机起起来(这样既可以  详情 回复 发表于 2021-3-21 08:27
回复

使用道具 举报

20#
发表于 2021-3-21 07:13:59 来自手机 | 只看该作者
在内存盘系统initrd.img 里加入nbd模块和qemu-nbd 命令后挂载启动动态vhd成功了。
回复

使用道具 举报

19#
发表于 2021-3-21 07:11:44 来自手机 | 只看该作者
我使用kloop那个模式,在initrd.img挂载
回复

使用道具 举报

18#
 楼主| 发表于 2021-3-21 06:55:11 | 只看该作者
lijingjack 发表于 2020-12-22 10:32
按照这个思路,理论上qcow2也可以通过qemu-nbd来支持吧,但是实际上不行,不知道问题出在哪里,vmdk我已经 ...

那就得看看qemu-nbd为啥没挂载上了hhh
可以自己调试看看
回复

使用道具 举报

17#
发表于 2020-12-22 10:32:05 | 只看该作者
按照这个思路,理论上qcow2也可以通过qemu-nbd来支持吧,但是实际上不行,不知道问题出在哪里,vmdk我已经尝试成功了。

点评

qemu-nbd 挂载 动态 ubuntu vhd ,在 dracut 的 pre-mount 挂脚本处理,救援模式shell 下看日志是可以成功挂到 sysroot上的,也手动验证了,但是在 switch root 的时候,qemu-nbd 就立马断开连接了(shutting down s  详情 回复 发表于 2022-11-23 17:44
那就得看看qemu-nbd为啥没挂载上了hhh 可以自己调试看看  详情 回复 发表于 2021-3-21 06:55
回复

使用道具 举报

16#
发表于 2020-12-6 17:01:16 | 只看该作者
技术贴,学习学习。。。
回复

使用道具 举报

15#
发表于 2020-11-29 20:56:07 | 只看该作者
一说代理 就放弃了,麻烦啊,
回复

使用道具 举报

14#
发表于 2020-11-27 11:03:47 | 只看该作者

非常棒的技术贴,收藏
回复

使用道具 举报

13#
发表于 2020-11-26 21:53:49 | 只看该作者
66666666666666666666
回复

使用道具 举报

12#
发表于 2020-11-3 10:20:11 | 只看该作者
没看懂,纯粹支持一下
回复

使用道具 举报

11#
发表于 2020-11-2 20:08:03 | 只看该作者
太复杂了,都是程序员之间的讨论,有没有更简单直接可操作性的方案啊。把linux装进VHDX启动。
回复

使用道具 举报

10#
发表于 2020-10-10 19:24:21 | 只看该作者
有个问题就是我每次运行起来报错
回复

使用道具 举报

9#
发表于 2020-9-1 22:30:00 | 只看该作者
很给力! 完全同意
回复

使用道具 举报

8#
发表于 2020-8-27 19:25:45 | 只看该作者
请问我以前安装了vbox,已经有vdfuse命令,还要编译安装vdfuse吗?
回复

使用道具 举报

7#
发表于 2020-2-21 17:48:46 | 只看该作者
qemu-img 创建的vhd WINDOWS为什么不能用,有知道的吗?
回复

使用道具 举报

6#
发表于 2020-2-19 23:00:28 | 只看该作者
非常棒的技术贴,收藏
回复

使用道具 举报

5#
发表于 2020-2-4 23:25:01 | 只看该作者
技术贴,标记了
回复

使用道具 举报

4#
发表于 2020-2-4 22:38:10 | 只看该作者
喜欢听大佬们技术分析
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-28 04:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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