在磁盘分区时,前面两个esp和msr是什么东西?

在磁盘分区时,前面两个esp和msr是什么东西?,第1张

一、esp即EFI系统分区

1、全称EFI system partition,简写为ESP。msr分区本身没有做任何工作,是名副其实的保留分区。ESP虽然是一个FAT16或FAT32格式的物理分区,但是其分区标识是EF(十六进制) 而非常规的0E或0C。

因此,该分区在 Windows *** 作系统下一般是不可见的。支持EFI模式的电脑需要从ESP启动系统,EFI固件可从ESP加载EFI启动程序和应用程序。

2、ESP是一个独立于 *** 作系统之外的分区, *** 作系统被引导之后,就不再依赖它。这使得ESP非常适合用来存储那些系统级的维护性的工具和数据,比如:引导管理程序、驱动程序、系统维护工具、系统备份等,甚至可以在ESP里安装一个特殊的 *** 作系统。

3、ESP也可以看做是一个安全的隐藏的分区,可以把引导管理程序、系统维护工具、系统恢复工具及镜像等放到ESP,可以自己打造“一键恢复系统”。而且,不仅可以自己进行DIY,还要更方便、更通用。

二、msr分区是保留分区

1、windows不会向msr分区建立文件系统或者写数据,而是为了调整分区结构而保留的分区。在Win8以上系统更新时,会检测msr分区。msr分区本质上就是写在分区表上面的“未分配空间”,目的是微软不想让别人乱动。

2、msr分区的用途是防止将一块GPT磁盘接到老系统中,被当作未格式化的空硬盘而继续 *** 作(例如重新格式化)导致数据丢失。GPT磁盘上有了这个分区,当把它接入XP等老系统中,会提示无法识别的磁盘,也无法进一步 *** 作。

扩展资料:

磁盘分区:

计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。

主分区是能够安装 *** 作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。

目的:

分区允许在一个磁盘上有多个文件系统。有许多理由需要这么做:

1、有利于管理,系统一般单独放一个区,这样由于系统区只放系统,其他区不会受到系统盘出现磁盘碎片的性能影响。

2、碍于技术限制(例如旧版的微软FAT文件系统不能访问超过一定的磁盘空间;旧的PC BIOS不允许从超过硬盘1024个柱面的位置启动 *** 作系统)

3、如果一个分区出现逻辑损坏,仅损坏的分区而不是整个硬盘受影响。

4、在一些 *** 作系统(如Linux)交换文件通常自己就是一个分区。在这种情况下,双重启动配置的系统就可以让几个 *** 作系统使用同一个交换分区以节省磁盘空间。

5、避免过大的日志或者其他文件占满导致整个计算机故障,将它们放在独立的分区,这样可能只有那一个分区出现空间耗尽。

6、两个 *** 作系统经常不能存在同一个分区上或者使用不同的“本地”磁盘格式。为了不同的 *** 作系统,将磁盘分成不同的逻辑磁盘。

7、许多文件系统使用固定大小的簇将文件写到磁盘上,这些簇的大小与所在分区文件系统大小直接成比例。如果一个文件大小不是簇大小的整数倍,文件簇组中的最后一个将会有不能被其它文件使用的空闲空间。

这样,使用簇的文件系统使得文件在磁盘上所占空间超出它们在内存中所占空间,并且越大的分区意味着越大的簇大小和越大的浪费空间。所以,使用几个较小的分区而不是大分区可以节省空间。

8、每个分区可以根据不同的需求定制。例如,如果一个分区很少往里写数据,就可以将它加载为只读。如果想要许多小文件,就需要使用有许多节点的文件系统分区。

9、在运行Unix的多用户系统上,有可能需要防止用户的硬连结攻击。为了达到这个目的,/home和/tmp路径必须与如/var和/etc下的系统文件分开。

分区类型:

硬盘分区之后,会形成3种形式的分区状态;即主分区、扩展分区和非DOS分区。

非DOS分区:

在硬盘中非DOS分区(Non-DOS Partition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个 *** 作系统使用,对主分区的 *** 作系统来讲,是一块被划分出去的存储空间。只有非DOS分区的 *** 作系统才能管理和使用这块存储区域。

主分区:

主分区则是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他 *** 作系统。

此段程序损坏将无法从硬盘引导,但从软驱或光驱引导之后可对硬盘进行读写。

扩展分区:

而扩展分区的概念是比较复杂的,极容易造成硬盘分区与逻辑磁盘混淆;分区表的第四个字节为分区类型值,正常的可引导的大于32mb的基本DOS分区值为06,扩展的DOS分区值是05。如果把基本DOS分区类型改为05则无法启动系统 ,并且不能读写其中的数据。

如果把06改为DOS不识别的类型如efh,则DOS认为该分区不是DOS分区,当然无法读写。很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。

磁盘分区管理方式:

磁盘分区的管理方法已经不能完全满足系统的需要了,所以 *** 作系统分都有了各种新的磁盘管理方法了。比如windows已经出现了一种动态磁盘的管理方法,linux的LVM管理方法等等。

参考资料:百度百科—磁盘分区

步骤1:配置Rapberry Pi

我使用了Raspberry Pi 3 Model B +,但是,说明应该适用于其他版本,尤其是在Model B上。

首先,我们需要在Pi上启用UART。

转到RPi配置设置。在终端窗口中运行

$ sudo raspi-config

转到 5个接口选项,,然后选择 P6 Serial。 然后,您提示是否要通过串行访问登录shell? select ,因为我们不想使用UART无头运行Pi,而是与其他设备进行通信,因此在出现以下问题时会在以下屏幕上显示您要启用串行端口硬件吗?选择。根据提示重启树莓派。现在应该为Raspberry Pi 3的RX和TX引脚上的串行通信启用UART。注意:此后,在/boot/config的末尾应出现一个新条目 enable_uart = 1 。 txt。

步骤2:将ESP-01连接到Raspberry Pi

现在,我们开始进行所有接线

首先,在RPi上标识 3.3V电源 和 GND(接地) 》引脚为ESP8266微控制器供电, TXD(发送) 和 RXD(接收) 引脚进行通信,并且 两个通用引脚 来 *** 作ESP8266(可以将其设置为高电平或低电平)。在pinout.xyz上查找引脚排列或输入端子:

$ pinout

其次确定ESP-01上的必要引脚。但是从一开始我们就需要了解ESP-01引脚。我在互联网上找到了许多有用的资源,可以在这方面为您提供帮助。这个是最短的,而这个给出了更好的解释。简而言之:共有8个引脚,我们将需要7个引脚,分别是 VCC电源 和 GND(接地) 电源引脚, TXD 和 RXD 引脚进行通信,以及 RST (重置), CH_PD (芯片掉电,有时标记为CH_EN或芯片启用)和 GPIO0 来 *** 作该模块。 ESP8266通常在常规模式下运行,但在将代码上传到ESP8266时,会注意其处于闪存模式。对于常规或正常运行模式,模块需要连接到电源(显然),但引脚CH_PD也必须通过10K连接到VCC(此值在不同的情况下会有所不同,我发现值降至3K)上拉引导时的电阻。另一方面,要进入闪存或编程模式,您需要在引导时将GPIO0引脚接地。为防止接地时流过GPIO0的电流不受限制,建议通过一些300Ω-470Ω低阻电阻将GPIO0接地(有关更多信息,请参见此处)。顾名思义,RST引脚复位(或重启)MCU。在正常 *** 作期间,它可以通过10K上拉电阻连接到VCC,但应接地以复位微控制器。虽然始终可以使用物理按钮将RST和GPIO0引脚接地(甚至手动连接导线以模拟按钮),但使用Raspberry Pi引脚在模块的RST和GPIO0上设置高低电压会更令人愉悦。引脚。然后也就不需要10K和470Ω电阻了。

现在了解ESP-01引脚的特性了,我们就可以开始将所有东西连接在一起了。您可以将下表和上图用作参考:

ESP-01 《-》 Raspberry Pi

VCC(3.3V)《-》引脚# 1(3.3V)

GND 《-》引脚6(GND)

TXD 《-》引脚#10(RXD/BCM 15)

RXD 《-》针#8(TXD/BCM 14)

CH_PD 《-10K电阻器-》针#1(3.3V)

RST 《-》针#3(BCM 2 )

GPIO 0 《-》引脚#5(BMC 5)

最后连接VCC引脚。您连接到VCC引脚的实例将打开Wi-Fi模块。使用 screen 或 minicom 检查RPi和ESP8266是否可以使用UART通讯(注意:您可能需要安装 screen 或 minicom ,因为默认情况下似乎未在Raspbian上安装它们)。

使用屏幕运行:

$ sudo screen /dev/serial0 115200

使用minicom运行:

$ sudo minicom -b 115200 -o -D /dev/serial0

注意:许多在线参考资料建议连接到/dev/ttyAMA0 上的ESP8266,但根据RPi文档,此 *** 作不适用于RPi 3或更高版本(包括零W)。通过/dev/serial0 或/dev/ttyS0 连接。

进入屏幕或minicom后,使用AT指令与ESP8266通讯。输入AT,然后按Enter,然后按Ctrl + J发送命令。您应该得到好的回应。可用的AT命令列表可在espressiff.com或此处找到。

将设备物理连接并相互交谈,我们就可以开始对RPi GPIO引脚进行编程,最后对ESP8266本身进行编程。

步骤3:软件设置(用于 *** 作的Python和用于编程的Arduino IDE)

PART 1.使用python切换ESP8266模式

如上所述使用RPI的GPIO引脚切换ESP8266的 *** 作模式非常方便。我编写了两个基本的python代码,将ESP8266置于常规或编程模式。

常规模式:要将微控制器置于常规 *** 作模式,我们只需为其供电并通过上拉连接CH_PD电阻连接到VCC,但是要将MCU从编程模式切换到正常模式,我们需要对其进行重置(请考虑重启)。为此,我们将短暂拉低连接到ESP-01上RST引脚的RPi GPIO(默认情况下,我用于重置的RPi引脚设置为HIGH)。有多简短?对我来说,这是一个投机问题。您可以尝试不同的时间间隔,但我发现200-500毫秒的效果很好。如果您有更好的主意,请在评论中写。将代码另存为 reset.py 。

#!/usr/bin/python

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD) # sets GPIO identification by physical pin numbers

resetPin = 3 # identify RPi physical pin connected to ESP8266 RST pin

GPIO.setup(resetPin, GPIO.OUT) # set reset pin as output

GPIO.output(resetPin, GPIO.LOW) # drop voltage on RST pin

time.sleep(.2) # wait for .2 s

GPIO.output(resetPin, GPIO.HIGH) # restore voltage on RST pin

GPIO.cleanup() # reset pins on RPI to prevent future runtime warnings

编程模式:要将MCU置于编程模式,我们需要为ESP8266供电GPIO0接地,或者在引导时将其复位并接地GPIO0(再次,确切的电压降持续时间我不太清楚,因此请不要严格按照使用的值进行 *** 作)。将代码另存为 flash.py 或在下面下载。动作的顺序如下:

上拉RST引脚

上拉GPIO0引脚

上拉RST引脚

上拉GPIO0 pin

#!/usr/bin/python

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD) # sets GPIO identification by physical pin numbers

resetPin = 3 # identify RPi physical pin connected to ESP8266 RST pin

flashPin = 5 # identify RPi physical pin connected to ESP8266 GPIO0 pin

GPIO.setup(resetPin, GPIO.OUT) # set reset pin as output

GPIO.setup(flashPin, GPIO.OUT) # set flash pin as output

GPIO.output(resetPin, GPIO.LOW) # drop voltage on RST pin

time.sleep(.2) # need for this waiting is speculative

GPIO.output(flashPin, GPIO.LOW) # drop voltage on GPIO0

time.sleep(.2) # need for this waiting is speculative

GPIO.output(resetPin, GPIO.HIGH) # start booting ESP8266

time.sleep(.5) # wait for ESP8266 to boot

GPIO.ouput(flashPin.GPIO.HIGH) # restore voltage on

GPIO pinGPIO.cleanup() # reset pins on RPI to prevent future runtime warnings

在终端更改权限中:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

从现在开始,只要您需要输入在终端上运行编程模式:

$ python /flash.py

上传代码以进入正常运行模式后运行:

$ python /reset.py

此时,您可能还需要更新ESP8266固件。有很多关于如何执行此 *** 作的在线教程,因此我将不做详细介绍。

PART2。设置Arduino IDE

如果您已经安装了Arduino IDE,则可能仍要浏览本节,以确保您的IDE已为ESP8266准备就绪。

在Rapberry Pi上,您可以使用Arduino IDE来对ESP8266进行编程。有两种方法可以在RPi上安装IDE:

,使用apt-get install

从存储库通过命令行从arduino.cc下载并手动安装。

我强烈建议您走后一条路。仓库中的IDE版本似乎已过时,您一定要准备更多工作,才能开始对ESP8266进行编程。为避免麻烦,请转到Arduino.cc下载页面并下载Linux ARM版本。接下来解压缩并安装:如果下载文件的名称类似于 arduino-XYZ-linuxarm.tar.xz ,则在下载文件夹中运行:

$ tar -xvf arduino-X.Y.Z-linuxarm.tar.xz

这应将文件解压缩到 arduino-XYZ 文件夹。运行:

$ sudo 。/arduino-X.Y.Z/install.sh

这应该安装IDE。安装完成后,启动IDE。

从Arduino IDE转到 File》 Preferences 。在首选项窗口的底部查找“ 其他Board Manager URL ”。在“其他板管理器URL”字段中输入 http://arduino.esp8266.com/stable/package_esp8266com_index.json ,然后单击“确定”按钮。

转到工具》董事会:XXX》董事会经理。在窗口中使用搜索或向下滚动,选择ESP8266开发板菜单,然后单击安装。等待安装完成并关闭窗口。

再次转到工具》开发板:XXX ,然后寻找ESP8266开发板。选择通用ESP8266模块。

现在,IDE已准备好对ESP8266进行编程。输入所需的代码或将其粘贴到IDE窗口中并保存。点击上传。从终端运行 flash.py ,这应该使您的电路板进入编程模式。等待几分钟,以便IDE完成编译和上传(注意:ESP-01通常带有2个LED,在代码上传时蓝色LED会闪烁)并运行 reset.py 。现在您的ESP-01板就可以执行任务了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7676754.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存