Linux操作系统如何设置U盘UEFI启动 (linux 设置u盘uefi)

在UEFI模式下,U盘系统安装比传统BIOS模式有着更好的兼容性和启动速度。有些电脑可能连DVD光驱都没有了,如果我们想安装Linux系统,那么就需要借助U盘。本文将介绍如何设置U盘UEFI启动来安装Linux系统,即使你是一个Linux初学者,也可以轻松操作。

Step 1:准备工作

我们需要准备一个U盘和Linux系统镜像文件。建议使用高速、较新的U盘,容量至少要大于系统镜像的容量。Linux系统镜像可以从官方网站下载,例如Ubuntu官网、Centos官网等。如果你已经下载的是ISO镜像文件,需要使用U盘制作工具将其制作成U盘启动盘。常用的U盘制作工具包括rufus、UltraISO、UNetbootin等。制作完成后,U盘就可以用于安装Linux系统了。

Step 2:启用UEFI模式

在进入计算机BIOS模式下,需要启用UEFI模式。对于不同的电脑厂家,具体启用UEFI模式的方法可能会有所不同,但大致方法相似。在进入BIOS设置时,需要通过按F2、F8、F10、F12等快捷键来进入设置页面。可以看到类似于“Boot”和“Security”等选项,找到其中的“Boot Mode”选项,将其切换到UEFI模式即可。设置完成后保存退出,电脑重启后即可进入UEFI模式。

Step 3:在UEFI模式下启动U盘

在UEFI模式下启动U盘的方法也会根据不同的电脑厂家而有所不同。在重启电脑进入BIOS界面时,通过按F2、F8、F10、F12等快捷键进入设置页面。找到“Boot”选项,可以看到系统启动顺序,将U盘排到之一位,保存并退出。电脑重启后,即可通过U盘启动计算机。

Step 4:开始安装Linux系统

接下来就可以开始安装Linux系统了。首先从U盘启动计算机,然后选择进入安装界面。根据不同的Linux系统,安装界面也会有所差异,但大体的操作都类似。首先需要选择安装选项,可以选择普通安装或者自定义安装。然后按照提示进行分区、选择安装目录、设置用户名和密码等,最后点击安装即可。安装完成后,将U盘拔出,重新启动计算机即可进入Linux系统。

设置U盘UEFI启动需要经过一些步骤,但其实操作并不难。通过以上的四个步骤,可以轻松将U盘制作为UEFI启动盘,以此来安装Linux系统。当然,在具体的操作过程中还会遇到各种问题,需要及时解决。如果你是一个Linux初学者,建议先阅读相关的教程或者参考资料,加强自学。本文所述的内容只是一个基本的指导方法,不同的电脑、不同的Linux系统,具体操作还需要针对性分析。

相关问题拓展阅读:

关于u盘装linux系统,couldn’t get UEFI db list

在boot启动选项那里不要选择带UEFI的那个u盘,这样就不会报错了。

如何用U盘制作一个可以安装多个不同版本的Linux系统ISO镜像文件的启动盘

U盘引导多个linux镜像安装,同时支持BIOS和UEFI模式

准备开整

基本步骤

步骤一: 格式化U盘

注意点: bios_grub标记的分区

步骤二: 安装grub到U盘

步骤三: 添加grub菜单

参考文献

前言: 生命不息,折腾不止。在折腾中进步,在踩坑中成长。

准备开整

U盘一枚(4G容量以上,备份好数据,一会可能要重新格式化)

可用的任意操作系统,64位(32位就不要折腾UEFI了)

UEFI 与 ESP 预备知识,限于篇幅就不详细介绍了,自己看文档原理

USB启动的原理就不多做讲解了,有兴趣的话找找相关的文档,介绍很多,也很详细,跟硬盘引导过程差不多。注意的是BIOS+MBR模式和UEFI+GPT模式是不同的。

基本步骤

先说一下我的环境,金士顿16G U盘一个,操作系统是Deepin 2023.3 64bit,基于Ubuntu 14.04,其他类似的系统可以类比。Linux系统本来就使用grub引导(不要在CentOS/RHEL 6及以下版本折腾了,那个是Grub Legacy,已经不维护了),折腾起来要比其他操作系统方便的多,软件仓库就有grub相关的软件包,也不需要单独安装太多东西。Windows下可以用 grub2win ,原理是一样的。

步骤一: 格式化U盘

想要支持UEFI引导,GPT是不可少了,而且GPT是兼容MBR了。所以之一步需要先将U盘格式化为GPT分区,这样efi文件可以和MBR共存,实现UEFI和BIOS双支持。

如果U盘已经是

Linux下支持GPT分区的工具: parted, gdisk。大致的步骤就是使用gdisk(命令和操作方式几乎和fdisk完全一样,只是支持GPT),或parted对U盘重新分区,然后标记ESP。如果用gdisk,只要给分区标记EF00编号即可,如果用parted,给分区boot标记即可。命令行就不演示了,很简单,我这边截图使用图形化工具gparted分区,同样结果也是GPT分区。

图形化的gparted操作也很简单,建立GPT分区表,分区,格式化为FAT32( 注: 尽管ESP支持多种分区,但是为了通用性与兼容性还是建议FAT32 ),标记分区为boot

这样U盘处理就完成了,使用gdisk或parted显示一下U盘的信息,看到这样的信息就是OK的

$ sudo gdisk -l /dev/sdb  # 根据你的U盘的名字修改dev设备 

GPT fdisk (gdisk) version 0.8.8

Partition table scan: 

MBR: protective      #

BSD: not present 

APM: not present 

GPT: present#

Found valid GPT with protective MBR; using GPT.   #

Disk /dev/sdb:sectors, 14.7 GiB 

Logical sector size: 512 bytes 

Disk identifier (GUID): 022EE53EDCFA24730 

Partition table holds up to 128 entries 

First usable sector is 34, last usable sector is

Partitions will be aligned on 2023-sector boundaries 

Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  SizeCode  Name 

.7 GiB    EF#

$ sudo parted /dev/sdb print 

Model: Kingston DataTraveler 3.0 (scsi) 

磁盘 /dev/sdb: 15.7GB 

Sector size (logical/physical): 512B/512B 

分区表:gpt     #

Disk Flags:

数字  开始:  End     大小    文件系统  Name  标志 

kB  15.7GB  15.7GB  fat启动, esp      #

注意点: bios_grub标记的分区

这个要特别强调,bios_grub标记的分区必须存在,否则BIOS模式下无法使用 。

有关bios_grub标记的分区说明: 

这里我简单提及一下这个标记的作用。上面提到过,GPT兼容MBR,如果要让grub在GPT上使用MBR模式安装的话,需要设置这个标记。按照ubuntu官方文档(上面那个文档,想了解详细的话必看!),这个分区有以下几个特点:

1MB容量

不需要格式化

设置bios_grub标记

如果用gdisk, parted, gparted这些工具分区的时候,你会发现总会有一个1MB的剩余空间,就是干这个用的,现在,我只需要给这个剩余空间分区,并打上bios_grub标记就行了(EF02),不用格式化。parted操作也类似

sudo gdisk /dev/sdb# 下面可以看到gdisk的操作几乎和fdisk完全一样,熟悉fdisk可以无压力上手GPT fdisk (gdisk) version 0.8.8Partition table scan:

 MBR: protective

 BSD: not present

 APM: not present

 GPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): nPartition number (2-128, default 2):First sector (, default =) or {+-}size{KMGTP}:Last sector (350, default =) or {+-}size{KMGTP}:Current type is ‘Linux filesystem’Hex code or GUID (L to show codes, Enter = 8300): EF02Changed type of partition to ‘BIOS boot partition’Command (? for help): pDisk /dev/sdb:sectors, 14.7 GiBLogical sector size: 512 bytesDisk identifier (GUID): 0086B5EF-81D9-4BD1-816C-AD1EADCD2338Partition table holds up to 128 entriesFirst usable sector is 34, last usable sector isPartitions will be aligned on 2023-sector boundariesTotal free space is 2023 sectors (1007.0 KiB)Number  Start (sector)    End (sector)  SizeCode  Name

.7 GiB    EF.5 KiB  EF02  BIOS boot partition #

PARTITIONS!!Do you want to proceed? (Y/N): y

OK; writing new GUID partition table (GPT) to /dev/sdb.Warning: The kernel is still using the old partition table.The new table will be used at the next reboot.The operation has completed successfully.sudo parted /dev/sdb printsudo gdisk /dev/sdb

GPT fdisk (gdisk) version 0.8.8Partition table scan:

 MBR: protective

 BSD: not present

 APM: not present

 GPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): nPartition number (2-128, default 2):First sector (, default =) or {+-}size{KMGTP}:Last sector (350, default =) or {+-}size{KMGTP}:Current type is ‘Linux filesystem’Hex code or GUID (L to show codes, Enter = 8300): EF02Changed type of partition to ‘BIOS boot partition’Command (? for help): pDisk /dev/sdb:sectors, 14.7 GiBLogical sector size: 512 bytesDisk identifier (GUID): 0086B5EF-81D9-4BD1-816C-AD1EADCD2338Partition table holds up to 128 entriesFirst usable sector is 34, last usable sector isPartitions will be aligned on 2023-sector boundariesTotal free space is 2023 sectors (1007.0 KiB)Number  Start (sector)    End (sector)  SizeCode  Name

.7 GiB    EF.5 KiB  EF02  BIOS boot partitionCommand (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

PARTITIONS!!Do you want to proceed? (Y/N): y

OK; writing new GUID partition table (GPT) to /dev/sdb.Warning: The kernel is still using the old partition table.The new table will be used at the next reboot.The operation has completed successfully.$ sudo parted /dev/sdb printModel: Kingston DataTraveler 3.0 (scsi)磁盘 /dev/sdb: 15.7GBSector size (logical/physical): 512B/512B分区表:gptDisk Flags: 数字  开始:  End     大小    文件系统      Name   标志

kB  15.7GB  15.7GB  fat启动, esp    15.7GB  15.7GB  1032kBBIOS boot partition  bios_grub  #

至此分区的步骤就完成了。如果你已经是GPT分区了,就不用重新分区了,只要处理成ESP就行了

步骤二: 安装grub到U盘

这一步相比上一步已经简单许多了,但还是有一个小坑需要注意。先贴命令:

$ sudo mount /dev/sdb1 /mnt -o uid=$USER,gid=$USER  # 没什么好说的,挂载U盘使用,加上uid和gid参数只是为了编辑文件不需要sudo而已# grub安装到MBR$  sudo grub-install –target=i386-pc –recheck –boot-directory=/mnt/boot /dev/sdbInstalling for i386-pc platform.Installation finished. No error reported.# grub安装到ESP,特别注意–removable参数,安装到移动设备上一定要用这个参数$ sudo grub-install –target x86_64-efi –efi-directory /mnt –boot-directory=/mnt/boot –removableInstalling for x86_64-efi platform.Installation finished. No error reported.

命令没有任何难度,但是有几个坑需要特别注意:

Ubuntu的分包问题grub默认的target是i386-pc,这个target包含在 grub-pc 这个包,如果你的系统使用BIOS+MBR安装,这个包默认是存在的。x86_64-efi这个target包含在 grub-efi 这个包,只有你的系统使用UEFI+GPT方式安装这个包才会存在。如果某个target报错,错误信息类似于 grub-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn’t exist. Please specify –target or –directory. 这样的话,就需要安装 grub-pc 或 grub-efi 之后再试。

安装到ESP要加–removable这个参数 这个参数专门针对于可移动设备,一定要加

bios_grub标记的分区 如果按照上面的分区过程操作了,增加了这个标记的分区,安装grub的时候会自动识别这个标记的分区并成功安装grub,否则报错:

Installing for i386-pc platform.grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won’t be possible.

grub-install: warning: 无法嵌入。在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的,不推荐使用。.

grub-install:错误: will not proceed with blocklists.

步骤三: 添加grub菜单

如果前面都没问题的话,最后就只剩下添加grub菜单了。在 /mnt/boot/grub 这个目录下,新建 grub.cfg 配置文件就行了。grub2的语法很复杂,图省事就从网上各种摘抄拼接就行了。比如我把linux发行版的iso镜像都扔到了 boot/iso 这个目录,于是乎我的 grub.cfg 成了这样:

# path to the partition holding ISO images (using UUID)probe -u $root –set=rootuuidset imgdevpath=”/dev/disk/by-uuid/$rootuuid”# define globally (i.e outside any menuentry)inod search_fs_uuid

search –no-floppy –set=isopart –fs-uuid $rootuuid

inod all_video

menuentry “Linux Mint cinnamon 64bit ISO” {

set isofile=/boot/iso/linuxmint-17.2-cinnamon-64bit.iso

loopback loop ($isopart)$isofile

linux (loop)/casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 —

initrd (loop)/casper/initrd.lz}menuentry “Ubuntu Desktop 64bit ISO” {

set isofile=/boot/iso/ubuntu-14.04.3-desktop-amd64+mac.iso

loopback loop ($isopart)$isofile

linux (loop)/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 —

initrd (loop)/casper/initrd.lz}menuentry “UbuntuKylin Desktop 64bit ISO” {

set isofile=/boot/iso/ubuntukylin-14.04.3-desktop-amd64.iso

loopback loop ($isopart)$isofile

linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 —

initrd (loop)/casper/initrd.lz}menuentry “Ubuntu Server 64bit ISO” {

set isofile=/boot/iso/ubuntu-14.04.3-server-amd64+mac.iso

loopback loop ($isopart)$isofile set gfxpayload=keep

linux (loop)/install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed iso-scan/filename=$isofile quiet —

initrd (loop)/install/initrd.gz}menuentry “Deepin 2023 ISO” {

set isofile=/boot/iso/deepin_2023.3_amd64.iso

loopback loop ($isopart)$isofile

linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt splash locale=zh_CN.UTF-8 —

initrd (loop)/casper/initrd.lz}

根据自己的需求增删改改就行了。想进一步美化的话,grub2关于美化的文档也很多,就不赘述了。

注意: 不要使用虚拟机测试,因为虚拟机不能完整模拟主板。因此不一定能引导你的U盘,让你误以为制作失败了。尽可能用真机去测试引导。

最后,贴一个效果图,可以看到BIOS模式和UEFI都可以引导了

补充: 稍作美化一下效果,只不过那个从本地硬盘启动还没实现,需要看看别人怎么写的。

linux 设置u盘uefi的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 设置u盘uefi,Linux操作系统如何设置U盘UEFI启动,关于u盘装linux系统,couldn’t get UEFI db list,如何用U盘制作一个可以安装多个不同版本的Linux系统ISO镜像文件的启动盘的信息别忘了在本站进行查找喔。


数据运维技术 » Linux操作系统如何设置U盘UEFI启动 (linux 设置u盘uefi)