无忧启动论坛

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

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

    [复制链接]
1#
发表于 2023-6-15 22:25:30 | 显示全部楼层
有在drauct下成功使用qemu-ndb的挂载vhd(动态)的案例吗
按照楼主的方案initramfs-tool方案改写qemu-nd挂载成功了
但是drauct改写时nbd被断开显示IO  error
[  568.600126] fedora kernel: block nbd1: shutting down sockets
[  568.603241] fedora kernel: blk_print_req_error: 11 callbacks suppressed
[  568.603244] fedora kernel: I/O error, dev nbd1, sector 97519872 op 0x0:(READ) flags 0x3000 phys_seg 1 prio class 2
[  568.603260] fedora systemd-journald[292]: Received SIGTERM from PID 1 (systemd).
[  568.603774] fedora kernel: EXT4-fs error (device nbd1p2): __ext4_get_inode_loc_noinmem:4687: inode #3014657: block 12058656: comm systemd: unable to read itable block
回复

使用道具 举报

2#
发表于 2023-6-15 22:25:57 | 显示全部楼层
有在drauct下成功使用qemu-ndb的挂载vhd(动态)的案例吗
按照楼主的方案initramfs-tool方案改写qemu-nd挂载成功了
但是drauct改写时nbd被断开显示fedora kernel: I/O error

点评

是不是应该首先在vhd内系统的内核设置一下,block的黑名单或者白名单?再重新制作initramfs使用此内核引导。  详情 回复 发表于 2023-6-16 10:35
看看我这个方案。好像我也没有成功,但是Ubuntu系统qemu-nbd是成功了的,只是明显感觉到系统迟钝。  详情 回复 发表于 2023-6-16 10:25
回复

使用道具 举报

3#
发表于 2023-6-16 21:10:39 | 显示全部楼层
2011niumao 发表于 2023-6-16 10:25
看看我这个方案。好像我也没有成功,但是Ubuntu系统qemu-nbd是成功了的,只是明显感觉到系统迟钝。
注意 ...

感谢大佬回复,我尝试使用该脚本但是还是没有正常引导 我的环境是fedroa 38  efi分区 +EXT4(/分区)   
grub2 配置如下
  1. menuentry 'kloop-dracut' --class ubuntu {
  2.         insmod gzio
  3.         insmod part_msdos
  4.         insmod part_gpt
  5.         insmod ext2
  6.         insmod ntfs
  7.         insmod probe
  8.         set vhdfile="/CloudStorage/Virtual/Virtual_Disk/Blackup/kloop_dracut/kloop_dracut.vhd"
  9.         set root=(hd1,gpt2)
  10.         search --no-floppy -f --set=aabbcc  $vhdfile
  11.         set root=${aabbcc}
  12.         probe -u --set=ddeeff ${aabbcc}
  13.         linux        /CloudStorage/Virtual/Virtual_Disk/Blackup/kloop_dracut/vmlinuz rw root=UUID=${ddeeff} qemunbd=$vhdfile kroot=/dev/nbd1p2   selinux=0  rd.debug rd.shell
  14.         initrd       /CloudStorage/Virtual/Virtual_Disk/Blackup/kloop_dracut/initrd.img
  15. }
复制代码


返回debug 如下123网盘后加 /s/PP7lVv-YAOC.html提取码:IJnn
回复

使用道具 举报

4#
发表于 2023-6-16 21:56:22 | 显示全部楼层
kpartx -av 操作将分区挂载到了/dev/mapper 下 修改grub2配置 kroot=/dev/mapper/nbd1p2 一直滚动输出 卡在starting draut-pre-udev.service  -  rule-based manager for devievents and files

点评

kroot 的值应该是什么呢?是/dev/mapper/nbd1p2?还是 /dev/npd1p2?两者不一样的。也许两种都可以?  详情 回复 发表于 2023-6-17 14:18
回复

使用道具 举报

5#
发表于 2023-6-18 18:10:28 | 显示全部楼层
2011niumao 发表于 2023-6-17 14:18
kroot 的值应该是什么呢?是/dev/mapper/nbd1p2?还是 /dev/npd1p2?两者不一样的。也许两种都可以?

ktoot=/dev/mapper/nbd1p2 和
kroot=/dev/npd1p2 加 注释掉kprat后的运行结果一样
问题照片如下

www点123pan点com/s/PP7lVv-i9OC.htm
回复

使用道具 举报

6#
发表于 2023-6-19 22:18:27 | 显示全部楼层
本帖最后由 ghosthark 于 2023-6-19 23:54 编辑
2011niumao 发表于 2023-6-17 14:18
kroot 的值应该是什么呢?是/dev/mapper/nbd1p2?还是 /dev/npd1p2?两者不一样的。也许两种都可以?

通过增加grub debug rd.break=pre-shutdown rd.break=shutdown  rd.udev.debug  rd.break=pre-mount rd.break=mount
以及在增加 blockdev 之后进入到了initqueue 阶段 增加rd.break=initqueue rd.initqueue.debug 后发现内核模块丢失无法通过modprobe加载包括fuse  ntfs  nvme在内的所有模块并且ntfs-3g 挂载也无法操作
回复

使用道具 举报

7#
发表于 2023-6-30 00:18:19 | 显示全部楼层
fedroa dracut 方式

vdfuseloop 方式使用qmeu-nbd 替换vdfuse 操作会导致卡在initqueue
kloop方案改写也有相同问题

arch
kloop_mkinitcpio 使用qemunbd  rootfs下提示 ntfs-3g 已挂载 但是umount 之后依然无法挂载 并且使用kloop的ntfs-3g make中很多报错 因此使用的是ntfs-3g+fuse2的包 但是这个似乎挂载时有用户权限问题
至此 只有参照楼主initramfs-tool方案改写qemu成功了
全部资料信息github.com/MobtgZhang/VHD-Boot
如果有成功实现 dracut mkinitcpio 实现使用qemu-nbd 方式挂载动态vhd 成功的方案可以分享一下不胜感激

点评

对于Fedora, 你确定在使用dracut命令时候,把命令qume-nbd装入到了initramfs里了? 不然,内核挂载好动态vhd文件所在分区后,找不到qume-nbd命令,是无法挂载动态vhd的、 使用以下一个命令来制作initramfs,不用修  详情 回复 发表于 2023-7-3 13:50
回复

使用道具 举报

8#
发表于 2023-7-28 10:43:02 | 显示全部楼层
2011niumao 发表于 2023-7-3 13:50
对于Fedora, 你确定在使用dracut命令时候,把命令qemu-nbd装入到了initramfs里了?是qemu-nbd,不要错拼。 ...

配置正确之后还是异常 返回
Starting initrd-switch-root.service - Switch Root...
[
170.773548] blk_print_req_error: 2 callbacks suppressed
170.773551] I/O error, dev nbdi, sector 42946816 op 0x0:(1READ) flags 0x3000 phys_seg 1 prio class 2
[ 170.773607] systemd-journald[5138]: Received SIGTERMfrom PID 1 (systemd)
170.774783] EXT4-fs error (device nbd1p2):__ext4_get_inode_loc_noinmem:4493: inode #1310721: block 5242912: comm systemd: un
able to read itable block
[ 170.775600] I/O error, dev nbdi, sector 1003520 op 0x1:(WRITE) flags 0x23800 phys_seg 1 prio class 2
[ 170.776124] Buffer I/O error on dev nbdip2, logicalblock 0, lost sync page write
[ 170.776402] EXT4-fs (nbd1p2): I/O error while writing superblock
[ 170.801244] systemd[1]: systemd 253.7-1.fc38 runniing in system mode (+PAM +AUDIT +SELINUX -APPARMOR +IMA +SMACK +SECCOMP -GCR
YPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDOZ +IDNŽ -IDN -IPTC +KMOD +LIBCRYPTSETUP +LIBEDISK +PCREZ +PWQUALITY +P11KI
T +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPP_FRAMEWORK +XKBCOMMON +UTMP +SYSUINIT default-hierarchy=unified)
[]
170.802266] systemd[1]: Detected virtualization vware
[ 170.802661] systemd[1]: Detected architecture x86-644.
[ 170.803121] systemd[1]: Running in initrd.

点评

用qemu-nbd是会这样的,我都没成功过,initramfs-tool 和 dracut 都是 switch root 的时候卡 io error,目前我的方案是自己写的挂载工具,可以实现 x86 和 arm 的挂载,但是 initramfs-tool 的关机无论是用 vdfus 还  详情 回复 发表于 2023-7-31 11:53
回复

使用道具 举报

9#
发表于 2023-8-10 22:14:56 | 显示全部楼层
want20 发表于 2023-7-31 11:53
用qemu-nbd是会这样的,我都没成功过,initramfs-tool 和 dracut 都是 switch root 的时候卡 io error, ...

initramfs-tool 我没有遇到问题
dracut  目前定位到没有加--uefi参数  可以进入rootfs 但是没有成功启动
grub 加个 vhd 的只读模块 这个怎么实现 可以分享一下吗 loopback ?似乎不支持动态磁盘
如果可以有支持动态磁盘的通用方案可以分享一下吗

点评

提示一下,参考vboot的vhd模块,自己改  详情 回复 发表于 2023-9-14 11:50
回复

使用道具 举报

10#
发表于 2023-8-20 19:48:12 | 显示全部楼层
2011niumao 发表于 2023-7-3 13:50
对于Fedora, 你确定在使用dracut命令时候,把命令qemu-nbd装入到了initramfs里了?是qemu-nbd,不要错拼。 ...

经过这段时间尝试已经成功实现arch 原因在于  lo设备没有分配网络地址和qemu依赖/var/lock中存放链接文件
增加
  1. mkdir -p /var/lock
  2. addr add 127.0.0.1/8 dev lo
  3. ip link set lo up
复制代码

之后正常启动 但是存在关机异常 但基本可用
fedroa 的dracut 还是没有头绪,目前只能定位到在initrd阶段正常但后续过程中导致了nbd设备和模块被kill 继续尝试中
回复

使用道具 举报

11#
发表于 2024-2-19 15:33:00 | 显示全部楼层
求教qemu-nbd 的动态磁盘引导方式已经尝试过  github.com/MobtgZhang/VHD-Boot/blob/master/kloop/fedora-kloop/README.md]以及github.com/MobtgZhang/VHD-Boot/blob/master/vdfuseloop/README.md 都卡在启动中
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-8 16:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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