- 前言: 此博文是笔者折腾笔记, 同时贡献给爱折腾的Linuxer, 笔者使用过Ubuntu, 红帽RHEL, CentOS, Fedora, Manjaro(按时间先后顺序), 我个人觉得好用性一个比一个强. 另外①操作系统而言看需求和个人喜好, 用Windows还是Linux或者MacOS没有什么好争辩的, ②Linuxer用图形操作还是命令行也是个人自由, 没有强制要求, 在这里稍微谈一下笔者的看法: 命令行有好处, 就比如下面安装系统要介绍的, 其实Windows已经自带bcd编辑功能, 只不过只有命令行, 而如果非要用图形界面的话那只有选择EasyBCD了, 但是这货不支持uefi的Windows10, 命令行有缺点, 难记以及长期不用容易忘记; 图形界面简单直观, 但缺点是需要更高的硬件需求并且操作系统层面的操作功能可能比命令行少, 十几年前的机器跑Manjaro+图形界面不吃力, 纯命令的就更不用说了(估计普通用户在纯命令下也干不了啥事情), 但Windows10不行
- 心酸: 打过神船的客服无果后经过多次的拆机和无数次的电脑重启折腾, 终于成功了, 只能说搞机不易, 且行且珍惜
- 1. 前期准备:
- 1.1神舟战神Z8-CU7NA, 在某东自营(为啥是某东, 因为新用户和公司发的券, 某宝不咋地, 内存条 不敢要被退了换某东, 某猫就不知道了)买了新固态和内存, 固态是Acer的256GB NVME协议的, 另外在2.5寸硬盘位把机械硬盘安装上去, 内存条与出厂自带8GB内存条型号参数一样(相当于Z8-CU7NK). 这道路也是有点曲折, 最初买回来的固态硬盘是STATA协议的, 战神两个固态硬盘位上面有丝印, 一个支持STATA和NVME, 被原厂STATA固态占用了, 另一个只支持NVME. 额外说明, 新增的固态硬盘也与原厂的固态一样, 加了导热硅胶片(拼夕夕购买的100*100*5mm然后自己割合适的大小).
- 1.2 Manjaro系统写入U盘, 在Windows10下操作, 建议使用rufus, 轻便免费, 写入速度快, 兼容系统广
- 2. Manjaro系统安装, 这里不介绍详细的安装步骤了, 只说注意事项:
- 2.1 因为BIOS的Secure Boot影响, Manjaro的ESP分区有两种选择(笔者的道路有点曲折, 选择的是第二个), 另有一个需要注意, 因为笔者Manjaro安装在另一个硬盘上, 如果Manjaro与Windows安装同一个硬盘的不同分区, 只能参考第一条:
- 2.1.1 在安装系统之前备份ESP分区下的EFI/Boot/bootx64.efi文件, 此时Manjaro的efi安装分区可以选择Windows10的ESP分区也可以参考下面的步骤给Manjaro单独一个ESP分区, Manjaro安装完成之后不立即重启, 先把备份的EFI/Boot/bootx64.efi文件覆盖Manjaro安装时覆盖的EFI/Boot/bootx64.efi文件(有点绕)
- 2.1.2 安装时给Manjaro单独一个ESP分区, 以防止Manjaro安装时覆盖windows10 ESP分区的EFI/Boot/bootx64.efi文件, 此时安装完成后要把Manjaro安装时ESP分区EFI/Manjaro/grubx64.efi文件拷贝/移动到Windows10的ESP分区EFI/Manjaro/grubx64.efi, 还需要更新Manjaro安装根路径etc/fstab文件更新/boot/efi挂载点. 注意: 现在都使用分区UUID了. 然后删除此时Manjaro的ESP分区或者删除除此时Manjaro的ESP分区下EFI/Boot/bootx64.efi文件, 否则此时有两个ESP分区并且两个ESP分区都有EFI/Boot/bootx64.efi文件, BIOS不能选择, 需要进入BIOS>Boot才能进入Windows10
- 3. 此时如果正确的按上面的步骤重启电脑后依旧进入的时Windows10, 是不是有点失望? 不着急, 正需要在Windows10下面操作呢. 在windows10调出cmd命令行或者PowerShell(注意cmd和PowerShell的细微区别)以管理员运行, 然后输入命令 bcdedit /set {bootmgr} path “\EFI\Manjaro\grubx64.efi”(此命令cmd下可正常执行), 当然操作备份BCD是一个好习惯, 但备份的BCD基本用不着, 接下来进入关键动作.
- 4. 此时重启电脑, 进入grub rescue, 然后一个一个的ls, 如命令: ls (hd<x>,gpt<y>), 直到找到grub rescue能识别的盘(grub不能识别NTFS分区), 然后再ls (hd<x>,gpt<y>)/boot/grub, 能在分区上找到/boot/grub了然后再分别执行如下4条命令:① set root=(hd<x>,gpt<y>) ②set prefix=(hd<x>,gpt<y>)/boot/grub ③insmod normal ④normal, 此时就可以正常进入Linux启动菜单栏了. 注: 此处参考https://www.cnblogs.com/jins-note/p/9513335.html, 此博文中使用的硬盘分区是MBR而非GPT的
- 5. 此时选择菜单栏进入Manjaro系统, 熟悉或不熟悉的界面或命令行, 反正最终调出命令行就是了, 执行下面命令: ①sudo update-grub ②grub2-install /dev/???? (此处的????根据硬盘来了, 我的是nvme的), 总之是/dev下的你Manjaro根路径挂载分区就是了, 然后进入最痛苦的事情
- 6. 说是最痛苦的事情是因为重启后进入Linux启动菜单栏后看到了Windows10的启动项了, 无论你怎么折腾Windows10无法正常启动, 只能在Windows10修复计算机->高级选项->系统还原, 然后就是漫长的还原过程, (不知道使用Windows10的安装盘修复的效果是否一样)
- 7. 系统还原之后重启只能进入Windows10, 此时如果进入BIOS下的Boot Manager选择项能看到两了, 一个是Windows Boot Manager, 另一个是Manjaro, 那么就成功了.此时进入到Windows10, 再用bcdedit /enum all会有如下内容:
- 8 进入BIOS到Boot Manager用鼠标拖拽把Manjaro的启动项拉到Windows Boot Manager上面去, 保存并退出, 此时开机能自动进入Linux启动菜单栏并且两个系统都能启动了
- 9. 总结, 原Windows10系统盘除了ESP分区新增\EFI\Manjaro\grubx64.efi文件外其他基本都没更改. 此安装方法第6步应该是不需要的, 但是我找了很久的bcdedit命令和bootsect命令, 最后还是不知道怎么创建一个”Windows启动管理器”, 理论上在第三步时创建一个”Windows启动管理器”然后把此”Windows启动管理器”的path设为\EFI\Manjaro\grubx64.efi就好了, 这样省去Windows10还原的麻烦, 如果有哪位大虾了解, 可以分享.
- 10 后记: 在折腾之前, 我也搜索过很多方法, 有的说修改BIOS, 我也尝试过, 里面的参数太多了, 而且对于修改BIOS不熟, 然后更多的关于双系统安装的都是转载根本不适用的, 最后在剩下Manjaro下安装NVIDIA显卡驱动和CUDA以及cuDNN, 如果有哪位大佬有此经历欢迎联系指教, 最后附上几张图, 非指导性的图, 在折腾之前我也不知道是否能成功, 所以没有完整的图文教程和视频教程, 哪位大佬有时间可以整一整并请尊重原创, 不懂之处多多交流
- 额外说一点, 在Linux+Windows双系统下, 为了保持两系统时间一致, 在Linux下命令行timedatectl set-local-rtc yes就OK了
Linux启动菜单栏(屏幕有点脏, 自然防伪)
双系统下的windows10下查看的磁盘分区(磁盘0是Manjaro所在, 磁盘1是Windows所在, 磁盘2是机械盘):
Manjaro界面: