应用场景

自己有一个可启动移动硬盘,是属于老式的BIOS启动方式,最近换了新电脑,因为电脑只支持uefi的启动方式,所以决心为移动硬盘增加uefi启动支持,如何将一个只支持BIOS启动(或者 Legacy启动)的U盘或者移动硬盘增加UEFI启动支持?

主要问题

网上有很多此类的资料,[http://blog.getreu.net/projects/legacy-to-uefi-boot/](Switch Debian from legacy to UEFI boot mode),https://blog.csdn.net/weixin_33939843/article/details/89650402,按方法的操作后始终不能支持用Legacy的方式启动,另外的所谓的要将主分区放在第二个的设置,仍然不能达到期望。最

知识要点

uefi启动并不直接要求分区表是gpt格式,他只要求分区中能找到esp分区,并且esp分区中有efi文件夹,在efi文件夹下,有boot文件夹,并且文件夹下有可启动的efi镜像。

制作办法

安装grub-efi

可以最开始就将 grub-efi 安装好,当然也可以后续安装

修改分区

利用gparted 、diskgenius 等工具修改移动硬盘分区,将MBR分区表改为GPT分区表(https://www.cnblogs.com/pinpin/p/10043295.html),增加esp分区(ESP虽然是一个FAT16或FAT32格式的物理分区),大小根据启动文件的大小而定,100Mb一般够用,再用分区工具将GPT分区表格式直接转换为MBR分区表,这才是重点。

重新安装GRUB

启动Debian Live CD 重新安装 grub。

挂载文件系统

主要是为下步chroot中操作设置环境,所以,至少要挂载 / ,/boot,/boot/efi, /dev/, /dev/pts ,/proc, /sys,其他视情而定,比如tmp,var 等单独分区的话还要单独挂载。以下是一个示例。

`# mount /dev/sdb1 /mnt/boot

mkdir /mnt/boot/efi

mount /dev/sdb2 /mnt/boot/efi

for i in /dev/ /dev/pts /proc /sys ; do mount -B $i /mnt/$i ; done`

注意 这是一个示例,/dev/sdXX根据实际进行修改,示例代码中 /dev/sdb1 是我们原boot分区,/dev/sdb2是我们新建的esp分区。

如果前面没有安装 grub-efi,可能需要在chroot里面访问网络,则要进行正确的网络设置,当然,如果你移动硬盘中系统本来就可能访问网络,则不需求进行其他设置。

将esp分区加入fstab

查看esp分区的uuid。

# ls /dev/disk/by-uuid

fat32格式一般是形如 ABCD-EFGH 的样子,可能看到多个esp分区分辨不出来,其实在分区工具中新建的时候可以记下来。

将分区设置为自动挂载。

# echo "UUID=ABCD-EFGH /boot/efi vfat defaults 0 2" >> /mnt/etc/fstab

当然这也可以在进入到chroot环境后再设置,只是/mnt/etc/fstab 变为 /etc/fstab罢了。

进入chroot环境

# chroot /mnt

安装efi启动文件

# grub-install /dev/sdb

其他设置

Debian 9 系统上安装启动文件后,在esp分区的efi文件夹中会生成 debian文件夹,没有boot文件夹,将其复制一份

# cp -r debian boot

总结

uefi启动并不直接要求分区表是gpt格式,他只要求分区中能找到esp分区,并且esp分区中有efi文件夹,在efi文件夹下,有boot文件夹,并且文件夹下有可启动的efi镜像。

UEFI和Legacy兼容启动U盘制作的更多相关文章

  1. 微软Windows 7 “可启动U盘”制作工具及使用方法,非常的简单

    目前,用“可启动U盘”替代光驱光盘安装操作系统,已经成为一种时尚(至少对没有刻录机或不愿购买光碟的群体是这样).制作“可启动U盘”的方法和工具很多,区别无非是制作的难易程度和对“U盘类型”的支持程度. ...

  2. Linux启动U盘制作

    Linux目前最好的u盘启动工具之一,下面介绍它的用法,首先下载Linux live OK了,一步一步跟我步骤走! 启动时,选择需要用的U盘 步骤二,就选择安装源即可(一般为ISO文件) 最后进行步骤 ...

  3. 怎么看系统是UEFI还是Legacy BIOS启动模式?

    在命令行 cmd 中输入  msinfo32 ,找到右侧[BIOS模式],看到这里显示的是[uefi],那么说明是[uefi]方式启动的,反之显示为[BIOS],那么就是传统[BIOS]启动模式.如下 ...

  4. ubuntu14.04LTS下制作安装启动U盘

    ubuntu自带的启动U盘制作工具在我的非UEFI电脑上无法启动,找到一个国产的好用东西:深度deepin-boot-maker. 下载地址(官方百度盘):点击下载 用起来也很简单,只需要选择下载好的 ...

  5. Linux U盘启动盘制作工具

    近期由于自己使用的ubuntu系统一直出问题,想做一下启动盘帮助恢复系统和故障检测,以前一直是用ultraiso来进行写盘的,但是发现制作了几次后,失败的机率很高,主要有以下几种情况: 1.引导有问题 ...

  6. WinPE启动U盘的制作方法与软件下载(通用PE工具箱/老毛桃/大白菜WinPE)

    转自:http://blog.sina.com.cn/s/blog_58c380370100cp5x.html 文件大小:39.5M(支持Win7安装,早期的通用PE工具箱,小巧不过几十兆,现在都臃肿 ...

  7. 计算机基础之Windows10操作系统安装U盘制作

    1.第一步,下载Windows10--ISO镜像(Windows7类似),下载站点: https://msdn.itellyou.cn/(百度搜索msdn即可),个人认为这是最干净的操作系统镜像站点, ...

  8. 谁说NTFS不支持UEFI启动的?启动U盘放不了超过4G的文件怎么办?Server2016 Win10 U盘UEFI启动制作方法

    大家都知道,我们平时做启动盘,用得最多的就是UltraISO(软碟通)这个工具了.用它我们可以很简单快速的把一个空白的普通U盘制作成一个PE启动U盘或系统U盘,然后用它来安装系统非常的方便,受到了广大 ...

  9. 制作UEFI(64位)下的WinPE + Ubuntu + Acronis多启动U盘

    最近研究了一下如何制作一个多启动U盘,其中想包含的功能是WinPE(这里选择WEPE),Ubuntu 18.04,Acronis True Image 2018的ISO恢复盘.这里分享一下制作的经验和 ...

随机推荐

  1. Java JFR 民间指南 - 事件详解 - jdk.ObjectAllocationInNewTLAB

    重新申请 TLAB 分配对象事件:jdk.ObjectAllocationInNewTLAB 引入版本:Java 11 相关 ISSUES: JFR: RecordingStream leaks me ...

  2. Day13_68_中止线程

    中止线程方法一 * 在线程类中定义一个bollean类型的变量,默认值设置为ture,如果想要中断线程,只需要将该boolean类型的变量设置为false就可以了 * 代码 package com.s ...

  3. poj_3617 解题

    题意: 给定长度为N的字符串S,要构造一个长度为N的字符串T串. 从S的头部删除一个字符,加到T的尾部 从S的尾部删除一个字符,加到T的尾部 目标是构造字典序尽可能小的字符串. 示例输入: ACDBC ...

  4. 经典论文系列| 实例分割中的新范式-SOLO

    前言: 这是实例分割中的一篇经典论文,以往的实例分割模型都比较复杂,这篇论文提出了一个简单且直接的实例分割模型,如何设计这种简单直接的模型且要达到一定的精度往往会存在一些困难,论文中有很多思路或思想值 ...

  5. SpringCloud(四)GateWay网关

    GateWay网关 概述简介 Gateway是在 Spring生态系统之上构建的AP网关服务,基于 Spring5, Spring Boot2和 Project Reactor等技术. Gateway ...

  6. UC-Android逆向工程师 面试题1的分析

    1.简介 这个题目是一位吾爱破解的坛友在面试UC的Android逆向工程事时,遇到的题目.此题不难,与阿里移动去年移动安全比赛的题目差不多,题目的验证方式也是查表对比,并且这个表的数据是放在文件中的. ...

  7. hdu4768 非常规的二分

    题意:       n个社团给同学发传单,同学一共有1--2^31这么多,每个社团有三个数A ,B ,C ,只有 满足 A ,A + C ,A + C + C ...A + KC <= B 的学 ...

  8. Intel汇编程序设计-整数算术指令(上)

    第七章 整数算术指令 7.1 简介 每种汇编语言都有进行操作数移位的指令,移位和循环移位指令在控制硬件设备.加密数据,以及实现高速的图形操作时特别有用.本章讲述如何进行移位和循环移位操作以及如何使用移 ...

  9. 四次挥手中你还不知道的ACK机制

    为面试做准备中. 后面有对ACK机制的详细讲解. 四次挥手比较好解释. 看一下我的草图. ACK表示发来的数据已确认接收无误. 图中一个箭头代表一次挥手. 第一次挥手: 主动关闭方:发送一个FIN,表 ...

  10. 发现Webpack中泄露的api

    发现Webpack中泄露的api 目录 发现Webpack中泄露的api 1 - 安装 reverse-sourcemap 2 - 寻找xxx.js.map 3 - 下载xxx.js.map并获取所有 ...