技术解析

Win+ Linux 双系统到底有什么弊端和优点?
0
2021-06-16 18:44:27
idczone

最近对折腾 Linux 有点小兴趣,想要了解下 Linux 下的开发,跑虚拟机感觉有点变扭。

准备装个双系统,开始一腔热血,思考半天准备 win10+manjaro 双系统。

但身边的朋友却说双系统有很多的问题,确实不太懂这方面的知识。

想请教下各位。

双系统有什么弊端? 又有什么优点?

目前渣配: 256 固态 1T 机械 UEFI+GPT 格式启动 Win10 家庭版


直接远程连个 vps 做开发就行了 大部分人没有那么大的开发时性能需求

没有优点,慢慢的你会发现开机总选 win10,Linux 就这样废了,等于没装。正确做法是 manjaro 里装虚拟机安装 win10,做到能用 manjaro 就别用 win,manjaro 当主力,win 只是备用,实在没办法才开一开虚拟机。

凖備兩台物理主機比較好

双系统只要避免互删系统就行了。别的坑没有。

你都用 UEFI 了,引导还能是问题?
执行 bootmgr.efi 启动 Windows boot loader,进而启动 Windows 。
执行 grubx64.efi 启动 grub,grub 可以启动 Linux 也可以启动 Windows 。
主板的 UEFI 固件负责执行这些 efi,配置项存储在主板 nvram 里。可以通过主板 BIOS 界面或者操作系统的 API 修改(如 Linux 上的 efibootmgr 命令)。
Windows update 覆盖了 ESP 分区怎么办?起个 Linux liveCD 然后 grub-install 。
Linux 滚挂了想重装怎么办?直接正常重装,grub-install 自动生成新的引导配置。
ESP 分区清了 /ESP 分区被 Linux 弄乱了导致 Windows 起不来怎么办?起个 winPE,dism++修复引导。
推荐阅读 UEFI 启动原理 https://blog.woodelf.org/2014/05/28/uefi-boot-how-it-works.html
原理搞清楚遇到什么情况都没有问题。

补充一下楼上说的 efistub,这是 kernel 的一个特性,可以作为 efi 可执行文件被直接启动。
不推荐使用 efistub,因为设置内核参数、升级内核都不方便。

wsl 开发够用了

我是告诉 lz 贸然装双系统风险很大,你是在试图解释风险可以通过“原理搞清楚”来避免吗?
完全可以啊,但搞清楚之前的风险呢?
bootmgr.efi 不是 standalone 的,从别的磁盘上把它 copy 过来往往是不能直接用的,bcd 也要另外生成,生成出来了也是依赖磁盘 uuid 不能移植的
grubx64.efi 也不是 standalone 的 grub 的插件,引导配置,都不在 esp 里,甚至引导配置文件在哪个位置这件事是 builtin 在 efi executable 里的。 当然你可以手动执行 grub-install 然后带上一大堆选项 build 一个带插件的 grub 并且把 grub.cfg 指到 esp 分区里这样当你只有一个 efishell 的时候还能手打 grub 命令引导起来,但前面 build grub 的这一步你猜猜没经验的我当初研究了多久?
“起个 liveCD” 说得轻巧,你只有 u 盘的时候能正确引导起来 livecd 吗?系统没了还得花钱买个 usb 光驱吗? 这些都不是 0 成本的,一个晚上能用 u 盘起起来 livcd 就很不错了

弊端是你还不能完全投入自由软件的怀抱,还要继续受到 Windows 这种专有软件的迫害 [狗头]
(这条评论发自 Windows )


什么叫风险很大,ESP 分区你再怎么乱搞顶多把引导搞炸也不会威胁到系统和数据。
是不是 standlone 不重要,因为生成一份正确的配置非常简单( win 用 pe,linux 用 grub-install ),grub-install 也不需要带一大堆参数,只需指定 efi 分区和 root 目录就足够,grub 的配置在系统分区,完全不需要动。就算配置也搞坏了还可以 grub-mkconfig 自动探测并生成正确的配置。
只有 u 盘当然能正确引导 liveCD,这是主板 UEFI 固件做的事情,除非你刷 BIOS 不然没可能搞炸。
如果你指的是制作,你可以提前制作、进入任意能启动的系统制作、所有系统都不能启动可以用别的电脑制作。
就算你没有 u 盘,也可以用 UEFI PXE 通过网络启动。

你要是之前完全没碰过 linux 的还是老实用虚拟机玩着吧。玩熟再上 DualBoot
DualBoot 很常见的问题有两个:内核驱动和引导器配置
1. Linux 对某些硬件的驱动支持不如 Windows 完善,虚拟机不会有这个问题。例如 AMD Renoir 推荐用 5.8 以上的内核及最新固件,基本上只有滚动发行版能在包管理器提供这么新的内核,还有老生常谈的 N 卡驱动、博通网卡驱动
2. 有些机子的 UEFI 实现比较奇葩,会莫名其妙认不出 Grub2,例如某些老款 Acer 必须在 BIOS 设置里手动添加 efi 文件作为启动项。Intel NUC 的 Visual BIOS 也会有类似问题。

https://wiki.archlinux.org/index.php/systemd-boot 别用 grub 啊

win10+ubuntu 用户双系统路过,说下用了两年的双系统感想。
1. Linux 下开发太爽了,开发时少了很多奇怪的问题[优点]
2. ubuntu 打开时过慢,因为 ubuntu 装在机械硬盘里,而且搞了好多美化[缺点]
3. ubuntu 使用频率不高但仍有使用需求,基本上可能开机 10 次 Windows,1 次 Ubuntu[缺点]
4. 安装有门槛,不建议放在同一个盘里,出了问题好歹能进一个系统[缺点]
5. 驱动不兼容问题没有遇见过,暗影精灵 2 的 GPU 也能拿来跑一跑 tensorflow-gpu[优点]
6. 学到了好多 Linux 操作[优点]

可能讲的有些片面,如有错漏之处,敬请指正

wsl 还不够吗,装个虚拟机总可以了吧,谁没事来回重启电脑玩

最近双系统遇到个 bug,有个分区,我是在 linux 和 win 通用的,但是我从 win 切换到 linux 时,linux 挂载硬盘莫名变成了只读,无法编辑了。只能重新卸载硬盘再重启一次

wsl

装完 Linux 后 Windows 时间差了 8 小时

弊端就是 Linux 装了等于没装 23333

闲鱼淘一台老本子单独安装 linux 足够了

弊端就是,自己有可能在 windows 的温柔乡里出不来了……


那是 linux 把硬件时间作为 UTC 时间,而 windows 当成本地时间的缘故。
可以在 windows 上修改一下注册表,让 windows 把硬件时间也当成 UTC 时间就可以了。

优点:折腾
缺点:折腾

我也想安装双系统,自己在 ubuntu 下开发已经有 4 个月多了,装 win 的话,完全是想着打游戏罢了。工作学习时大部分用到的软件,ubuntu 都能够支持。

提供一个新思路,仅供参考。
Windows 下使用虚拟机安装最小化 Linux,并设置开机自启动此虚拟机,Windows 下通过 SSH X11 去使用和运行 Linux 软件。
这样不会失去游戏和需要的软件,唯一的缺点是需要大内存,不过加一根 16GB 内存条也不贵。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服