求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#1

帖子 tedchina » 2019-01-31 23:16

小米Air笔记本,原装Win10系统没动,原装UEFI启动没改。

将Ubuntu 18.04装到高速U盘A上,安装时特别留意了启动设备选了U盘。
安装后,如果插着U盘A,能看到Linux的启动菜单(可在Ubuntu/Widows之间选择,不清楚是否是Grub),双启动都正常。
如果没插U盘A,系统并不会象其它Legacy启动的机器一样自动引导Windows,而是会提示Grub>,此时打入exit命令后可以进入UEFI的启动菜单,然后选择Windows启动即可。
感觉上安装系统引导并没有或没有全部安装到U盘上,应该有部分在机器的UEFI分区上,是这样吗?不过使用无大碍也就忍了。

通过Ubuntu Live启动并通过里面的Gparted将U盘A上的各分区复制到同品牌同大小但不同型号的高速U盘B上,成功复制U盘B,效果如上面U盘A一样。

类似U盘A,重新安装Ubuntu到同品牌但不同大小不同系列的高速U盘C上,安装成功,效果如上面U盘A或B一样。

但是,自此不认U盘A或B了,机器只能通过U盘C进入Ubuntu或原装硬盘进入Windows了。
感觉上UEFI分区被改写后只认U盘C不认原先的U盘A/B了。

请问,如何解?

另:曾经尝试过禁UEFI启动(改为Legacy),结果Windows进不去了,还是通过Ubuntu Live启动机器并重启才得以有机会进入BIOS,然后改Legacy回到UEFI方才重新能够引导Windows。
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#2

帖子 tedchina » 2019-02-01 0:48

进入/boot/efi/下看了一下,无论是grub目录下的grub.cfg还是EFI/ubuntu下的grub.cfg都是写死uuid的。
难怪复制的U盘能正常使用,因为uuid也复制成同样的了。
新装U盘后,因为机器主硬盘上efi分区下的grub.cfg的对应uuid改了,所以就不认了其它(旧)uuid了?

是不是修改efi分区下的这两个grub.cfg文件即可?
怎么改?不敢乱动吗?
另外,Ubuntu Live的引导是怎么弄得?怎么不受影响?
弄过Clonezilla Live,理解它的主分区上被设成bootable了,同样可复用到上面吗?
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#3

帖子 冲浪板 » 2019-02-01 19:25

可以不使用uuid,不过也不建议。
可以编辑引导项
可以给windows 加个grub 4dos ,灾引导U盘。
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#4

帖子 tedchina » 2019-02-02 10:40

尝试了两天,最后还是用版主最不建议的方法,改本本自带盘中EFI分区中ubuntu/grub.cfg,从search.fs_uuid改为search.fs_label,并将每个新clone或新装系统的U盘的系统分区打上同样的Label。
不完美,但总算是搞定了。

一直是想干掉本本自带盘中的ubuntu引导,希望各系统U盘能象Live盘一样与本本自带盘完全隔离。
在U盘中也创建了FAT32分区并创建EFI目录,无论是完全复制Live盘内容,还是完全复制本本自带盘内容,或是将Live盘与本本自带盘的内容融合(grub*.efi用自带盘的,boot*.efi试过Live盘的也试过自带盘ubunut目录中的shim*.efi重命名),一直就是搞不定,只好算了。

也想过在BIOS中禁掉本本自带盘以防Ubuntu将引导安装到自带盘的EFI分区,无奈在小米Air中找不到这个选项。
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#5

帖子 冲浪板 » 2019-02-02 14:45

哦,你的意思是插哪个盘用哪个,那么是不是可以把多个启动项目写一起的。
还是用uuid。
直接插多个U盘也没问题了。

不让本本启动,把本盘在启动项目里除掉就可以了,那样太麻烦了,把U盘放在本盘前面也可以嘛。ubuntu装引导的位置,是有配置文件控制的吧。

我在虚拟机器里,本来是18.04,后接了个带系统的盘,结果启动时出来个菜单,把能启动的设备都列出来了让你选。

本本原来什么系统,win的话,可以修复,用fixboot可以直接修复成单独的。而且要是加个grub或4dos都可以,插U盘也不用去改启动项目。选用grub就好了,
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#6

帖子 tedchina » 2019-02-02 23:22

那么是不是可以把多个启动项目写一起的。还是用uuid。直接插多个U盘也没问题了。
Ubuntu安装到小米Air的EFI分区的Grub很怪,当前启动项如果找不到引导盘的话,会直接进入UEFI shell,这时只有打入exit命令退回到启动设备菜单。
另外我是本本,用的基本是nano盘,轻便第一,一般一次只插一个盘。
把U盘放在本盘前面也可以嘛
如上。本盘在前,每次启动得及时按F12进入启动设备菜单选U盘;U盘在前,如果找不到U盘,就会进入UEFI shell,一样不便。
从search.fs_uuid改为search.fs_label,并将每个新clone或新装系统的U盘的系统分区打上同样的Label。不完美,但总算是搞定了。
没有搞定,发现同品牌不同大小的U盘即便是Label一样还是不认(Grub找不U盘或找到但无法引导)。
好在只有一个U盘大小不一样,其它都是同样大小的,都认。也不是知是改Label生效与否,因为这些盘都是从同一母盘通过Gparted或Clonezilla复制的,UUID也是一样的。
simon007
帖子: 8
注册时间: 2019-02-07 22:48
系统: ubuntu

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#7

帖子 simon007 » 2019-02-08 0:32

说说我安装的情况吧,win7下,这么装的结果好像是这样的,ubuntu的efi引导(这里其实应该是grub2的引导)和配置文件a安装在了笔记本的esp分区(也是efi分区,和笔记本原系统引导在一个分区里),然后配置文件a里定义了配置文件b,这个配置文件b和grub2的主要文件都装在了ubuntu的/boot里,所以如果不插盘直接启动会进grub命令行。
efi启动序列可以通过bootice修改,不过改成默认引导win7,貌似没法在win7下添加ubuntu的选项,只能F12里面去选择。
我最后的方案是,把配置文件b和grub2相关文件都复制到笔记本的esp分区,然后修改配置文件a的指向为配置文件b现在的路径。修改配置文件b,win系统放到最前面,这样不查盘也可以直接选择进win系统,插盘手动选ubuntu
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#8

帖子 tedchina » 2019-02-08 13:34

这样不查盘也可以直接选择进win系统,插盘手动选ubuntu
这倒也不失为一个办法,我倒不需要调整Boot缺省值,用Ubuntu的频率远大于Windows。如果不是Windows为其他小白在用,其实无需纠结了。
楼上方便时请分享一下操作细节(具体哪些文件和改动)?
simon007
帖子: 8
注册时间: 2019-02-07 22:48
系统: ubuntu

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#9

帖子 simon007 » 2019-02-15 18:32

tedchina 写了: 2019-02-08 13:34
这样不查盘也可以直接选择进win系统,插盘手动选ubuntu
这倒也不失为一个办法,我倒不需要调整Boot缺省值,用Ubuntu的频率远大于Windows。如果不是Windows为其他小白在用,其实无需纠结了。
楼上方便时请分享一下操作细节(具体哪些文件和改动)?
改的是电脑efi分区的grub.cfg文件,路径在我这边是/EFI/ubuntu/grub.cfg.这个文件本来是指向移动硬盘的,所以没移动硬盘就启动不了。
我是改成下面那样了,这样在efi分区直接就找到了grub的相关文件了,即使没有移动硬盘也能到选择启动系统那一界面了。需要把u盘上的grub文件夹复制到电脑的efi分区(我是在win7下用bootice给这个分区分配盘符,然后复制的),放在EFI文件夹下,

代码: 全选

search.file /EFI/grub/boot/grub/grub.cfg root 
set prefix=($root)'/EFI/grub/boot/grub'
configfile $prefix/grub.cfg
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#10

帖子 tedchina » 2019-02-17 21:58

simon007 写了: 2019-02-15 18:32 改的是电脑efi分区的grub.cfg文件,路径在我这边是/EFI/ubuntu/grub.cfg.这个文件本来是指向移动硬盘的,所以没移动硬盘就启动不了。
我是改成下面那样了,这样在efi分区直接就找到了grub的相关文件了,即使没有移动硬盘也能到选择启动系统那一界面了。需要把u盘上的grub文件夹复制到电脑的efi分区(我是在win7下用bootice给这个分区分配盘符,然后复制的),放在EFI文件夹下,

代码: 全选

search.file /EFI/grub/boot/grub/grub.cfg root 
set prefix=($root)'/EFI/grub/boot/grub'
configfile $prefix/grub.cfg
多谢多谢!
问个小白问题,U盘上的grub文件夹就是U盘引导启动后系统中的/boot/grub目录吗?(此时efi分区映射成/boot/efi,需要root才能进去)
然后在efi分区的EFI目录下创建一个与ubuntu目录同级的grub目录,再在里面创建boot目录,再将上一行中的grub目录复制到这个boot目录中,是这样吗?
simon007
帖子: 8
注册时间: 2019-02-07 22:48
系统: ubuntu

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#11

帖子 simon007 » 2019-02-19 19:19


问个小白问题,U盘上的grub文件夹就是U盘引导启动后系统中的/boot/grub目录吗?
对,是这个
(此时efi分区映射成/boot/efi,需要root才能进去)
然后在efi分区的EFI目录下创建一个与ubuntu目录同级的grub目录,再在里面创建boot目录,再将上一行中的grub目录复制到这个boot目录中,是这样吗?
这里你可以这么做,也可以按你自己喜欢的目录进行放置。
关键看你电脑上efi分区下的grub.cfg(这个文件用A来表示吧)怎么写,你的放置位置由A文件内容来决定的。在你没有改动之前,A里面的内容是指向你移动硬盘的。现在做的就是让他指向电脑,这样,脱离了u移动硬盘,一样可以正常启动了。
甚至你可以直接在A里写完整了,那就不用指向另外一个grub.cfg(这个用B表示),直接复制其他需要的文件到A所在目录就行了
上面一句没有验证,但我觉得应该可行。
最后,我也是小白,这是第一次干,也是在网上搜索教程慢慢摸索的。另外,教程里很多提到Boot Repair,这个东西其实就是搜索电脑和移动硬盘的引导,然后写到电脑的efi分区,你改好之后可不要用这个,不然还要重新改。
头像
tedchina
帖子: 71
注册时间: 2008-11-18 15:08

Re: 求助:如何让UEFI启动的小米笔记本支持(引导)多个不同的系统U盘?

#12

帖子 tedchina » 2019-02-19 22:10

明白了,谢谢。。。
回复