V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
manyfreebug
V2EX  ›  Linux

安装 manjaro gnome:这是缺少引导文件吗?

  •  
  •   manyfreebug · 2022-02-04 00:23:16 +08:00 · 3003 次点击
    这是一个创建于 1031 天前的主题,其中的信息可能已经有所发展或是发生改变。

    安装的是 manjaro-gnome 版,已经顺利进入 manjaro 的预览功能并安装成功(install)。
    在把深色模式调成浅色模式之后重启。重启之后似乎进入的并不是刚才已经安装成功的版本,而是重新进入了新的预览模式(此时还插着 U 盘)。拔掉 U 盘之后重启,此时进入 win11 。
    这是否是因为缺少 manjaro 的引导文件?

    重新插上 U 盘,在正式进入 manjaro 的预览功能前有一个“detect efi bootloader”的选项,里面有许多 efi 后缀的文件( ubuntu/windows..等等),但似乎没有 manjaro 的。

    如果是因为缺少 manjaro 的引导文件,应该如何解决?(要保留 win11)

    不知是否是分区不当造成的引导文件缺失,我的分区是:

    挂载点         文件系统         
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    	      交换分区
    /             ext4		       
    /boot         FAT32            
    /home         ext4            
    
    7 条回复    2022-02-04 12:23:39 +08:00
    manyfreebug
        1
    manyfreebug  
    OP
       2022-02-04 00:37:13 +08:00
    重新查了下 U 盘,里面只有一个文件:efi -> boot -> bootx64.efi 。是用 refus 刻录的
    manyfreebug
        2
    manyfreebug  
    OP
       2022-02-04 00:41:02 +08:00
    “detect efi bootloader”下的第一个文件就是(hd0, gpt6)/efi/Boot/bootx64.efi
    GeruzoniAnsasu
        3
    GeruzoniAnsasu  
       2022-02-04 08:24:11 +08:00   ❤️ 1
    efi 的 linux 和 win 双启动我曾经折腾了非常久,由于你的描述有点模糊所以我直接说我踩过很多坑才知道的东西:

    1. 主板 flash 会存储部分引导信息,比如默认 efi 程序位置,甚至一小部分引导程序。
    2. 除了 flash 里的东西,其它大部分引导程序都放在 /boot ,或者 win 叫 ESP 的那个分区里,这个分区必须是 FAT32 格式,分区里会放各个 OS 的 boot loader efi 程序,其中有一个叫 bootX64.efi ,一般主板会默认直接选择这个 efi 作为 os loader ,但它也可以不。这个 bootX64.efi 有可能装多重系统的时候相互覆盖,但也有可能安装程序会额外处理它。
    3. 有些情况(比如以前装 ubuntu 的时候)下,linux 只会把 grub efi 程序放到 efi 分区里,grub 的配置文件在 ext4 分区里,当你重新 grub-install 的时候可以选择把配置文件也放到 efi 分区上,但这样做是会重新编译一个 efi 程序的,配置文件路径、当前硬盘分区 id 、搜索方式等等「内置配置」都会直接写到 efi 程序里,这个程序大概率是迁移不了的,复制粘贴到其它硬盘或分区上可能无法工作
    4. 与 3 的情况类似,windows 的 loader 程序更苛刻,它的 efi 程序会把执行权交给 BCD ,bcd 又是绑定硬盘 /分区 id 的,无法用第三方工具修改也不能迁移
    5. 有了以上前置知识,就不难理解 linux 的安装程序有两种处理方式:要么把默认引导盖掉,变成自己的,然后 detect 一下存不存在其它 OS ,如果有(比如 win ),那么往自己的 grub 配置里写上这一条。要么不动默认引导,只往 efi 分区里放自己的 efi 程序,然后往主板 flash 里加入新的引导配置,这样不同 OS 间可以无感共存。
    6. 早年我装系统的时候,几乎都在采用第一种方式,引导顺序会被换成 grub ,然后 grub 再引导 bcd ,bcd 引导 windows 。这种顺序下,万一 linux 崩了比如你重装、删除 linux 了,那么 grub 的配置文件很可能会消失(第 3 条),留下一个空的最小功能 grub 命令行,引导回 windows 要吃一番苦头。不过现在的新安装程序好像已经大多采用第二种方式了,去主板里找 OS 列表,或者使用主板的选择 OS 功能,要比引导器套娃安全稳定得多
    7. (套娃引导不再主流的方式也许与 secure boot 有关,但没深究过了)
    GeruzoniAnsasu
        4
    GeruzoniAnsasu  
       2022-02-04 08:43:57 +08:00
    又看了几遍 感觉你的思路有点迷

    首先 liveCD 进去的这个系统,不会保留下任何配置,所以你改浅色模式这个操作有点误导。如果我没理解错此时你还在 liveCD 中,改配置是不会起作用的

    然后第一次重启(就你改完不会起作用的配置之后的那个重启),理论上 installer 会修改主板的下一次引导,引导到安装好的系统上的,如果没有,那么装好的系统就还一直保留在「第一次启动前」的状态,你这时觉得重新进入了 liveCD ,我持保留意见。

    然后你又重启了一次,拔掉 u 盘重启的,引导回 win 了,此时主板的下一次引导临时修改已经复原,所以回到 windows 了很正常。不清楚你第一次重启后见到的那个系统你在里头都做了些啥,不过应该不影响

    再插 u 盘后的那个 detect efi bootloader 你也没理解它具体作用和效果是啥,所以你的推断也没法帮助别人做推断,此时你可以做的是引导回 liveCD 系统,把 efi 分区挂载上,然后看看它里面到底装了啥。如果真的没有装 manjaro 的引导器,那也是有可能的,有的安装选项是可选不安装引导器。这种情况下你可以用 grub-install 之类的命令(在 liveCD 里就行)手动装一下,理论上命令能正确 handle 你当前的处境。如果并不能,你还有 grub-mkimage 和 grub-mkconfig 。然后主板里自行添加你装好的 grub.efi 的位置的启动项,应该也是能引导起来的
    wd
        5
    wd  
       2022-02-04 12:12:51 +08:00 via iPhone   ❤️ 1
    楼主注意备份好你的 Windows 的数据,别 把数据都整没了... 如果想玩玩,建议可以考虑虚拟机里面跑,现在机器性能溢出,虚机机里面不会觉得慢的
    manyfreebug
        6
    manyfreebug  
    OP
       2022-02-04 12:15:28 +08:00
    @GeruzoniAnsasu 昨晚又删掉重装了一次,这次把 EFI 分区挂载在 /boot/efi 上(之前是挂载在 /boot 上),就成功了。
    manyfreebug
        7
    manyfreebug  
    OP
       2022-02-04 12:23:39 +08:00
    刚开始 EFI 分区装挂载在 /boot 上,印象中在后面的某个步骤会提示 EFI 分区.....未挂载啥的(印象有些模糊),但弹窗里的意思似乎也说明忽略这个警告不会有什么影响(我当时的理解),然后就出现了问题。第二次重装把 EFI 分区挂载在 /boot/efi 上就一路成功。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:03 · PVG 04:03 · LAX 12:03 · JFK 15:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.