[Boot/Shutdown] vhd安装Deepin后加入LiveCD启动异常问题
Tofloor
poster avatar
139******15
deepin
2023-09-15 00:39
Author

vhd安装Deepin参考win系统下在VHD中装deepin系统步骤-论坛-深度科技,完成后成功引导进入deepin桌面。

这个方案是将deepin文件后缀名改为.vtoy,和windows的vhd有一个本质的区别。windows的vhd是可以双击打开vhd文件的,但是vtoy后缀文件没办法双击打开。当然可以将后缀去掉之后,又用回vbox启动deepin。不过如果有两百台电脑,每台都拷贝一个deepin.vhd.vtoy文件使用,其中有几台deepin.vhd.vtoy坏掉了,里面的数据没办法直接拿出来,又要一个一个文件拷到装有vbox的计算机去处理,相当麻烦,不利于大规模使用。(题外话:为什么不是直接装deepin,而要用vtoy呢?主要是安装速度太慢了,没有个把钟根本装不完一台机,感觉有XP当年安装盘的经历了!装完还要各种配置,几百台猴年马月搞不定,所以才想到vtoy这种方法,复制粘贴几十个G也才十来分钟,而且配置都是一次搞定就可以了。期待Deepin和UOS改进安装方式,加快速度!!!)

说正题:为了解决vtoy方式的维护问题,引入LiveCD,类似windows的PE维护模式。普通的LiveCD U盘启动是不行的,同样进入LiveCD桌面后无法双击打开或者加载vtoy文件。LiveCD需要一起放到Deepin.vhd.vtoy并新增LiveCD启动项。

放入的方法很简单,windows系统下将deepin.vhd.vtoy改为deepin.vhd(去掉vtoy)后缀,双击打开deepin.vhd文件,然后打开diskgenius将LiveCD.ISO放到deepin任意一个挂载盘根下(建一个文件夹放也可以,英文名就行,引导时路径要对)。也就是丢在下图系统盘或者数据盘都可以,甚至可以丢到deepin的引导区(我取名ESP)

image.png

修改引导文件:

路径:boot/grub/custom.cfg (没有这个文件可以自己建一个,要utf-8编码的,用diskgenius扔进去boot/grub/)

代码如下:

 if [ 'pc' == $grub_platform ] ; then
	menuentry "      BIOS Firmware"{
		configfile
	}
else
	menuentry "      UEFI Firmware"{
		configfile
	}
fi

menuentry "Deepin Linux ISO (live)" --class deepin --class gnu-linux --class gnu --class os{
	echo 'booting...'
	search --file /deepin.iso --set=root
	set isofile=/deepin.iso
	loopback loop $isofile

	if [ 'pc' == $grub_platform ] ; then
		linux (loop)/live/vmlinuz findiso=$isofile boot=live components union=overlay locales=zh_CN.UTF-8   #live/vmlinuz不同的LiveCD版本这里写法不同
		initrd (loop)/live/initrd.img
	else
		linux (loop)/live/vmlinuz findiso=$isofile boot=live components union=overlay locales=zh_CN.UTF-8
		initrd (loop)/live/initrd.img
	fi
}

menuentry "Deepin Linux ISO (Failsafe)" --class deepin --class gnu-linux --class gnu --class os{
	echo 'booting...'
	search --file /deepin.iso --set=root
	set isofile=/deepin.iso
	loopback loop $isofile

	if [ 'pc' == $grub_platform ] ; then
		linux (loop)/live/vmlinuz  findiso=$isofile boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal union=overlay locales=zh_CN.UTF-8
		initrd (loop)/live/initrd.img
	else
	    linux (loop)/live/vmlinuz.efi findiso=$isofile boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal union=overlay locales=zh_CN.UTF-8
	    initrd (loop)/live/initrd.img
	fi
}

完成后,退出vhd。然后用vbox再启动deepin.vhd时可以看到LiveCD的引导项,vbox虚拟机里面完全可以进入。随后退出vbox,改名为deepin.vhd.vtoy。放到实际电脑中开机引导。这个时候deepin桌面没问题可以进去,但是开机选择LiveCD后进不去,换了几个版本的LiveCD都不行,Deepin换成UOS也不行,Intel和兆芯的平台都试过,也不行。

求官方给个解决办法,这是目前批量维护机器可能最省时的方法,自己是在搞不出来,也想不到是什么问题了,网上几乎没有这个方案的文章。

另外,兆芯似乎没办法UEFI成功引导开机启动项,Intel没问题,据说是兆芯还不支持,这个也不知道如何解决,不过用了一些方法绕过去也成功了。

custom.zip

LiveCD太大,搞不上来附件!

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
2023-09-15 01:40
#1

https://www.iventoy.com/cn/index.html

Reply View the author
139******15
deepin
2023-09-15 01:56
#2
神末shenmo

https://www.iventoy.com/cn/index.html

就是不能用ventoy直接放IOS的方法,要是允许,也不用研究vbox安装vtoy的方法了,虽然vtoy也是ventoy的一种,不过这种方式自己加引导是被允许的。

Reply View the author
神末shenmo
deepin
Spark-App
2023-09-15 01:57
#3
139******15

就是不能用ventoy直接放IOS的方法,要是允许,也不用研究vbox安装vtoy的方法了,虽然vtoy也是ventoy的一种,不过这种方式自己加引导是被允许的。

这个是iventoy,pxe助手

Reply View the author
139******15
deepin
2023-09-15 21:15
#4
神末shenmo

这个是iventoy,pxe助手

差点被带歪了😃。我的vtoy系统是类似windows.vhd,已经装好的系统,不是iso每次开机加载去用关机就丢失的临时加载模式,也不需要用iventoy去批量安装系统,系统都已经拷贝到每台机了。正常不要LiveCD的话,开机就能直接用了。只是想嵌入一个类似PE的LiveCD到系统里面,嵌入的LiveCD无法进入LiveCD的桌面而已,当然用U盘搞个LiveCD是可以,但是是不可能打开vtoy的文件的,所以这样搞没用。

Reply View the author