在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
Pavic Nasta
帖子: 4
注册时间: 2023-02-21 11:07
系统: Ubuntu 20.04

在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#1

帖子 Pavic Nasta » 2023-02-21 11:38

电脑原始的操作系统是Windows 10。以前在一个移动硬盘上安装过Ubuntu 18.04,参考的是这篇教程:Windows系统下,Ubuntu安装至移动硬盘(简单分析与详细安装教程)_wjh_test的博客。现在在没有插前一个移动硬盘的情况下,在第二个移动硬盘上以相同方式安装了Ubuntu 20.04。结果Ubuntu 20.04能打开,但插上第一个移动硬盘进不去Ubuntu 18.04了。我用DiskGenius查看,发现电脑系统盘上的EFI里ubuntu文件夹的修改时间是装Ubuntu 18.04的时间,而里面文件的修改时间是现在,应该是18.04的文件在装20.04时被覆盖了。而在两个移动硬盘上划的EFI分区都只有一个System Volume Information文件夹。(附件中是只插了一个移动硬盘)但是我在安装Ubuntu 18.04和20.04时确实是按教程选择了移动硬盘上的EFI分区。另外,Ubuntu 18.04里的数据还是完好的。

所以我有几个疑惑之处:
1. EFI被安装在系统盘而非移动硬盘,这是正常的吗?
2. 以上安装两个Ubuntu的操作错误在哪里?如何调整为正确的操作?
3. 有没有简单的方法使Ubuntu 18.04能够启动,且不影响Ubuntu 20.04?

对于Ubuntu系统我了解不多,希望大家能为我解惑,感激不尽!
附件
Snipaste_2023-02-21_11-26-17.png
云海幻梦1981
帖子: 9
注册时间: 2023-02-21 9:54
系统: linux

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#2

帖子 云海幻梦1981 » 2023-02-21 14:07

根据自己的安装经历uefi+gpt环境下,分区时无论指定grub安装在什么位置,系统默认寻找本地主机磁盘第一个efi分区
xenomorph0525
帖子: 524
注册时间: 2009-11-21 20:29

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#3

帖子 xenomorph0525 » 2023-02-21 14:32

因為「開機載入程式」(grub)是默認安裝到第一顆硬碟的分割區,
你要在安裝過程選擇「手動指定分割區」,然後「開機載入程式」選擇你要的地方。

更簡單的方法就是把主機硬碟的排線拔掉再安裝。
附件
Ubuntu-install-parti-m-n.jpg
云海幻梦
帖子: 51
注册时间: 2023-02-21 9:52
系统: linux

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#4

帖子 云海幻梦 » 2023-02-21 14:41

实践表明手动指定没有用(会默认第一个efi),拔掉排线应该有用
Pavic Nasta
帖子: 4
注册时间: 2023-02-21 11:07
系统: Ubuntu 20.04

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#5

帖子 Pavic Nasta » 2023-02-21 15:41

xenomorph0525 写了: 2023-02-21 14:32 因為「開機載入程式」(grub)是默認安裝到第一顆硬碟的分割區,
你要在安裝過程選擇「手動指定分割區」,然後「開機載入程式」選擇你要的地方。

更簡單的方法就是把主機硬碟的排線拔掉再安裝。
「開機載入程式」这里我选择的是移动硬盘上的EFI分区,但是还是安装到系统盘里了。拔掉系统盘听起来很直接,如果我重装Ubuntu 18.04的话会试一下。不知道把EFI装在移动硬盘上以后,在不插移动硬盘的情况下启动电脑时,是不是不会出现grub界面?
Pavic Nasta
帖子: 4
注册时间: 2023-02-21 11:07
系统: Ubuntu 20.04

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#6

帖子 Pavic Nasta » 2023-02-21 15:44

云海幻梦 写了: 2023-02-21 14:41 实践表明手动指定没有用(会默认第一个efi),拔掉排线应该有用
我也觉得手动指定没有用。有没有在系统盘的EFI分区里直接放入Ubuntu 18.04的引导文件的方法呢?
头像
astolia
论坛版主
帖子: 6499
注册时间: 2008-09-18 13:11

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#7

帖子 astolia » 2023-02-21 17:56

Pavic Nasta 写了: 2023-02-21 11:38 所以我有几个疑惑之处:
1. EFI被安装在系统盘而非移动硬盘,这是正常的吗?
2. 以上安装两个Ubuntu的操作错误在哪里?如何调整为正确的操作?
3. 有没有简单的方法使Ubuntu 18.04能够启动,且不影响Ubuntu 20.04?
1. 按你的操作来说,是正常的结果。不过这样也不坏,因为如果按下面的操作,启动后就不会进到grub里了,只能通过bios提供的启动菜单来启动移动硬盘上的系统。
Pavic Nasta 写了: 2023-02-21 15:41 不知道把EFI装在移动硬盘上以后,在不插移动硬盘的情况下启动电脑时,是不是不会出现grub界面?
如果是要想将efi相关文件放到移动硬盘上的efi分区里,方便把移动硬盘拿到其他机器上用,也很简单。
挂载efi分区后,执行这个命令即可 sudo grub-install --efi-directory=efi分区挂载点

2. 谈不上错误。安装时会自动扫描当前机器上所有可用的系统,你安装时没接入18.04的盘,就自然找不到,最后写入grub设置的时候就不会写入相关的选项信息。剩余的见3

3. 出现问题的原因是,安装系统后会往efi分区下EFI/ubuntu/grub.cfg这个配置文件中写入一段配置,内容是只加载刚安装的系统的/boot/grub/grub.cfg文件。并没有去管其他系统的grub配置。如果/boot/grub/grub.cfg不存在其他系统的选择项,就不会显示了。

要处理这个问题首先要看你的使用习惯。主要是移动硬盘上的系统会不会升级内核(即/boot/grub/grub.cfg内容变不变)。

如果打算不升级的话,那就很简单:如果你总是会把20.04/18.04的移动硬盘接入机器,那么直接在20.04/18.04系统接上18.04/20.04的盘再执行一次sudo update-grub就行了。如果可能两个移动硬盘都不一定接入,那么执行完上面的update-grub后直接把20.04/18.04系统中/boot/grub/grub.cfg的替换掉efi分区下EFI/ubuntu/grub.cfg即可。

要应对升级的话相对麻烦些。要么你每次升级后重新替换一次(可以在/etc/kernel/postinst.d下面放个脚本自动去做),要么去学习grub的命令来手动编写探测不同版本的内核的代码
Pavic Nasta
帖子: 4
注册时间: 2023-02-21 11:07
系统: Ubuntu 20.04

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#8

帖子 Pavic Nasta » 2023-02-23 10:34

astolia 写了: 2023-02-21 17:56
Pavic Nasta 写了: 2023-02-21 11:38 所以我有几个疑惑之处:
1. EFI被安装在系统盘而非移动硬盘,这是正常的吗?
2. 以上安装两个Ubuntu的操作错误在哪里?如何调整为正确的操作?
3. 有没有简单的方法使Ubuntu 18.04能够启动,且不影响Ubuntu 20.04?
1. 按你的操作来说,是正常的结果。不过这样也不坏,因为如果按下面的操作,启动后就不会进到grub里了,只能通过bios提供的启动菜单来启动移动硬盘上的系统。
Pavic Nasta 写了: 2023-02-21 15:41 不知道把EFI装在移动硬盘上以后,在不插移动硬盘的情况下启动电脑时,是不是不会出现grub界面?
如果是要想将efi相关文件放到移动硬盘上的efi分区里,方便把移动硬盘拿到其他机器上用,也很简单。
挂载efi分区后,执行这个命令即可 sudo grub-install --efi-directory=efi分区挂载点

2. 谈不上错误。安装时会自动扫描当前机器上所有可用的系统,你安装时没接入18.04的盘,就自然找不到,最后写入grub设置的时候就不会写入相关的选项信息。剩余的见3

3. 出现问题的原因是,安装系统后会往efi分区下EFI/ubuntu/grub.cfg这个配置文件中写入一段配置,内容是只加载刚安装的系统的/boot/grub/grub.cfg文件。并没有去管其他系统的grub配置。如果/boot/grub/grub.cfg不存在其他系统的选择项,就不会显示了。

要处理这个问题首先要看你的使用习惯。主要是移动硬盘上的系统会不会升级内核(即/boot/grub/grub.cfg内容变不变)。

如果打算不升级的话,那就很简单:如果你总是会把20.04/18.04的移动硬盘接入机器,那么直接在20.04/18.04系统接上18.04/20.04的盘再执行一次sudo update-grub就行了。如果可能两个移动硬盘都不一定接入,那么执行完上面的update-grub后直接把20.04/18.04系统中/boot/grub/grub.cfg的替换掉efi分区下EFI/ubuntu/grub.cfg即可。

要应对升级的话相对麻烦些。要么你每次升级后重新替换一次(可以在/etc/kernel/postinst.d下面放个脚本自动去做),要么去学习grub的命令来手动编写探测不同版本的内核的代码
非常感谢你的细致解答!

我打算不升级内核,并且移动硬盘不总是接入电脑,因此采取了用/boot/grub/grub.cfg替换efi分区下EFI/ubuntu/grub.cfg的方法,现在启动时会列出Ubuntu 18.04和20.04了,也能正常进入,效果很好。

我看到你的解答中有“手动编写探测不同版本的内核的代码”。我是以只显示当前接入的移动硬盘上的系统为出发点来想这件事的。我一开始以为仅仅是能在只接入一个移动硬盘时就加载该盘里的/boot/grub/grub.cfg,而不是像现在这样加载一个固定的grub.cfg。但思考之后我发现我的想法是错的,假设不进行update-grub,只是自适应地选择一个/boot/grub/grub.cfg加载,是不能在接入两个移动硬盘时正常工作的,必须要“拼接”两个Ubuntu中的/boot/grub/grub.cfg才行;如果进行了update-grub,则一定会把两个Ubuntu都列在启动菜单中。看来这个方案是有难度的,我估计暂时会维持现在这种总是列出两个Ubuntu的状态。
头像
qy117121
论坛版主
帖子: 50552
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#9

帖子 qy117121 » 2023-02-23 12:34

可以用refind 每次开机都可以自动搜索内核

图片
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
头像
男菜鸟
帖子: 1366
注册时间: 2008-12-16 14:01
来自: 漂在江湖

Re: 在两个移动硬盘安装两个不同版本的Ubuntu后,前一个无法启动

#10

帖子 男菜鸟 » 2023-02-24 11:22

mark
回复