启动时加载操作系统错误解决方案全集
本地下载
小冰U盘启动盘制作工具V2024版(Win11 PE纯净版)
大小:34.35MB 类别:系统工具
下载:82634
最近有网友询问我开机时提示:加载操作系统错误。 该提示的意思是:加载操作系统时出错。 原因有很多,如硬盘故障、硬盘MBR的启动信息不正确、操作系统的启动文件或配置文件不正确、当前硬盘的启动盘激活不正确或没有激活、启动顺序不正确等。多硬盘、启动方式不正确、磁盘分区不匹配等情况,下面详细分析一下启动时加载操作系统出错的原因及解决办法。
原因一:硬盘数据线没有连接好或者硬盘损坏。
解决方案:
1、如果无法识别硬盘型号,可以在有经验的人员指导下检查硬盘数据线和电源线是否松动。 如有必要,可以尝试重新连接测试。 如果操作后仍无法识别,建议联系服务站检测。
2. 出现此提示。 一般情况下,如果电脑刚搬过或者搬过硬盘,硬盘没有连接好,我们首先检查一下硬盘与主板的数据线是否松动。 我们尝试重新插入它。 如果是重插的话,我们可以在BIOS中查看。 检查里面是否有硬盘,或者可以进入PE确认。 请注意,某些 NVMe 固态无法在 BIOS 中识别。 可以输入PE来确认。 此外,某些 BIOS 可通过 uefi 启动。 安装系统前需要将硬盘分区类型更改为gpt。
原因2:系统启动硬盘没有设置为第一启动项(双硬盘情况下)
此时,电脑会先从第一个设置开始。 如果是双硬盘,并且第二个硬盘在没有分区或激活的情况下启动,则可能会出现加载操作系统错误。
解决方法: 1、开机时快速按F2键或删除键或F1键或Esc键进入BIOS(不同品牌的电脑进入BIOS的按键可能不同)。 对于我的机器,我按 del 进入 BIOS。 进入BIOS后,我们切换到Boot选项,查看Boot Option #1的第一个启动项是否为硬盘,如下图;
2、如果硬盘的第一启动项不是硬盘,我们可以按回车后选择硬盘作为第一启动项。 但是按回车后,我们发现本机找不到硬盘,如下图;
3、然后我们可以进入hraddrivebbspriorities选项查看硬盘是否关闭,如下图;
4.进入hraddrivebbspriorities选项后,我们发现Bootoption#1默认是关闭的。 然后我们按回车查看是否有硬盘。 如果有,直接按回车选择硬盘即可,如下图;
5、此时我们回到Boot选项。 在Boot option #1中按回车即可看到硬盘,然后选择硬盘为第一启动项,如下图;
6、这时候我们返回切换到Exit,点击Exit & Save Changes(也可能是Save Changes and Reset或者Exit Saving Changes,意思是退出并保存)。 也可以按键盘上的F10进行保存。 一般为f10。 部分机器上按F4保存,然后在弹出的窗口中选择YES,如图;
原因三:BIOS中设置的启动模式与分区类型不匹配。 启动模式与分区类型匹配表
这种情况一般出现在当前电脑预装的win10系统,然后使用uefi启动。 有些用户在更改legacy启动模式后,将硬盘分区类型更改为mbr,或者启动模式更改为uefi模式。 后来的磁盘分区类型没有改为gpt分区。
解决方案:
第一种情况:启动模式为legacy时的BIOS设置方法和分区类型设置方法:设置了该模式后,我们还可以将win10改为win7
这里我们以联想笔记本为例:
1、开机后按F2或(FN+F2)进入BIOS,按→方向键切换到Security,选择Secure Boot按回车将其设置为Disabled,中文意思是关闭“Secure Boot”。 如果不关闭该选项,legacy传统模式下系统无法启动,如下图所示;
2、进入Exit选项,将OS Optimized Defaults设置为Disabled或Other OS,表示支持其他操作系统,如下图;
4. 切换到 Boot 并将 Boot Mode 从 UEFI 更改为 Legacy Support。 有些机器也可以使用uefi安装,但安全点还是改为传统模式,如下图;
5、将Boot Priority设置为Legacy First,在弹出的窗口中按F10,选择yes并回车;
(注:更改legacy模式后,注意将硬盘分区格式更改为MBR,请参考详细的GPT分区转MBR分区教程)
6、特别注意的是,我们把uefi改为legacy启动,并且分区由gpt改为mbr后,安装完系统后一定要把第一启动项设置为硬盘启动,因为有些机器同时支持uefi还有legacy,当有些机器的第一个启动项是uefi hdd boot,而你的启动方式是legacy时,启动时会出现An Operating system was not found,或者reboot and selectproper boot device时启动时会出现如下如下图所示。 展示;
第二种情况:BIOS启动方式为uefi,分区类型为mbr,同样会启动失败。 这种情况下,会出现引导找不到加载操作系统的提示错误。
启动方式为uefi时BIOS设置方法及分区类型设置方法:
我们以同一款联想笔记本为例:
1、开机时按F2或(FN+F2)进入BIOS,按→方向键切换到Security,选择Secure Boot按回车将其设置为Disabled,关闭Secure Boot,一定要这里关掉,如下图;
3. 转到“退出”并将“OS Optimized Defaults”设置为“Disabled”或“Other OS”;
4.切换到Boot并将Boot Mode从boot模式更改为uefi。 当然,我们更改uefi启动方式后,注意硬盘分区类型也必须相应更改为gpt才能安装系统,启动项才能被识别。 然后我们到这里,将启动项改为以windows启动管理器开头的启动gpt分区系统。 否则开机时加载操作系统不会出错,如下图;
注意:如果BIOS启动模式改为uefi,分区类型也必须改为gpt:mbr分区改为gpt分区教程
原因4:系统启动文件损坏或启动文件丢失
在这种情况下,启动丢失的情况相对较少。 如果出现这种情况,我们可以找一个支持一键启动修复的工具或者安装程序来修复。 不过还有一种情况,我们进入PE后发现硬盘分区引导丢失。
解决办法:我们下载一个小冰U盘启动制作工具,然后创建PE。 开机时快速按F12(一般为F12,不同品牌进入方式不同),然后进入PE系统,运行,重新调整磁盘分区,然后运行桌面“小冰一键安装”。 如果没有分区,请先创建一个活动分区。 如果有启动分区,打开它,点击一键修复启动,如下图;
最后,如果可以检测到硬盘但修复无效,那么唯一的选择就是重装系统。
以上就是开机加载操作系统出错的原因及解决方法完整汇总。 您可以按照上述步骤一一分析并解决问题。 一般情况下是可以解决的。 更多教程请关注电脑系统城()。
1说明背景
在开发项目的时候,我们经常会遇到一个问题,就是资源是随机存储的,没有按照文件进行分类。 那么就会导致项目的开发越来越混乱,维护成本越来越高。 我实在受不了了,开始整理它,如下所示。 花了一天,甚至更长时间,整理了一下,然后上传到Git,砰,各种冲突,缺少脚本,程序被炸,Mesh不见了,预制件变红了,引擎艺术家拿出了一把刀......
我们应该从源头上避免这种问题,从一开始就规范每个文件夹的路径和每个资源的位置。 但每次手动右键新建文件夹确实很累,尤其是我们的一个项目是作为一个单元存储在 Prefab 中的。 所以花点时间开发一个小功能让他自己创建就好了。
首先我们来看看如何使用这个小工具。 我当前的路径是按照我需要的方式配置的。 如果是艺术生想用的话,打开脚本文件,修改路径即可。 路径也可能暴露,但我没有。 如果你说我懒,我承认。 (完整代码在最后添加)
2 工具预览
打开方法如图,这里的路径可以更改,如下图。
这里分别是两个脚本,我没有把它们写在一起。 一是创建共享资产文件夹。 比如我们有需要共享的纹理,比如Noise,或者Mesh等需要共享的,就将它们全部放在共享文件夹下即可。 让我们来看看:
是的,只有一个创建按钮......
单击“创建”后,控制台提示文件夹创建成功。
所有类型的文件夹都会自动创建。
另一种是以Prefab为单位创建文件夹。 Prefab 当前使用的所有资源都将存在于相应的路径中。 让我们来看看:
弹出一个窗口。 第一个是父母的名字。 默认为 Prefab(可以更改)。 例如,艺术资产通常以 Arts 开头。 您可以在这里填写Arts,然后默认会在Arts下创建资源。
输入预制件名称。 刚才说了,我是按照Prefab对非共享资源进行分类的,所以这里填写的Prefab名称就是Arts目录下的子目录的名称,比如:我填写的是Pref_Test,然后点击确定。
控制台提示我这个路径的文件夹创建成功,并且创建了对应的空文件夹。
3 实现方法
我们来看看如何实现:
我们直接说Prefab代码,因为它实际上包含了创建Public类型的所有步骤。
首先,我们引用命名空间。 第一个是必需的,第三个是编辑器扩展支持。 第二个是在 Visual C# .NET 中读取文本文件 打开并读取文件以进行读访问是输入/输出 (IO) 功能的一个非常重要的部分。 简单来说,就是要创建一个文件夹。 这不是在引擎级别,而是在操作系统级别。
然后往下看:我折叠了代码,主要看到只有一个继承EditorWindow的类,然后这个类中有AddWindow、OnGUI和GenerateFolder三个方法,其中OnGUI是Unity自己的继承方法。 另外两个是自定义方法。
我们看一下第8行,这一行的MenuItem类(MenuItem是一个Editor Attributes类,所以在使用之前加一句:using UnityEditor;)定义了当前工具打开的位置。 必须遵循该路径。 或者其他,添加快捷键等其他使用方法请参考这篇文章()
接下来我们启动第一个方法,编写窗口。 这里我们定义了一个长宽为300-500的Rect,然后调用GetWithRect来创建它。
然后声明两个私有字段。 第一个默认叫Prefab,是一开始打开窗口时的默认词。 如果改为Art,则会在Arts下创建。
第二种方法:重写OnGUI方法,(EditorGUILayout.Space(20);)指的是当前空间距离,20是距离界面上一个GUI块到20的距离,然后分别声明两个字段,通过用户请进来。
然后用if来做判断。 这是一个条件语句:如果单击创建按钮并且两个字段不为空,则运行 (GenerateFolder) 方法并显示创建成功的 GUI。 如果不满足条件(例如,字段为空),则运行下一个 if,弹出警告 GUI,并在控制台上打印错误警告。
最后一种方法:创建文件夹方法。
首先我们定义一个字段并获取这个API,返回路径(即Unity的最外层路径Assets),然后在Arts下创建。 “/”是转义符,代表下一级,是用户输入的字段。
然后调用Directory.CreateDirectory方法在当前目录下创建其他文件夹。 如果您想将其更改为您想要的内容,可以更改此处的目录和路径。
最后调用refresh方法刷新当前修改的数据并打印Log。
4 完整代码
using UnityEngine;
using System.IO;
using UnityEditor;
using System;
public class Createfolder_Prefab : EditorWindow
{
[MenuItem("XRRender/CreateFolder/Create_Prefab_Folder")]
public static void addWindow()
{
Rect wr = new Rect(0, 0, 300, 500);
Createfolder_Prefab window =
(Createfolder_Prefab) EditorWindow.GetWindowWithRect(typeof(Createfolder_Prefab), wr, true,
"创建Prefabs常用文件夹");
window.Show();
}
private string text1 = "Prefabs";
private string text2;
void OnGUI()
{
EditorGUILayout.Space(20);
text1 = EditorGUILayout.TextField("输入父层级名称:", text1);
EditorGUILayout.Space(20);
text2 = EditorGUILayout.TextField("输入Prefab名称:", text2);
EditorGUILayout.Space(50);
if (GUILayout.Button("创建", GUILayout.Width(80), GUILayout.Height(40)) && !string.IsNullOrWhiteSpace(text1) && !string.IsNullOrWhiteSpace(text2))
{
GenerateFolder();
//打开一个通知栏
this.ShowNotification(new GUIContent("创建成功"));
}
if (string.IsNullOrWhiteSpace(text1) || string.IsNullOrWhiteSpace(text2))
{
this.ShowNotification(new GUIContent("字符不能为空或符号"));
Debug.LogWarning("字符不能为空或符号 ");
}
}
private void GenerateFolder()
{
string prjPath = Application.dataPath + "/" + "Arts" + "/" + text1 + "/" + text2;
Directory.CreateDirectory(prjPath + "/" + "Textures");
Directory.CreateDirectory(prjPath + "/" + "Materials");
Directory.CreateDirectory(prjPath + "/" + "Models");
Directory.CreateDirectory(prjPath + "/" + "Prefabs");
Directory.CreateDirectory(prjPath + "/" + "Shaders");
Directory.CreateDirectory(prjPath + "/" + "Materials");
Directory.CreateDirectory(prjPath + "/" + "Animations");
Directory.CreateDirectory(prjPath + "/" + "Audios");
Directory.CreateDirectory(prjPath + "/" + text2 + "_Sence");
//刷新unity资源显示
AssetDatabase.Refresh();
Debug.Log("Arts/"+text1 + "/"+text2+"文件夹" + "创建成功 ");
}
}
这个小工具比较简单。 基本上只是调整API。 希望对所有读者有所帮助。