收起左侧

单硬盘安装飞牛+Windows双系统

0
回复
36
查看
[ 复制链接 ]

0

主题

0

回帖

0

牛值

江湖小虾

准备工作:

U盘1个;下载文件:飞牛镜像、Win镜像、启动盘制作工具(Ventoy)、PE工具(微PE或FirPE)。

1.先做个启动盘+PE盘。

建议用Ventoy,把Win、飞牛、PE的iso镜像放一起,启动盘和PE二合一省了很多事。 可参考文章:https://www.cnblogs.com/lkc9/p/18649661

2.安装飞牛系统

先安装飞牛,因为首次安装飞牛会把整个固态给格式化。

Ventoy里面选择飞牛镜像,然后选择Boot in grub2 mode。装好飞牛,创建账号,存储池先不要建,系统正常访问就好。 此时系统会自动把硬盘分成3个分区:第1个是存放系统启动引导程序的分区,第2个是安装飞牛的分区,第3个是未使用分区。

3.安装Windows系统

进PE,把上面提到的第3个分区转成NTFS格式,然后把Win系统安装到里面。安装的时候,可以把引导程序也选择放在上面提到的第1个分区(也可以再新建分区,但我觉得没必要)。 这里直接把Win装到第3个分区后,也就意味着此硬盘剩余的所有空间都分给了Win,开机选择使用飞牛的时候,装Win的这个NTFS格式的分区飞牛无法直接使用(直接使用需要创建存储空间,就要格式化这个分区,那我不是白装了?),所以需要用mount命令手动挂载,方法可参考:

3.1Windows安装后

一般到上面的步骤就可以结束了,但我就是想各个区分工明确,所以我选择把第3个分区继续拆分成两个分区,即第3、第4分区,一个用来装Win,一个用来给飞牛当作存储空间。 这里有个不知道是bug还是限制,飞牛只能识别到硬盘的前3个分区,我在飞牛论坛也搜到了几个类似的案例。为了方便就把作为存储空间的分区排在第3位,装Win的分区排在第4位,然后再手动挂载第4个分区。这样安装后,飞牛系统下能访问所有分区,WIn系统下也能通过下载Btrfs工具来访问飞牛的存储空间。 至此,单硬盘双系统安装完成。

遇到的问题:安装完成后,开机选择系统界面只有飞牛没有Win。 解决方法:先试试sudo -update-grub

,不行再修改grub配置。 第一种,启用os_prober。这是一个扫描启动项的工具,可能grub配置里默认关闭了。执行vim /etc/default/grub

,取消原有注释行: GRUB_DISABLE_OS_PROBER=false(删除行首的”#”),然后执行更新 sudo -update-grub

第二种,在不启用os-prober的情况下,手动添加Windows启动项。 首先进飞牛,用命令查询一下,确保Win安装成功、引导程序也都有,并确认引导程序位置(飞牛系统下:sudo efibootmgr

sudo os-prober

)。 然后修改配置文件(vim /etc/grub.d/40_custom

),在文件最后添加以下内容: **menuentry 'Windows11' {set root='(hd1,gpt2)' chainloader /EFI/Microsort/Boot/bootm**.efi} **

或者添加下面这种格式的内容,这个需要填写分区UUID menuentry "Windows 11" --class windows {

insmod part_gpt

insmod ntfs search --no-floppy --fs-uuid --set=root XXXX-XXXX #替换为Windows分区UUID chainloader /EFI/Microsoft/Boot/bootm**.efi }

上面内容要根据自身情况修改引导程序位置及分区UUID,具体可参考:https://blog.csdn.net/Tsumugi_Kotobuki/article/details/143378473 修改完再次执行 sudo -update-grub

。 如果2种方案都执行,那grub界面会出现2个Windows启动项:os-prober扫描出来的 “Windows Boot Mananger(on/dev/nvme0n1p1)”、手动添加的自定义名称的启动项”Windows11”,所以二选一就行。第一种步骤简单些,但是第二种可以自定义显示名称。

最后美化一下系统选择界面(Grub) 脚本安装主题:参考教程 手动安装主题:参考教程 检查/etc/default/grub里面GRUB_THEME=目录

(/boot/grub/themes)是否正确,以及注释掉GRUB_TERMINAL=console

完全自定义启动项菜单:** **先禁用原生成脚本的执行权限 10_linux: sudo chmod -x /etc/grub.d/10_linux

sudo chmod -x /etc/grub.d/30_os-prober sudo chmod -x /etc/grub.d/30_uefi-firmware sudo update-grub

再获取必要参数: #查看根分区UUID

sudo blkid /dev/sdXY #替换为实际根分区设备 #查看内核版本

ls /boot/vmlinuz-*

最后在**/etc/grub.d/40_custom**

里面添加以下内容(需根据实际内核路径调整): 若使用 40_custom

,需手动更新内核版本路径(或使用通配符如 /boot/vmlinuz-*

)。

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则