• win10下迁移EFI分区表


    前言

    在硬盘价格大跳水的时代,一台笔记本装载两个硬盘已经是很稀松平常的事,有的游戏本甚至内置了4个硬盘插槽。但是在双盘场景下,有时候会莫名遇到系统文件和EFI系统分区表(可以理解为MBR的变种)分离在2个硬盘中的问题。大部分时候这都没什么,不会有任何问题,直到我们想要换掉其中一个硬盘或者电脑送维修的时候。当售后客服提醒我,工程师可能会进入系统检测的时候,我才发现事情并不简单,考虑到数据磁盘中500G的学习资料和工程师小哥的身体,我决定拆下数据盘,仅保留系统盘,再送修。然后,BOOM~,计算机开始报错“无法找到系统启动驱动”,电脑再也无法启动。究其原因,就是上面所说的,EFI系统分区表在数据盘中

    思路

    思路基本很明了啦,就是想办法把EFI分区表迁移到系统盘中

    虽说是迁移分区表,实际上我们的解决思路是重新创建一个,分2步:首先创建一个EFI系统分区,然后从X:windows(即系统镜像,每个人的系统盘位置不同,一般情况是C盘)复制启动文件到EFI分区,最后通过BIOS修改第一顺序启动盘即可。

    这里涉及两个工具,且都是win10自带的——Diskpart和BCDBoot。diskpart是win10内置磁盘管理工具,我们平常的创建分区、分配盘符、格式化分区等基本操作,都可以通过该工具实现。详细指令可以参考这里。bcdboot是一个用于设置系统启动分区的工具,详细指令参考这里

    具体操作

    创建分区

    首先以管理员身份打开windows terminal
    执行diskpart指令,可进入Diskpart界面

    然后执行以下指令,

    list disk #列出全部的磁盘
    
    select disk {index} # 选定你想要创建的EFI系统分区的磁盘,{index}表示硬盘索引号,如0、1、2等
    
    list partition # 列出当前磁盘的全部分区
    
    select partition {index}# 选一个还剩至少100M的磁盘分区,{index}为分区索引
    
    shrink desired=100 # 申请100M空间,EFI分区表标准都是100M
    
    create partition efi size=100 # 创建efi分区,大小为100M
    
    format quick fs=fat32 #格式化分区为fat32文件系统
    
    assign letter=s # 挂在当前分区盘符为s(为了避免和常用的cdef等卷名重复)
    
    list volume # 列出当前磁盘的全部卷,验证是否成功创建S盘
    
    exit
    

    复制EFI启动文件

    bcdboot C:windows /s S:
    

    该指令的意思是,复制系统盘C:windows下的启动文件,到S分区(也就是上面创建的EFI分区),其中/s是复制启动文件的选项指令。

    最后,进入BIOS界面(一般是_F2_或者_Del_按键),修改第一启动顺序即可。至于数据盘中的EFI分区表,你可以使用diskpart的clean指令删除掉,或者干脆不用管。这个分区一般是隐藏的,占用空间也不大,留着也无伤大雅。

    我变秃了,但是没变强
  • 相关阅读:
    获取远程图片的Blob资源
    Vue使用SCSS进行模块化开发
    Vue设置页面的title
    Vue里边接口访问Post、Get
    module.exports 、 exports 和 export 、 export default 、 import
    Vue设置不同的环境发布程序
    记一个鼠标略过时候的css动画
    关于正则表达式中^和$
    [LOJ#2305]「NOI2017」游戏
    [LOJ#6437][BZOJ5373]「PKUSC2018」PKUSC
  • 原文地址:https://www.cnblogs.com/Franken-Fran/p/win10_efi_move.html
Copyright © 2020-2023  润新知