最近想将Ubuntu22.04LTS安装在我的256G USB3.2U盘上,并实现BIOS和UEFI双引导启动,网上查了一堆资料,整合起来开始安装,这里分享一下安装的过程

1.安装准备

  • 1.一台可运行vmware虚拟机的电脑

  • 2.VMware软件

  • 3.U盘,这里我使用的是256GB的

  • 4.Ubuntu22.04LTS的iso镜像(从官方下载)

2.安装过程

创建虚拟机

首先启动VMware虚拟机,创建一个新的虚拟机,配置如下

  • 虚拟机名称: 随意

  • 虚拟机版本: 默认

  • 客户机操作系统: Ubuntu 64位

  • 硬件: 全部默认

更改虚拟机配置

  • 移除-虚拟硬盘

  • 修改-USB控制器版本, 匹配宿主机目标U盘的实际协议

  • 修改-虚拟光驱, 挂载Ubuntu镜像iso, 勾选启动时连接

  • 修改-虚拟机设置>选项>高级>固件类型, 设置为UEFI

注意,这里我没有删除虚拟网络适配器,是因为发现未联网安装时可能之后安装完成会缺一些东西,这里直接桥接在主机上了

虚拟机,启动!

  • 开机-虚拟机应当引导进入Ubuntu LiveCD,(就是一个黑框框) 直到出现Try Ubuntu or Install Ubuntu字样

  • 选择-Try Ubuntu or Install Ubuntu , 直到进入LiveCD桌面

  • 挂载-右下角托盘, 将目标U盘作为USB设备挂载到虚拟机

  • 选择-检测到USB设备后, Install Ubuntu xxxx, (也可以先更改语言为中文)启动安装程序

开始安装

  • 选择-按需选择语言, 安装规模等, 直到Installation Type页面

  • 选择-Something Else, 即手动进行分区并安装

对硬盘进行分区

  • 新建分区表-右键U盘设备, 应当为/dev/sda, 选择New partition table

  • 添加分区-添加如下的分区, 分区大小仅供参考

    • (必须)大小1MB, 类型为Reserved BIOS boot area

      • 添加该分区后, 您可能会注意到, 磁盘头部出现33MB的未分配空间, 而该分区大小变为33MB, 这是完全正常的

    • (必须)大小500MB, 类型为EFI System Partition

    • (可选)大小和电脑内存相同(我这里用了16G),类型为Swap

    • (可选)大小500MB, 类型为Ext4 journaling file system, 挂载点/boot

      • 该操作不推荐, 99%的情况下不必要

      • 某些老旧的BIOS无法识别存在于8GB或64GB之后的可引导分区, 因此该操作曾经有意义

      • 使用raid等方式安装系统时, 该操作是必须的, 很明显我们没有这样做

    • (必须)大小10GB+, 类型为Ext4 journaling file system, 挂载点/

      • 若有单独为/home分区, 该大小推荐设置为20GB左右

      • 若无单独/home, 占满磁盘剩余空间即可, 若有需要可以保留一些未分配空间

    • (可选)大小10GB+, 类型为Ext4 journaling file system, 挂载点/home

      • 看个人情况, 占满剩余磁盘空间或保留一些未分配空间

  • 确认分区-必须包括如下分区

    • (必须)大小50MB, 类型为Reserved BIOS boot area

    • (必须)大小500MB, 类型为EFI System Partition

    • (必须)大小10GB+, 类型为Ext4 journaling file system, 挂载点/

我的分区如下

完成安装

  • 填写区域,账号,密码等。等待安装完成, 不要退出安装程序

  • 选择-Continue trying

  • Ctrl+Alt+T打开终端,输入sudo su切换到root用户

sudo su
  • 确定挂载各个位置, 以创建分区的顺序为依据

fdisk -l
# 教程假定挂载点为'/boot'的分区(若存在)为/dev/sda4, 请根据需要修改
# 教程假定挂载点为'/'的分区为/dev/sda4, 请根据需要修改
  • 安装grub, 根据挂载的是否为/boot挂载点的分区选择您待执行的命令

mkdir /mnt/sda4
mount /dev/sda4 /mnt/sda4
  • 安装grub, 根据挂载的是否为/boot挂载点的分区选择您待执行的命令

# 如果您挂载的是'/'分区, 其为/dev/sda4, 则
grub-install --target=i386-pc --boot-directory=/mnt/sda4/boot /dev/sda
# 如果您挂载的是'/boot'分区, 其为/dev/sda4, 则
grub-install --target=i386-pc --boot-directory=/mnt/sda4 /dev/sda
  • 检查分区情况

    • 命令行输入启动gparted

    • 如果您发现添加时设置为1MB的分区, 此时拥有文件系统grub core.img, 说明grub-pc安装完毕

关闭虚拟机,编辑虚拟机设置,开始测试安装是否成功

  • 添加-虚拟硬盘, 磁盘类型设置为使用物理驱动器, 选择目标U盘, 一般为最后一个

  • 修改-虚拟光驱, 取消勾选启动时连接

虚拟机(UEFI模式),启动!

  • 虚拟机应当成功引导进入Ubuntu桌面, 执行下面的命令, 以验证当前的引导类型

ls /sys/firmware/efi
# 若成功执行, 说明为UEFI引导; 若提示找不到文件, 则为BIOS引导

虚拟机(BIOS模式),启动!

  • 修改-虚拟机设置>选项>高级>固件类型, 设置为BIOS

  • 执行之前命令,验证引导类型

睡吧,虚拟机

你现在可以关闭虚拟机了,然后重启设备,进入主板BIOS改变启动的系统,看看怎么个事。