这个后面涉及到授权,我估计是通过串口通信来传输授权信息的。
可以尝试提取它的内核内的驱动,来完善现有黑群晖。
或者通过串口注入的方式,来绕过授权,只不过这就超出了我的能力范围了。
总之,vdsm的串口root账户密码不是 空。
获取qcow2
1.创建vdsm
按照普通方式创建vdsm,是否开机无所谓,我试过使用免费授权,安装完系统后,再进行提取,直接进入了无授权的安装页面。
2.导出不要吐槽我的命名方式,我经常搞混啦
3.转换
使用解压软件打开ddsm.ova
,可以发现一个ddsm.ovf
与三个vmdk
文件,直接解压到新的文件夹。
使用命令:
qemu-img convert -p -f vmdk -O qcow2 ddsm-disk3.vmdk ddsm-disk3.qcow2
将三个vmdk
文件转化为qcow2格式,并用vscode打开ddsm.ovf
查看下配置。
创建
可以使用原生qemu-img,也可以使用unraid,使用pc-i440fx的machine模式,bios引导,scsi硬盘模式即可,还可以使用virtio网卡,创建虚拟机。
然后使用virsh console ddsm进入调试串口,监控启动进度。
当然,启动正常,但如果安装最新的dsm7.0就提示需要有授权。
研究
直接开启
当使用dsm 6.2.4-25556 Update 2 synology_kvmx64_virtualdsm.pat
进行安装时,会报损毁而非无法授权。
再次重启后就无法引导了,有点类似于将系统安装到引导盘内。
因此,可以尝试想办法只处理单个硬盘,而非将整个硬盘格掉。
硬盘分区
使用qemu-nbd进行挂载,如下所示:
nbd0 43:0 0 10G 0 disk
├─nbd0p1 43:1 0 15.7M 0 part
└─nbd0p2 43:2 0 94.1M 0 part
nbd2 43:64 0 10G 0 disk
├─nbd2p1 43:65 0 2.4G 0 part
└─nbd2p2 43:66 0 2G 0 part
nbd3 43:96 0 100G 0 disk
└─nbd3p1 43:97 0 100G 0 part
ddsm-disk2
root@ubuntu:/home/ubuntu/ddsm# mount /dev/nbd0p1 /mnt
root@ubuntu:/home/ubuntu/ddsm# ll /mnt
总用量 9310
drwxr-xr-x 3 root root 1024 3月 4 2021 ./
drwxr-xr-x 20 root root 4096 11月 9 15:12 ../
drwxr-xr-x 3 root root 1024 3月 4 2021 boot/
-rw-r--r-- 1 root root 99 3月 4 2021 GRUB_VER
-rw-r--r-- 1 root root 6136768 3月 4 2021 rd.gz
-rw-r--r-- 1 root root 3349488 3月 4 2021 zImage
root@ubuntu:/home/ubuntu/ddsm# umount /mnt
root@ubuntu:/home/ubuntu/ddsm# mount /dev/nbd0p2 /mnt
root@ubuntu:/home/ubuntu/ddsm# ll /mnt
总用量 9401
drwxr-xr-x 2 root root 1024 12月 4 20:37 ./
drwxr-xr-x 20 root root 4096 11月 9 15:12 ../
-rw-r--r-- 1 root root 87 12月 4 20:38 grub_cksum.syno
-rw-r--r-- 1 root root 6162128 12月 4 20:38 rd.gz
-r-------- 1 root root 512 12月 4 20:37 Sone.9
-rw-r--r-- 1 root root 65536 3月 4 2021 vender
-rw-r--r-- 1 root root 3349632 12月 4 20:38 zImage
ddsm-disk2
root@ubuntu:/home/ubuntu/ddsm# mount /dev/nbd2p1 /mnt
root@ubuntu:/home/ubuntu/ddsm# ll /mnt
总用量 88
drwxr-xr-x 21 root root 4096 12月 4 20:44 ./
drwxr-xr-x 20 root root 4096 11月 9 15:12 ../
lrwxrwxrwx 1 root root 7 3月 4 2021 bin -> usr/bin/
drwx------ 2 root root 4096 12月 4 20:37 config/
drwxr-xr-x 3 root root 4096 3月 4 2021 dev/
drwxr-xr-x 44 root root 4096 12月 4 20:45 etc/
drwxr-xr-x 42 root root 4096 12月 4 20:42 etc.defaults/
drwxr-xr-x 2 root root 4096 3月 4 2021 initrd/
lrwxrwxrwx 1 root root 7 3月 4 2021 lib -> usr/lib/
lrwxrwxrwx 1 root root 9 3月 4 2021 lib32 -> usr/lib32/
lrwxrwxrwx 1 root root 7 3月 4 2021 lib64 -> usr/lib/
drwx------ 2 root root 4096 3月 4 2021 lost+found/
drwxr-xr-x 2 root root 4096 3月 4 2021 mnt/
drwxr-xr-x 2 root root 4096 3月 4 2021 proc/
-rw------- 1 root root 1024 12月 4 20:36 .rnd
drwx------ 3 root root 4096 12月 4 20:38 root/
drwxr-xr-x 8 root root 4096 12月 4 20:35 run/
lrwxrwxrwx 1 root root 8 3月 4 2021 sbin -> usr/sbin/
drwxr-xr-x 4 root root 4096 12月 4 20:38 .syno/
dr-xr-xr-x 2 root root 4096 3月 4 2021 sys/
drwxr-xr-x 2 root root 4096 12月 4 20:36 .system_info/
drwxrwxrwx 2 root root 4096 12月 4 20:40 tmp/
drwxr-xr-x 2 root root 4096 12月 4 20:38 tmpRoot/
drwxr-xr-x 10 root root 4096 3月 4 2021 usr/
drwxr-xr-x 15 root root 4096 12月 4 20:44 var/
drwxr-xr-x 13 root root 4096 3月 4 2021 var.defaults/
drwxrwxrwx 2 root root 4096 3月 4 2021 volume1/
root@ubuntu:/home/ubuntu/ddsm# umount /mnt
root@ubuntu:/home/ubuntu/ddsm# mount /dev/nbd2p2 /mnt
mount: /mnt: 未知的文件系统类型“swap”.
ddsm-disk3
root@ubuntu:/home/ubuntu/ddsm# mount /dev/nbd3p1 /mnt
root@ubuntu:/home/ubuntu/ddsm# ll /mnt
总用量 4
drwxr-xr-x 1 root root 108 12月 4 20:44 ./
drwxr-xr-x 20 root root 4096 11月 9 15:12 ../
drwxr-xr-x 1 1024 users 76 12月 4 20:41 '@database'/
drwxr-xr-x 1 root root 24 12月 4 20:44 '@S2S'/
drwxr-xr-x 1 195341 195341 26 12月 4 20:44 '@SynoFinder-etc-volume'/
drwxr-xr-x 1 195341 195341 84 12月 4 20:44 '@SynoFinder-log'/
drwxrwxrwt 1 root root 10 12月 4 20:43 '@tmp'/
总结
可以观察到这三块硬盘分别是:
引导盘、挂载点+swap、数据盘
和skynas类似,只不过在这里引导盘与挂载点分为两个硬盘,这两个硬盘为核心硬盘,而数据盘则被挂载到挂载硬盘上了。
可能需要和阿里云的skynas的破解方式一样进行破解,但我目前还没头绪。我就研究到这吧,看有没有大佬对这个有兴趣进一步研究。
尝试
将第一块硬盘改为USB引导,第二第三块依然是scsi后,部署界面就只有一块硬盘提示需要格式化了。然后进行部署,现在就不会报损毁而是卡40%了:
后面我一直无法解决卡40%这个问题,具体解决方法还希望大家一起来研究下。
补一个vdsm的原生配置:
ash-4.3# virsh dumpxml 11
<domain type='kvm' id='11' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>9a9dff46-b3e1-41c0-8003-1164badee095</name>
<uuid>9a9dff46-b3e1-41c0-8003-1164badee095</uuid>
<title>DSM instance: ddsm</title>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<memoryBacking>
<hugepages/>
<locked/>
</memoryBacking>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-2.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
<hap/>
</features>
<cpu mode='host-passthrough'>
<topology sockets='1' cores='1' threads='1'/>
</cpu>
<clock offset='variable' adjustment='-4' basis='utc'>
<timer name='rtc' tickpolicy='catchup' track='guest'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/local/bin/qemu-system-x86_64</emulator>
<controller type='usb' index='0' model='piix3-uhci'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='virtio-serial' index='0'>
<alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</controller>
<interface type='ethernet'>
<mac address='02:11:32:23:76:dd'/>
<script path='no'/>
<target dev='tap0211322376dd'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/35'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/35'>
<source path='/dev/pts/35'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<channel type='unix'>
<source mode='bind' path='/tmp/synohostvmcomm/guest_interface/9a9dff46-b3e1-41c0-8003-1164badee095'/>
<target type='virtio' name='vchannel' state='disconnected'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</memballoon>
</devices>
<qemu:commandline>
<qemu:arg value='-device'/>
<qemu:arg value='vhost-scsi-pci,wwpn=naa.4ab233f4-33c3-410b-b419-55a1d26629f0,addr=0xa,id=vdisk_4ab233f4-33c3-410b-b419-55a1d26629f0,set_driverok=off,max_sectors=16384,boot_tpgt=1,bootindex=1'/>
<qemu:arg value='-device'/>
<qemu:arg value='vhost-scsi-pci,wwpn=naa.42ad3b88-f963-4551-b15a-7b7706f0bb14,addr=0xb,id=vdisk_42ad3b88-f963-4551-b15a-7b7706f0bb14,set_driverok=off,max_sectors=16384,boot_tpgt=1,bootindex=2'/>
<qemu:arg value='-device'/>
<qemu:arg value='vhost-scsi-pci,wwpn=naa.c312c6fd-25c4-4dd2-a4b3-63d7a44a0d21,addr=0xc,id=vdisk_c312c6fd-25c4-4dd2-a4b3-63d7a44a0d21,set_driverok=off,max_sectors=16384,boot_tpgt=1,bootindex=3'/>
</qemu:commandline>
</domain>
版权属于:寒夜方舟
本文链接:https://www.wnark.com/archives/177.html
本站所有原创文章采用署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)。 您可以自由地转载和修改,但请注明引用文章来源和不可用于商业目的。声明:本博客完全禁止任何商业类网站转载,包括但不限于CSDN,51CTO,百度文库,360DOC,AcFun,哔哩哔哩等网站。