[Boot/Shutdown] UOS20不能通过fromiso启动,显示can't mkdir /live/fromiso/
Tofloor
poster avatar
chentianlai
deepin
2021-04-12 20:55
Author

我下载了UOS20个人版,放在硬盘上,从iso文件启动,尝试这个新版本,我加的grub启动参数是"boot=live fromiso=/dev/sda5/uos/uos-home-adm64.iso locales=zh_CN.UTF-8",结果电脑没有反应,不能进入系统,说,"can't mkdir /live/fromiso"。经检查代码,是/lib/live/boot/9991-override-check-dev.sh有错,"mkdir /live/fromiso"应该加上"-p"(  mkdir -p /live/fromiso/ ,或者保持debian的原来写法(“mkdir /run/live/fromiso”)。

发现最新问题,deepin把"mkdir /run/live/fromiso/"改成"mkdir -p /live/fromiso/",是错误的,因为刚刚测试发现,如果iso放在d盘,这样改了以后,d盘将无法再次挂载,因为显示d盘已经挂载。这可能是程序员没注意的。还是保留debian的原始写法为好。

 

我昨天提交了这个bug,不过我以为findiso也存在同样错误,今天在电脑上测试,发现findiso没有这个问题。

findiso的用法,"boot=live findiso=/os/deepin-20.iso locales=zh_CN.UTF-8",可以从硬盘上启动iso文件。

 

deepin的initrd启动文件是从debian的live-boot继承过来的。debian的live-boot有个问题,就是当findiso或者fromiso写错的时候,比如,正确的写法是"findiso=/os/deepin.iso",故意把它写错,写成"findiso=/a.iso",然后系统就会出现一个busybox命令行,进入手动挂载iso的模式。但是,debian的live-boot是没有在这方面进行测试的,即使用户手动挂载了iso,甚至挂载了filesystem.squashfs,也是会最后出错,不能进入系统的,显示"line 189 : bad filescriptor",这是因为live-boot的代码有问题,这行"exec 6>&-"要去掉才能启动成功。

 

还有一个bug,把locales=zh_CN.UTF-8改成locales=zh_CN,深度桌面会不断闪,而且启动器(开始菜单)不能放大。

启动参数取locales不合适,因为大家的习惯写法是locale。ubuntu就是locale=zh_CN。

 

另外,向deepin提个功能建议。debian的live-boot很强大,但是有个地方不够完美,就是关于plainroot。plainroot能够把硬盘上的系统按照live的方式挂载,可以随便安装使用软件,不会修改原来的系统。plainroot的具体用法是(grub),"boot=live root=/dev/sda5 plainroot",就是在原来"root=/dev/sda5"的基础上,加上"boot=live"和"plainroot"。不过,它只能加载一个分区,不能加载一个子目录,这对于想搞多系统并存的人来说(每个系统放在一个目录,比如debian放一个目录,ubuntu放一个目录,deepin放一个目录),这是不够完善的。希望深度能够加上这个功能。

Reply Favorite View the author
All Replies
chentianlai
deepin
2021-04-12 21:00
#1

发现最新问题,deepin把"mkdir /run/live/fromiso/"改成"mkdir -p /live/fromiso/",是错误的,因为刚刚测试发现,如果iso放在d盘,这样改了以后,d盘将无法再次挂载,因为显示d盘已经挂载。这可能是程序员没注意的。还是保留debian的原始写法为好。

---

这里,显示d盘已经挂载,其实,根本就无法看到d盘。在文件管理器上点击d盘,显示一个对话框,“没有密钥解锁设备”,其实不是密钥的事情,根本就是d盘被挂载在了/live/findiso/,这个目录在进入系统后是无法访问的。这导致d盘作废。

Reply View the author
Ziggy
deepin
2021-04-13 04:34
#2

还是老老实实用U盘作启动盘吧...

Reply View the author