win10 UEFI装Ubuntu20.04双系统的各种坑和解决办法

前言:本人试图在移动硬盘上安装ubuntu20.04(64位),并且希望ubuntu可以从移动硬盘上启动。
以下所有安装操作都是从U盘启动安装程序,安装系统到移动硬盘。U盘中事先写入了系统安装镜像。
本教程包含了正确实现上述目的的流程,以及本人之前所有失败尝试的总结,防止大家踩坑。

安装教程

1、系统条件

移动硬盘为GUID分区格式,BIOS启动系统的方式方式为UEFI。分区格式可以通过DiskGenius查看,启动方式在BIOS配置界面可以看到(进BIOS的方法因机器而异),不过近几年的新机器基本是UEFI启动。如果您的系统不是上述条件,请谨慎参考本教程。DiskGenius可以格式化分区表为GPT(注意实现备份好数据)。

2、准备

安装前,自行备份移动硬盘数据,因为安装时会清空所有磁盘数据。
另外准备一个U盘,U盘要有一个8GB左右的空闲分区。

安装Universal USB Installer和DiskGenius。

下载Ubuntu20.04LTS镜像,使用Universal USB Installer烧录到上述的U盘空闲分区。

最好先关闭windows的bitlocker,在windows的设置中查找"bitlocker"会找到关闭它的选项。

3、安装ubuntu

重启,在LOGO出现前按F12(我的Dell Inspiron7580是按这个键,其他机型自己查)进入BIOS界面。在System Configuration关闭RAID(否则安装程序会提示你回去关闭windows rst),在Drives选项只勾选移动硬盘和U盘启动盘的驱动(这样接下来安装时Ubuntu就不会清空其他硬盘);关闭Secure boot。

安装选项选erase disk。接下来等安装结束就好。安装结束后,会发现ubuntu只建了两个分区:硬盘最前面的512M空间建立为ESP分区,接下来所有空间是另一个分区,用于挂载根目录。所以网上各种ubuntu分区方法,至少对于ubuntu20.04并非必须。如果你的电脑物理内存<8G,或许有必要建一个swap分区。

4、之后怎么进入windows

重启,进入BIOS界面,开启RAID和Secure boot,Drives选项勾选所有驱动器。退出BIOS,电脑会再次重启,这次再按键进入BIOS。此时可能看不到"windows boot manager"这个启动项了,但会出现另一个启动项,其名称包含你本地硬盘某些设备信息,它大概率是原来的windows boot manager,选这个启动项,接下来大概率能进入windows。如果不确定,可以在BIOS设置的Boot sequence中,选中这个启动项然后点击下方的"View",如果这个启动项的路径是"EFI/Microsoft/"开头,那基本确定它就是windows boot manager。

接下来不用再改BIOS选项,ubuntu和windows都能正常启动(对ubuntu性能的影响未知)。默认启动顺序是ubuntu在前,可以在BIOS配置boot sequence来修改。不过,要是不插移动硬盘,那BIOS根本探测不到ubuntu启动项,所以会直接启动windows。

嫌ubuntu占了太多磁盘空间?那就用DiskGenius,选中ubuntu根目录挂载的那个分区,右键,“调整分区容量”,输入你希望的容量。接下来DiskGenius会检查分区的inode表和空闲块表,如果这一步DiskGenius提示“有已使用的未用inode”之类,就记下inode编号,如果没提示那接下来就能成功缩小这个分区。
如果上一步DiskGenius提示inode存在问题,就重启进入ubuntu,通过以下命令寻找有问题的inode对应哪些文件:

find / -inum inode_num

上述inode_num替换成之前我们记录的inode号。
操作时发现,有问题的inode对应的文件都在/var/log/journal下,这里面是系统日志文件(啥作用自己百度)。我把问题inode对应的日志文件都删了,然后重启进windows,用DiskGenius成功把ubuntu根目录分区容量改小。之后也能顺利运行ubuntu。

5、换源

之所以装ubuntu就是因为国内镜像站对它的支持比较好,可以下载一些老版本的软件包。

访问清华镜像站https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu,在页面中选择你的ubuntu版本,网站就会显示对应的镜像源列表。如果要装一些古早的软件,可以选择低版本ubuntu的镜像源。打开apt的镜像列表文件:

sudo gedit /etc/apt/sources.list

把刚刚在/help/ubuntu找到的镜像源列表复制粘贴到sources.list,里面旧有的镜像基本上可以不要了,或者可以先备份旧的sources.list。

ubuntu20自带的apt不支持https,所以先把sources.list的所有网址改成http开头,然后sudo apt-get update更新apt配置。

安装apt-transport-https并下载ca-certificates:

sudo apt install apt-transport-https ca-certificates

再将sources.list中的镜像源改成https,重新update。

一些坑

1、BIOS的RAID和Secure boot选项

RAID on和Secure boot同时开启时可以避免bitlocker,同时关闭会出现bitlocker。
Raid on时安装ubuntu会提示无法继续安装,要求重启并关闭“windows快速存储”,也就是BIOS里面的RAID选项。

2 从windows esp分区彻底删除ubuntu启动项

正确姿势

windows下用diskpart选中windows esp分区(sel disk 0, list vol, sel vol *, )然后分配盘符(assign letter=盘符),然后管理员身份打开记事本,记事本选择打开文件,就能访问刚刚挂载的esp分区,找到EFI文件夹,删除其中的ubuntu和Boot文件夹,最后解挂esp分区(remove letter=盘符)。
上述两个文件夹其实都有grub的可执行文件,通过DiskGenius把这两个文件夹拷贝出来,用ghidra反编译,你会发现Boot文件夹的bootx64.efi是windows平台可执行文件,其中还调用了grub函数。

错误姿势

在ubuntu中改fstab并更新grub,似乎会导致windows boot manager启动项消失。我的操作是拷贝(不是移动)ubuntu efi、改fstab,更新grub,然后发现windows boot manager从启动项中消失,esp分区的EFI/Boot/bootx64.efi会被BIOS识别为启动项,然而后者无法引导任何系统。

此后再通过启动盘进入linux系统,挂载windows esp分区(这个分区本来对应windows boot manager)并删除ubuntu文件夹,之后仍然找不到windows boot manager,导致无法起win,甚至无法起ubuntu。

用dell的重置出厂设置/重置到最新版windows都无法解决。用写入windows镜像的U盘启动,如果选恢复选项,仍无法启动。

如果用这个U盘重装win10系统,就能覆盖原来的esp分区,之后能正常启动windows。看来除非用windows启动盘,否则这些“重置”都不会改动esp分区。

3、"other options"安装选项相关

接下来的所有尝试都试图把ubuntu bootloader安装位置设为移动硬盘的某一分区,但是都失败了。这些尝试都导致grub安装到windows的esp分区,结果grub会优先于windows boot manager启动。结合所有尝试,我怀疑失败的原因是bootloader安装位置只能选择整个驱动器,比如grub-install /dev/sda,按上面教程安装时,安装程序就是把grub安装到sda。而本条目下所有的尝试都是grub-install /dev/sda1这种形式(而它们都失败了)。

3.1、安装时选择自定义分区,此时windows esp分区默认是选中的。

如果不改这个默认项,那么就算指定了新的分区为efi且在此安装bootloader,grub仍然会装入windows esp,并且就算在BIOS中下移ubuntu启动项,开机时仍然优先进grub,并且再次查看BIOS会发现ubuntu变回第一个启动项。

3.2、安装选项中bootloader安装位置的意义

之后会将grub安装到此处。安装程序执行grub-install --force “安装设备”。此处的“安装设备”是/dev/sda5这样的磁盘分区。

3.3、各种报错

如果设置新分区为FAT32并且挂载/boot,安装程序会提示FAT无法挂载/boot,并且推荐使用ext2等文件系统。

新分区设为主分区并且格式化为efi,则无法选择该分区安装bootloader。

以下三项操作,同时用2和3,安装程序会提示挂载冲突;同时用1和2并且不选中windows esp分区,安装程序会提示没有esp分区。

  1. /boot挂载于一个新分区
  2. /boot/efi挂载于一个新分区
  3. 设置某个新分区的文件系统为efi

用2,且不选中windows esp分区,则grub会提示3.2挂载/boot/efi的分区不是esp(/dev/sda1 is not a ESP partition: exiting)。安装完成后,启动时仍是grub最优先,进入ubuntu发现之前指定来挂载/boot/efi的分区没有任何文件,所以grub确实没装进这个分区。

用3,并且不选中windows esp分区,最后/boot/efi仍然挂载于windows esp分区,并且启动时优先进grub。

3.4、

事先用DiskGenius清空移动硬盘的所有分区,格式化分区表为guid,且不分配分区。安装时选择"other options",设三个逻辑分区:esp(文件系统为efi)、swap、根目录(文件系统ext4),且不选中windows esp分区,bootloader安装路径选上述新开辟的esp分区。

安装时信息显示"grub-install ran successfully",中途也没出现之前的is not a ESP partition: exiting。但安装结束重启时,如果启动项选ubuntu,戴尔support assist会优先执行、诊断硬件。诊断结果是"no bootable device"。事后用DiskGenius查看上述的efi分区,发现里面没有ubuntu文件夹(或许support assist发现这个esp分区没有启动引导文件,所以才说no bootable device),而windows esp分区出现了ubuntu文件夹。另外,查看ubuntu根目录分区的/etc/fstab发现/boot/efi挂载于windows esp分区。如果启动项选windows boot manager可以正常启动windows(起windows前注意开启RAID和Secure Boot)。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在win10安装ubuntu20.04双系统,需要先准备一个可启动的Ubuntu安装U盘或光盘。然后在win10上打开磁盘管理器,缩小当前系统所在的分区,为Ubuntu留出足够的空间。接着插入Ubuntu安装U盘或光盘,重启电脑,进入BIOS设置,将启动顺序设置为U盘或光盘优先。然后按照Ubuntu安装向导的提示进行安装,选择安装到之前缩小的空间上,并设置好分区安装选项。安装完成后,重启电脑,选择进入Ubuntu系统即可。 ### 回答2: Win10 安装 Ubuntu20.04 双系统的步骤如下: 1. 调整分区安装 Ubuntu 前,需要关注你的电脑硬盘是否有足够的空间来安装 Ubuntu20.04,同时需要调整分区以腾出硬盘空间。 首先进入 Windows10 系统,打开磁盘管理,选择 Windows 所在的系统分区,右键点击缩小卷,输入你想开辟的空间大小,如果你的硬盘只有一块,只能开辟自由空间,如果你的硬盘有多个分区,选择开辟空闲分区,创建两个空区,一个用于 Ubuntu 的根目录,一个用于 Ubuntu 的交换分区。 2. 制作 Ubuntu20.04 安装盘 制作 Ubuntu20.04 安装盘可以选择 U 盘或者 DVD 光盘,具体方法是: 先到 Ubuntu 官网下载 Ubuntu20.04 的 ISO 镜像文件,然后使用 Rufus 工具将镜像刻录到 U 盘或 DVD 光盘上,制作好安装盘后可以进入下一步操作。 3. 安装 Ubuntu20.04 在电脑中插入 Ubuntu20.04 安装盘,选择 USB 启动,进入 Ubuntu 安装界面,选择语言,点击安装 Ubuntu,之后会弹出安装界面,按照提示一路下一步,直到选择安装类型的界面。 在选择安装类型的界面,选择「其它选项」,点击下一步之后会进入分区界面,根据之前预留的空间来进行分区设置,选择自己新建的交换分区和根目录,根据需要设置分区格式以及挂载点。 4. 安装 Grub 引导程序 在安装 Ubuntu 后,系统会默认安装 Grub 引导程序,这使得电脑可以在启动时进行选择系统,但是在安装 Grub 引导程序的时候,可能会因为 UEFI 或者传统 BIOS 的不同而有所不同。对于较新的电脑,通常需要通过 UEFI 模式来进行引导,而较旧的电脑则需要通过传统 BIOS 来启动。 安装完成后,重启电脑,选择启动项,就可以选择 Windows10 和 Ubuntu20.04 了。注意,在双系统启动时需要保持 grub 引导界面是英文状态,避免乱码的问题。 以上就是安装 Ubuntu20.04 双系统的详细步骤,大家可以按照这些步骤来操作,如果遇到任何问题,可以百度或者找相关视频教程参考。 ### 回答3: Win10安装Ubuntu20.04双系统可以分以下几个步骤来完成: 1.准备Ubuntu20.04安装盘或U盘。可以从Ubuntu官网上下载镜像文件,然后制作成启动U盘。 2.在Win10系统中分出一部分硬盘空间,用于安装Ubuntu系统。可以通过磁盘管理工具来完成。 3.将Ubuntu的启动盘或U盘插入电脑,重启电脑,进入BIOS或UEFI设置界面,将启动顺序设置为USB优先,保存设置并退出。 4.进入Ubuntu安装界面,选择安装Ubuntu选项。接下来,根据安装向导的提示,选择安装语言、时区、键盘布局等。 5.在安装类型界面中,选择“安装UbuntuWindows10并存”。 6.接下来在“安装类型”界面上进行分区设置。可以选择“自定义分区”选项,手动进行分区和挂载点设置。常见的分区设置一般是将/boot、/、/home这三个分区各自分出来。可以根据自己的需求和硬盘情况合理设置。 7.安装过程中,需要设置用户名、密码、计算机名等基本设置。 8.等待Ubuntu安装完成,电脑会自动重启。此时会出现GRUB启动界面,可以选择启动UbuntuWindows10。 9.安装完成之后,可以对Ubuntu进行更新和软件安装。可以打开终端,使用apt-get或apt命令安装软件包。 总的来说,在安装Ubuntu20.04系统的时候,要注意备份好重要的数据,以免误操作导致数据丢失。在进行磁盘分区时,建议仔细阅读提示,不要随意操作。如果有不清楚的地方,可以查阅相关的教程或询问经验丰富的用户或者专业技术人员,以避免出现问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值