linux硬盘转windows7,记——第一次上手UEFI电脑,将mbr硬盘的Windows7和Linux转为gpt+uefi启动...

这是篇日记,前面有大量的个人情绪,要看方法的请直接看后面。

--------------------------------------------------------------------------------------------

我终于上手新电脑了

46afd8d3f8e95deaf23213b126cd8635.gif虽然还是用别人的旧电脑

46afd8d3f8e95deaf23213b126cd8635.gif但是总算能够用上近代一点的硬件了,可以抛弃8,9年前的g450了,回顾一下自己的电脑史,感觉真tm艰险

46afd8d3f8e95deaf23213b126cd8635.gif唯一一台自己的新电脑用了两年就挂了,之后只能不断用旧电脑,还喜欢上捡垃圾

46afd8d3f8e95deaf23213b126cd8635.gif凄凉。

这次别人退落来的电脑还真是有点不足,一个硬盘位(大事),没vga(小事),amd显卡(中事),i5低压(小事),重(小事);当然也有好的方面,例如蓝牙,8+4内存。

但是一个硬盘位就导致我今天的要做的事了。

现在固态贵过黄金,买个小的不够用,买个大的没这个资本,迫不得已只能继续用旧机的硬盘,旧的硬盘里面原本就有已经安装好的Windows和Linux,只不过是mbr硬盘下安装。现在都用上uefi的电脑了,还用mbr就始终有点不甘心,况且开机grub2进Windows时会花屏的,所以就下定决心搞他一波转uefi启动。

---------------------------------------------------------------

先是备份好Linux的重要资料,毕竟没有独立home。

再百度好Windows7转uefi的方法,很多都是教你如何使用uefi模式安装win7,只有几篇是现成mbr的win7转uefi的,不过方法够用了。先搞定Win7。

------------------------------【Win7】-----------------------------

Windows的转换不难,安装教程来基本没事。

1。做一个先进点的U盘pe,win8以上的,支持uefi启动的。

2。进去用DG将现在的mbr硬盘转换为gpt硬盘。

【此处注意一下,Linux的分区是不是被添加上盘符了,是的话删除掉盘符,也可修复Win7后在Win7下删除。不急。】

3。继续用DG分一个ESP格式的分区出来,尽量几百m以上吧,反正我直接给了1G。

4。给格式化好的ESP分区一个盘符。然后关闭DG,

5。看看“计算机”里面有没有ESP分区,并且能够显示大小,能够打开的。

如果ESP分区不能显示大小,不能打开,可以重启PE看看,还不行就按照步骤4搞几次。反正确定ESP分区能用才行。

5。使用PE的uefi启动修复工具,按提示输入系统所在分区,输入ESP分区盘符(要确认好)

6。关机/重启 ,拔掉u盘,进BIOS看看有没有Windows的启动项,我的提示不支持安全模式,所以我是关闭安全模式了。

7。开机如果能进Win7就ok了,如果不行就重复上面的步骤吧。

8.开机后应该会提示不是正版之类的,自行想办法吧。我使用一个OEM的工具搞定的。

-----------------------------------------------------------------------

搞定Windows之后就到Linux了,我百度了一圈,发现这方面的资料很少,所以换了个思维,百度grub2的uefi修复。百度到两三篇有用的文章用于实践。

Linux的修复无非就是重装一个uefi模式的grub2。

主要参考了以下文章:

http://tieba.baidu.com/p/4055631072

http://cnzhx.net/blog/restore-grub2-boot-menu-with-uefi/

还有一些现在找不到,当时用手机百度的,再次还得感谢各位的贡献,谢谢。

最后我基本是按照第二篇的步骤修复了,多篇文章综合起来是为了确定这是个通用的方法。

我这硬盘里的Linux是deepin,垃圾东西,要不是想搞一下mbr的Linux转efi,就™直接装过一个Linux。

我找来一个U盘Linux——slax,之前装来玩的,现在刚好派上用场。

开始按照各篇文章的方法都无功而返,后来发觉文章里的grub和我的grub有点不同,后来我推测文章中的都是修复原本是uefi的Linux,而我这个是mbr的Linux,

所以系统里的grub并没有uefi相关的东西,所以每到install时都会出现错误。

由于slax是一个很精简的系统。里面的grub也没什么东西,后来我就回到Windows,用虚拟机加载物理硬盘,引导manjaro的iso进入live环境

将里面的grub整个复制到了/lib 和/usr/lib/里面,deepin里的/lib 里原本没有grub的,但我看到之前错误提示好像有这个路径的grub,所以就复制一份到这里了,以防万一。

万事具备了,原本打算直接在虚拟机里修复的,但是貌似硬盘有问题,用一阵就会自动冻结了。所以还是返回slax修复。

-----------------------------【Linux】---------------------------------

用的是第二篇文章的方法,挂载时小有不同,根据不同的live,自行判断使用命令是否需要加sudo,我的slax是root登录的,所以不用。

1.首先确认你的系统组成,有没有独立/home ,/boot之类的,有的话到时全都要挂载到相应位置。

2.由于我之前的是mbr系统,所以/boot里并没有efi这个文件夹,所以我先在文件管理器里创建了一个,然后再在文管里卸载这个分区。

3.先看看以前的系统在哪个/哪些分区,esp又是哪个分区,

fdisk -l

然后我知道了deepin的/在 /dev/sda5,ESP在/dev/sda4。记好。

4.挂载 /到 现在系统的/mnt,即是挂着sda5到/mnt

mount  /dev/sda5  /mnt

5.挂载 ESP分区到 之前系统的/boot/efi,即是挂着/dev/sda4到/mnt/boot/efi ,记住此时/mnt 就是deepin的/

mount /dev/sda4  /mnt/boot/efi

6.挂载其他必要文件夹,下面的--bind是两个英文的减号

mount  --bind  /sys  /mnt/sys

mount  --bind  /proc  /mnt/proc

mount  --bind  /dev  /mnt/dev

7.然后chroot到之前系统,不懂没关系,我也不懂,反正照做

chroot  /mnt

此时就进入了chroot的模式,现在终端所操作的是之前的系统,命令也是哪个系统的。

8.安装grub2引导,命令用grub还是grub2完全看你那个系统用的是哪个

grub-install  --target=x86_64-efi

由于我已经复制了完整的grub到deepin了,所以这次顺利安装完成

按文章说的,如果是安全启动Secure Boot,还需要下面这行指令,

shim-install

由于我关闭了安全启动,所以我没进行这一步。

9.重建grub2的菜单,下面的各个grub按你自己的实际情况来写,,看看系统的grub命令带不带2的,看看boot里的是grub还是grub2就好了

grub-mkconfig -o /boot/grub2/grub.cfg

10。退出chroot,

exit

这就退出了

11.卸载刚才挂载的分区,我的顺序和挂载相反,不知道有没有这个讲究的,这里的卸载我发现了奇怪的现象(可能是我少见多怪),有的系统umount的是挂载的设备,有的是挂载的点

umount  -R /mnt

12.此时,按道理就应该可以了,但是事实并不行,开机uefi里没有deepin的选项,可能需要另外一篇文章说的注册efi,但是我直接在Win7用PJ版的easyuefi添加deepin的选项了。

13.进入Windows7 ,下载easyuefi PJ版,摸索一下使用方法,添加一个Linux的启动项,选择对应的efi文件,保存就搞定了。

14,重启,找到deepin的启动项了,正常进入系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20 个 .NET 6 新增的 API

DateOnly & TimeOnly.NET 6 引入了两种期待已久的类型 - DateOnly 和 TimeOnly, 它们分别代表DateTime的日期和时间部分。DateOnly dateOnly new(2021, 9, 25);Console.WriteLine(dateOnly);TimeOnly timeOnly new(19, 0, 0);Console.WriteLine(timeOnly); DateOnly date…

中国学生的最大噩梦,都来源于这个男人

全世界只有3.14 % 的人关注了爆炸吧知识会通中西经世致用说到中国古代的“全才”,一般人都会脱口而出沈括、张衡、祖冲之....而在明朝,有这么一位少有人知的“全才”式科学家,他的研究领域包括天文、历法、数学、军事、农业、水利....和上述的…

BASE64 编码和解码

依赖jar: import org.apache.commons.codec.binary.Base64; BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输。更具体地说,BASE64算法主要用于转换二进 制数据为ASCII字符串格式。Java语言提供了一个非常好的BA…

类和类之间的关系解析-1

一、泛化关系 泛化关系也称继承关系,指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识&#xf…

转:智能卡测试操作系统技术

具有稳定、可靠的卡内操作系统是智能卡正常工作的基础,智能卡操作系统控制外界与智能卡之间的通信,管理卡片的存储空间,并且在卡内对于各种命令进行处理,所以在COS 开发过程中有必要对COS 进行充分且全面的测试。COS 的主要特点: …

Android之添加快捷方式(Shortcut)到手机桌面

在两个手机上测试,发现小米手机上添加了快捷方式后不能移除,三星手机可以。权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限。 <!-- 添加快捷方式 --><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"…

C# 使用阿里云发送短信

最近有个项目&#xff0c;短信服务使用的是阿里云的&#xff0c;想要使用阿里云平台的短信服务&#xff0c;首先要注册一个阿里云账号&#xff0c;由于发送短信消息需要用到短信签名、短信模板ID&#xff08;已添加并通过审核&#xff09;1、注册阿里云账号&#xff08;地址&am…

如果太阳系毁灭,这种神秘粒子就是真凶!

185年12月7日这一天&#xff0c;东汉中平二年乙丑&#xff0c;一位天文学家观测到天空出现了一颗极其明亮的星体&#xff0c;他并不知道这意味着什么。这颗突然出现于苍穹之中的星星在夜空中照耀了八个月后&#xff0c;又忽然消逝了。《后汉书天文志》中留下了这段记载&#xf…

Centos7 安装gitlab 8.7.5

简介&#xff1a;GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的web服务。1. Web框架使用Ruby on Rails。2. 基于MIT代码发布协议。3. 需要gitolite协同工作。安装要求&#xff1a;ruby 1.9.3MySQLgitgitoliteredis如果…

ocx c++

引用&#xff1a;http://www.baike.com/wiki/ocx ocx&#xff0c;使用它可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。 编辑摘要目录 [ 隐藏 ]1 定义2 用途ocx - 定义 ActiveX控件.ActiveX控件是可重用的软件组件。 ocx - 用途 使用它可以很快地在网址、台式…

男人会为女人改变多少

男人会为女人改变多少 女人都想改造男人   从前有人说&#xff0c;女人征服男人&#xff0c;然后通过男人征服世界&#xff1b;而现在是女人改造男人&#xff0c;然后男人按照女人的意愿改造世界。女人喜欢男人&#xff0c;这八成是错不了的&#xff0c;但女人永远不满意男人…

Andorid之BINDSERVICE的使用方法总结

bindService用于绑定一个服务。这样当bindService(intent,conn,flags)后,就会绑定一个服务。这样做可以获得这个服务对象本身,而用startService(intent)的方法只能启动服务。 bindService方式的一般过程: ①新建Service类BindService。在BindService类里新建内部类MyBinder…

linux说明管道的作用,Linux管道及重定向的用途是什么

1、重定向在Linux中有时我们在命令的执行过程中&#xff0c;不想将执行结果显示到屏幕上&#xff0c;或者将其结果输出到其他位置这时就需要重定向来解决这个问题了首先了解一下Linux中的3种I/O设备&#xff1a;0&#xff1a;标准输入1&#xff1a;标准输出2&#xff1a;标准错…

磨刀不误砍柴工—Exceptionless搭配log4net记录日志

Exceptionless专注于.net平台提供实时错误和日志报告。主要包括&#xff1a;错误通知、智能分组异常、详细错误报告堆栈跟踪、支持离线、UI查看重要错误和确定优先级、仪表板上的统计信息和趋势、对异常标记为已修复&#xff0c;监视回归、将事件标记为关键等。主要是用于展示、…

豆瓣9.6分!再一次被BBC的纪录片震惊!

英国广播公司BBC的纪录片素来就是高质量的代名词&#xff0c;推出的《地球无限》(Planet Earth)、《地球的力量》(Earth The Power of the Planet)、《冷血生命》(Life In Cold Blood)等片不仅在英国播放时获得极高收视&#xff0c;还获得艾美奖等多个国际奖项的肯定&#xff0…

C++中事件机制的简洁实现

事件模型是被广泛使用的好东西&#xff0c;但是C标准库里没有现成的&#xff0c;其他实现又复杂或者不优雅&#xff0c;比如需要使用宏。现在VC11可以用在XP下了&#xff0c;那么就痛快的拿起C11提供的先进设施组合出一个轻便的实现吧。 为了达到简洁的目的&#xff0c;需要放弃…

监测京东商品价格波动

写着玩的&#xff0c;不用再去每天看要买的商品是否降价&#xff0c;如果降价就发布一条推文。 #!/usr/bin/env python # coding: utf-8 import tweepy import requests import re import sys import datetime import json # 京东的编码是gbk reload(sys) sys.setdefaultencodi…

Andorid之Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法总结

在调试代码的时候我们需要查看调试信息&#xff0c;那我们就需要用Android Log类。 android.util.Log常用的方法有以下5个&#xff1a;Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE&#xff0c;DEBUG,INFO, WARN&#xff0c;ERROR。 1、Log.v 的调…

SharePoint 2010 master page 控件介绍(5):其他

转&#xff1a;http://blog.csdn.net/lgm97/article/details/6409227 <!-- 处理搜索按下“enter”键和点击后退按钮 --> <input type"text" name"__spDummyText1" style"display:none;" size"1"/> <input type"te…

linux iotop rpm,iotop命令_Linux iotop 命令用法详解:用来监视磁盘I/O使用状况的工具...

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI&#xff0c;其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat&#xff0c;nmon等大多数是只能统计到per设备的读写情况&#xff0c;如果你想知道每个进程是如何使用IO的就比较…