当前位置: 首页 > news >正文

迁移Ubuntu启动文件到另一块硬盘

问题描述

我的电脑有两块硬盘,并安装了双系统,其中win11系统位于第一块硬盘,ubuntu20.04系统位于第二块硬盘。
但安装ubuntu20.04时,启动项即使设置为第二块硬盘的efi分区,引导文件依旧安装在了第一块硬盘的efi分区。
现在ubuntu20.04的启动文件位于nvme0n1p1,其中还包含了win11的启动文件。
但win11的efi分区太小,担心后期windows更新时会存在问题,此外将启动文件迁移,后期将硬盘插到其他电脑上也可以启动,所以我想把ubuntu20.04的启动文件迁移到nvme1n1p1。

查看文件分区及类型

lsblk -f

谨慎迁移,提前备份重要数据

迁移方法

  1. 安装 efibootmgr
sudo apt update
sudo apt install efibootmgr
  1. 挂载目标分区
sudo mkdir /mnt/efi
sudo mount /dev/nvme1n1p1 /mnt/efi
  1. 复制启动文件
sudo cp -r /boot/efi/EFI/ubuntu /mnt/efi/EFI/
  1. 更新启动配置
sudo efibootmgr

执行此命令,将显示当前启动项(BootCurrent),启动项顺序(BootOrder)以及各启动项,如下所示:

zb@zb-pc:~$ sudo efibootmgr
BootCurrent: 0005
Timeout: 0 seconds
BootOrder: 0005,0004,0000,2001,2002,2003
Boot0000* EFI Hard Drive (ZHITAI Ti600 1TB)
Boot0001* EFI PXE 0 for IPv4 (40-C2-BA-98-73-49)
Boot0002* EFI PXE 0 for IPv6 (40-C2-BA-98-73-49)
Boot0004* Windows Boot Manager
Boot0005* ubuntu
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network

现在我需要将ubuntu的启动项由 Boot0005 改为 Boot0001,步骤3已经将启动文件复制到了 Boot0000 所在位置。接下来,需要删除 Boot0005,并指引到 Boot0000 即可。

sudo efibootmgr -b 0005 -B
sudo efibootmgr -c -d /dev/nvme1 -p 1 -l \\EFI\\ubuntu\\shimx64.efi -L "Ubuntu"
  • -b 0005 -B:删除当前的 Ubuntu 启动项
  • -c:创建新的启动项
  • -d /dev/nvme1 -p 1:指定目标硬盘和分区
  • -l \EFI\ubuntu\shimx64.efi:指定启动文件路径
  • -L “Ubuntu”:指定启动项名称
  1. 验证启动项
sudo efibootmgr

以下内容我是通过BIOS操作(更改启动项顺序) 以及 windows端的DiskGenius软件(清理旧的启动文件)完成,并非命令行,请谨慎操作。

  1. 更改启动项顺序,例如:
sudo efibootmgr -o 0000,0004,0001,0002,2001,2002,2003
  1. 重启测试

重启电脑,进入 BIOS 设置,检查启动顺序。重启 Ubuntu,确保一切正常。

  1. 清理旧的启动文件
sudo rm -rf /boot/efi/EFI/ubuntu
  1. 重启测试
http://www.dtcms.com/a/266941.html

相关文章:

  • ubuntu 18.04配置镜像源
  • 操作Choose Boot Java Run time for the IDE 导致AS重新安装后依然无法启动(已解决)
  • 考研408《计算机组成原理》复习笔记,第三章(3)——多模块存储器
  • Web前端:全选框的使用
  • Abase和ByteKV存储方案对比
  • 【C#】入门
  • tmux 左下角会话名显示不全的解决方法
  • SpringBoot-规划多模块目录结构
  • 项目介绍:Awesome System Prompts
  • 免费PDF处理软件,支持多种操作
  • 开源项目XYZ.ESB:数据库到数据库(DB->DB)集成
  • 系统架构师
  • Class5多层感知机的从零开始实现
  • Linux awk 命令
  • 浅谈 webshell 构造之如何获取恶意函数
  • chrome插件合集
  • 4 位量化 + FP8 混合精度:ERNIE-4.5-0.3B-Paddle本地部署,重新定义端侧推理效率
  • 【LUT技术专题】CLUT代码讲解
  • 写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
  • MSPM0G3507学习笔记(一) 重置版:适配逐飞库的ti板环境配置
  • 服装零售企业跨区域运营难题破解方案
  • 深度学习笔记29-RNN实现阿尔茨海默病诊断(Pytorch)
  • 25年Java后端社招技术场景题!
  • MyDockFinder 绿色便携版 | 一键仿Mac桌面,非常简单
  • 应用分发平台的重要性:构建、扩展和管理您的移动应用
  • VR 火化设备仿真系统具备哪些优势?​
  • MySQL 八股文【持续更新ing】
  • 机器学习路径规划中的 net 和 netlist 分别是什么?
  • 《推客分销系统架构设计:从零搭建高并发社交裂变引擎》
  • linux---------------进程信号(下)