应用场景

自己有一个可启动移动硬盘,是属于老式的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. 闲暇时光里最好的挖矿体验——CPU挖乌龟币

    我之前其实是不玩加密货币的,主要是没有钱取投资(tou ji),也没有钱去投资矿机. 不过前几天CSDN推送了一个短文,<黑客用GitHub服务器挖矿,三天跑了3万个任务,代码惊现中文> ...

  2. JUC包的线程池详解

    为什么要使用线程池 创建/销毁线程需要消耗系统资源,线程池可以复用已创建的线程. 控制并发的数量.并发数量过多,可能会导致资源消耗过多,从而造成服务器崩溃.(主要原因) 可以对线程做统一管理. JUC ...

  3. k8s endpoints k8s未配置选择器的service

    service 其实是一个TCP/UDP 代理 不仅可以代理Pod也可以代理其他的非Pod资源,例如外网的数据库,或者其他的资源 创建未配置选择器的service, service 的对外端口是500 ...

  4. aws eks ebs StorageClass PersistentVolume PersistentVolumeClaim

    aws EBS 提供存储资源 Amazon EBS CSI 驱动程序的安装,请参考https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/ebs- ...

  5. 基于MATLAB的手写公式识别(3)

    基于MATLAB的手写公式识别 图像的膨胀化,获取边缘(思考是否需要做这种处理,初始参考样本相对简单) %膨胀 imdilate(dilate=膨胀/扩大) clc clear A1=imread(' ...

  6. 9.while循环

    while 循环 语法: while( 布尔表达式 ) { //循环内容 } 布尔值为 true 开始循环,为 false 结束循环 死循环:布尔值一直为 true. 例: package com.w ...

  7. 记一次“愉快”的lnmp环境的搭建

    愉快的lnmp环境搭建 后续更新 几个笔记记录 yum remove php-mysql yum -y install cmake autoconf wget gcc-c++ gcc zlib pcr ...

  8. MYSQL中TIMESTAMP类型的默认值理解

    MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样. 1.自动UPDATE 和INSERT 到当前的时间:表:----------- Table   Create Table      ...

  9. hdu4876 深搜+(随机枚举剪枝)

    题意:       给你n个数,让你从选择k个数,然后排成一个环(k个数的顺序随意,但是排成一个环后就不能变了),然后可以在这个环上任意的找连续w个数(w<=k),可以找多次,得到一个值等于当前 ...

  10. MySQL UDF提权执行系统命令

    目录 UDF UDF提权步骤 UDF提权复现(php环境) UDF UDF (user defined function),即用户自定义函数.是通过添加新函数,对MySQL的功能进行扩充,其实就像使用 ...