menuentry 'LiveOS GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.77-amd64-desktop-advanced-e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f
else
search --no-floppy --fs-uuid --set=root ***e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f***
fi
linux /boot/vmlinuz-5.15.77-amd64-desktop boot=live locales=zh_CN.UTF-8 ro splash quiet DEEPIN_GFXMODE=$DEEPIN_GFXMODE
initrd /boot/initrd.img-5.15.77-amd64-desktop
boot
}
注意加粗斜体的uuid号要换成自己的,希望启动成功的朋友回帖发个截图。
厉害啊!不说了我去看医生,眼睛已经花了,还是让别的大佬操作吧
之前我改 live-filesystem 这个包就是被网上 boot=live 这个解释给坑了,看完这个帖子豁然开朗


这是我用deepin内核启动的可爱鱼。
这是同一个内核启动的fedora系统。

一个感兴趣的人都没有吗?
https://bbs.deepin.org/zh/post/254940
为了方便系统修改修复,需要增加启动一级菜单的选项,
假如一个win10PE.wim和DEEPIN-LIVE-CD.ISO在sda7的文件夹wim下面,
怎么修改40_custom,增加WinPE和ISO启动选项,
Popular Events
More

中文 
linux发行版多如牛毛,在主机用深度系统之外,也想体验下其他系统。不过我既不想分区又不想虚拟机,就想着能不能从deepin的一个目录引导另一个linux系统,在网上查询了很久,都没有找到类似实现方法,后来深入研究grub引导菜单,才找到合适的方法。这种方法是从一个只读filesystem.squashfs文件中引导一个只读系统,每次重启都会回到原始状态,因此不怕玩坏系统,你浏览一些不可知网站也不会在自己电脑留下痕迹(骗女朋友老婆可以,骗国家别想了)。
诸位请看下面两个引导菜单。
menuentry 'Deepin 20.8 GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f
else
search --no-floppy --fs-uuid --set=root e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f
fi
linux /boot/vmlinuz-5.15.77-amd64-desktop root=UUID=e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f ro splash quiet DEEPIN_GFXMODE=$DEEPIN_GFXMODE
initrd /boot/initrd.img-5.15.77-amd64-desktop
boot
}
menuentry 'LiveOS GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.77-amd64-desktop-advanced-e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f
else
search --no-floppy --fs-uuid --set=root e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f
fi
linux /boot/vmlinuz-5.15.77-amd64-desktop boot=live locales=zh_CN.UTF-8 ro splash quiet DEEPIN_GFXMODE=$DEEPIN_GFXMODE
initrd /boot/initrd.img-5.15.77-amd64-desktop
boot
}
这两个启动菜单基本相同,都是利用了boot目录下的内核文件,不同的在于传递给内核的参数。在第一个菜单中,root=UUID=e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f 是告诉内核,把uuid号为e2c6b989-ea06-40ce-b2ec-bbd4d05b5e5f的分区挂载为系统根目录,也就是正常启动deepin系统。第二个菜单中,最关键的参数就是boot=live,这个参数很常见,但网络上的解释都是错误的。
这个参数是告诉内核,要以live模式启动,当debian系列内核收到这个参数后,就回去分区根目录下去寻找一个live的一级目录,并挂载目录下的filesystem.squashfs文件为根目录。所谓boot=live是告诉内核那里寻找filesystem.squashfs文件是错误的,因为修改这个参数并不能让系统去其他目录寻找根文件系统。说明去根目录下live里寻找filesystem.squashfs文件是写死在内核里的。
现在我们只要在系统根目录下建立一个live目录,再把一个合适的filesystem.squashfs文件放到里面,就可以启动第二系统了。熟悉linux的朋友可能发现了,在有liveos功能的系统镜像文件里都有这个文件,但是直接拿来用却并不合适,至少存在以下几个问题:
filesystem.squashfs文件和系统boot目录下的内核文件并不匹配,除非你打算用iso文件里的内核启动。
所以这个文件要自己改造或者制作,经过好一番折腾,终于解决了以上几个问题,今天先上传成果,供大家使用,如果感兴趣的人多,就续写制作方法。
复制这段内容后打开天翼云盘手机App,操作更方便哦!链接:https://cloud.189.cn/t/YNfAzqAnQNZn访问码:bfq6
注意,因为是自己使用的系统,不是专门为网友制作的,所以只能匹配vmlinuz-5.15.77-amd64-desktop内核,如果你也正好是这个内核就可以直接使用。如果不是这个内核,可以自行按装或者下载。如果不想放到boot目录里,把vmlinuz和initrd.img放到live目录,修改相应的引导菜单,也是可以的。当然也可以等几天,我会发出如何修改和制作filesystem.squashfs文件的方法。
用户名都是cosliu密码都是spot。打开下载链接后有几个压缩文件,看名字也知道分别是基于cutefishos、 debian、 fedora、 zorin系统制作的,没错红帽系列也可引导。