前言 Linux MBR(Master Boot Record,主引导记录)是硬盘的第一个扇区,通常位于磁盘的起始位置。它包含引导加载程序代码和分区表信息。...sdb就可以使用了 备份 通过执行这个命令,您将硬盘的第一个扇区备份到指定的文件中。...bs=512: 设置块大小为512字节,这是硬盘扇区的大小。 count=1: 指定要复制的块数,这里是1,表示只复制一个扇区。...2.损坏MBR扇区 本步骤就是模拟MBR扇区故障 这个dd命令用于将零填充写入硬盘 /dev/sda 的第一个扇区(MBR)。...bs=512: 设置块大小为512字节,这是硬盘扇区的大小。 count=1: 指定要写入的块数,这里是1,表示只写入一个扇区。
想一下,当 Linux 想在一个带 4096 字节扇区的新磁盘上读写这些数据结构时,会发生什么事情。...另一方面,对不一致数据结构的写操作需要磁盘的固件首先读取两个扇区,修改两个扇区的分区,然后写两个扇区。该操作所需时间比 4096 字节占用一个扇区时所需时间多。因此,性能下降。...遗憾的是,直到最近,大多数 Linux 分区工具还没有创建以这种方式对齐的分区。下一小节 对齐分区,描述如何使用普通 Linux 分区软件对齐分区。...磁盘是通过全局唯一标识符(GUID)Partition Table (GPT) 系统进行分区的,其中已对齐的分区起始于逻辑扇区 40,而未对齐的分区起始于逻辑扇区 34(使用 GPT 磁盘与默认大小的分区表时的第一个可用扇区...一个脚本执行了一系列磁盘 I/O 操作,包括创建一个新文件系统、提取一个未压缩的 Linux 内核原始码到测试驱动上、复制原始码到驱动、读取测试驱动上刚才未压缩的文件、从驱动上读取原始码、删除 Linux
工作时我们都会定期备份一些文件,首先要修复MBR扇区,就必须在其他的硬盘中有MBR扇区的备份文件,并且我们还有准备系统盘(进入急救模式) 如果MBR扇区故障,那么在开机时就会出现 “Operating...system not found ” 的提示信息,表示无法找到可用的操作系统,因此无法启动主机。
最近使用FATFS读写NANDFLASH,研究了一下小型文件系统的中的簇和扇区的具体含义,簇是文件系统使用的单位,扇区是物理介质(FLASH)使用的单位。...FLASH的一个扇区为1K。新建的文件大小为1K,那实际文件系统要为他分配1个簇(文件系统需要操作整数倍簇),就是4K,需要读写至少四个扇区。...),如果需要操作多个硬盘且扇区大小不一样,FF_MIN_SS和FF_MAX_SS这两个参数的区间范围需要包括所有需要的扇区大小。...并在函数disk_ioctl()中设置每个硬盘的扇区大小。每一个硬盘的扇区大小FATFS可通过函数disk_ioctl()获得。...扇区大小指的是FLASH操作的最小单位,这个需要根据使用的不同介质具体定。比如SD卡需要查询支持的扇区大小并通过命令设置,nandflash需要根据自己使用的均衡算法定。
linux常用于读取文件内容指令主要有以下七种: cat,tac,nl,more,less,head,tail cat 文件名 –将文件内容显示在屏幕上 cat -n 文件名 –将文件内容显示在屏幕上...,并显示行号 cat -b 文件名 –将文件内容显示在屏幕上,并显示行号,但是不显示空白行行号 tac则是和cat反过来的(名字都是反过来的) tac 文件名 –将文件内容显示在屏幕上,但是是从最后一行开始往前显示...tac -s separator 文件名 –从separator往后倒序输出,倒序输出不包含separator,输出到最后一行再按照顺序将separator之前的内容输出 tac -b -s...ten [root@localhost tmp]# tac readfile.txt seven eghit nine ten four five six two three One tac和cat显示的顺序是相反的...readfile.txt 1 one 2 two three 3 four five six 4 seven eghit nine ten 可以执行翻页操作的读取文件内容指令
读取命令行的输入 读取命令行的输入,如下List-1所示: List-1 mjduan@dmj:/tmp$ more read.sh echo -n "Enter your name:" read...echo后面的-n表示不换行,不然光标就不会停在name后面 read后面加上一个-p,这样read命令可以显示提示,且将结果存在变量email中,如下List-2 加上一个-s就是读取密码...,这种不会将输入的文本显示出来....read.sh Enter your name:mjduan Hello mjduan Enter your email:126@mail.com Your email:126@mail.com 读取文件的内容.../bin/bash count=1 //赋值语句,不加空格 cat test | while read line //cat 命令的输出作为read命令的输入,read读到的值放在line中 do
在MBR分区中,第一个扇区的内容是十分关键的,它是主引导记录,如果操作系统需要按照MBR分区形式安装在这个硬盘中,那么需要在主引导记录里填入引导系统启动的代码。...此时内存第一次有了操作系统的代码,第一个扇区的内容其实就是linux/boot/bootsect.s的内容,其主要功能就是把第二批第三批代码加载到内存中规划好的位置。...,将指定扇区的内容读取的指定的内存位置。...在bootsect中,读取的是从第二个扇区开始的4个扇区,加载到0x90200(SETUPSEG)处,这些内容对应linux/boot/setup.s这个文件。...此时内存的视图如下: linux内存.png所以,我们可以知道,当BIOS运行后,会通过int0x19中断读取第一扇区的内容,BIOS并不管这个扇区里是否有内容。
这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。...3.1 情况A:卷引导记录 上一节提到,四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做"卷引导记录"(Volume boot record,缩写为VBR)。...计算机先读取扩展分区的第一个扇区,叫做"扩展引导记录"(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。...计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。...这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。
磁盘第一个扇区记录的信息为 主引导分区 可以安装引导加载程序的地方 分区表,记录整块硬盘分区的状态 主引导分区在系统开机的时候会主动读取这个区块的内容。...BIOS会依据用户设置去取得能够开机的硬盘,并且将该硬盘放到第一个读取扇区的的MBR中(即扇区的主引导程序)此时BIOS圆满。接下来执行MBR内的引导加载程序进行工作。...1.BIOS 识别第一个开机的设备 2.MBR 第一个可开机设备的第一个扇区内的主引导分区,将会加载引导程序。...,即windows和linux的时候) 多系统 此时在一个硬盘的全部柱面区装有两个系统为linux和windows windows拥有转交给其他引导分区的loader 总结 每个扇区拥有自己的启动扇区...Linux的目录以/为主 所有的文件由/目录进行衍生 文件系统和目录树的关系 挂载,这个用过 挂载,利用目录当成进入点,将硬盘分区数据放置在该目录下。即进入该目录可以读取该分区。
也称3D),对早期的磁盘(上图所示)非常有效,知道用哪个磁头,读取哪个柱面上的第几扇区就OK了。...,反正就是系统开始时会主动读取数据的地方,这样才能引导进行操作系统的启动。...分区表是一个单向链表,第一个分区表,也就是位于硬盘第一个扇区中的DPT,可以有一项记录扩展分区的起始位置柱面,类似于指针的概念,指向扩展分区,根据这项记录我们可以找到扩展分区的某柱面0磁头1扇区(CHS...请看下图,主引导记录/分区表所在的是硬盘第一个分区,基本分区1、基本分2、基本分区3都是主分区、扩展分区内有2个逻辑分区,每个逻辑分区的第一个扇区都是分区表。...系统启动过程 首先,BIOS启动后,读取硬盘第一个扇区MBR中的引导加载程序(可能是windows或者linux的grub)。
背景知识 多操作系统时的启动顺序 为了寻找操作系统,BIOS按照”启动顺序”,把控制权转交给排在第一位的储存设备。 这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。...MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序 引导加载程序(Boot loader): 一支可读取内核文件来执行的软件 内核文件:开始操作系统的功能 引导操作系统的过程 由硬盘启动时...计算机会读取激活分区的第一个扇区,叫做“卷引导记录”(Volume boot record,缩写为VBR)。“卷引导记录”的主要作用是,告诉计算机,操作系统在这个分区里的位置。...计算机先读取扩展分区的第一个扇区,叫做“扩展引导记录”(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。...计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。
简介 在之前关于 Awk 工具的系列文章中,主要探讨了如何从文件中读取数据。但如果你希望从标准输入(STDIN)中读取数据,又该如何操作呢?...在本文中,将介绍几个示例,展示如何使用 Awk 来过滤其他命令的输出,而不仅仅是读取文件内容。 首先,将以 dir 工具为例,它的功能与 ls 命令类似。...在第一个示例中,将 dir -l 命令的输出作为 Awk 的输入数据,以此来打印出当前目录下文件的所有者用户名、所属组名,以及该用户拥有的文件列表。...这是通过使用表达式 $3=="root" 实现的。 再看一个例子,其中使用 awk 比较运算符来匹配特定的字符串。...因此,在使用这种比较运算符时一定要小心,正如上面所看到的,它是区分大小写的。 您可以随时使用另一个命令的输出作为 awk 的输入,而不是从文件中读取输入,这就像在上面的例子中所看到的那样,非常简单。
3.1 情况A:卷引导记录 上一节提到,四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做"卷引导记录"(Volume boot record,缩写为VBR)。...计算机先读取扩展分区的第一个扇区,叫做"扩展引导记录"(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。...计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。...Linux环境中,目前最流行的启动管理器是Grub。 ? 四、第四阶段:操作系统 控制权转交给操作系统后,操作系统的内核首先被载入内存。 以Linux系统为例,先载入/boot目录下面的kernel。...这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。
只能分四个区实在太少了,于是就有了扩展分区的概念,既然第一个扇区所在的分区表只能记录四条数据, 那我可否利用额外的扇区来记录更多的分区信息。...事实上除了第一个块内会含有superblock 之外,后续的块不一定含有superblock,而若含有superblock则该superblock主要是做为第一个块内superblock的备份,这样可以进行...,其实每块硬盘都可以作为启动盘,硬盘本身的设计提供的这种可能,这就要从硬盘上的第一个扇区说起,这个扇区中有硬盘主引导记录(Master boot record, MBR)及分区表(partition table...BIOS 会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS 会依据使用者的设定去取得能够开机的硬盘, 并且到该硬盘里面去读取第一个扇区的MBR位置。...所以简单说开机流程就是:BIOS:开机主动运行的程序,会识别第一个可开机的设备MBR-引导加载程序:第一个可开机设备的第一个扇区内的主引导分区中的引导加载程序,可读取操作系统内核文件操作系统内核文件:不同的操作系统中关于开启自己的程序由上面的说明我们会知道
如果发现有光盘存在,则试图读取光盘的第一个扇区,并检查这是否是一个可引导扇区(比如通过检查扇区的最后两个字节是不是0x55AA)。...假设第一个分区上安装的是WINDOWS操作系统,第二个分区上安装的是Linux操作系统。...这样,WINDOWS操作系统的引导扇区,是2个物理扇区(第一个分区的第一个扇区),而Linux的引导扇区,则是第M+2个物理扇区。显然,这两个(第2个和第M+2个)引导扇区是与操作系统强相关的。...因为这时候分区编号已经确定,只要读取分区表,并找到对应的记录,就可读出该分区的第一个扇区的编号,这就是引导扇区。对于第一个问题,是通过在分区表中设置一个活动标志解决的。...如果这种打包仍然有问题(比如第一个扇区会调用BIOS服务读取后续扇区,即使打包了,也无法改变这种动作),xp甚至会用修改已打包后的引导扇区文件。
Golang入门之Linux下的第一个Golang程序~,编写一个简单的hello.go程序,我使用的Linux系统是ubuntu。...春恋慕 首先打开vscode 新建一个goproject文件夹 使用vscode打开goproject文件夹 随后在goproject文件夹下创建文件,遵循Golang程序开发的基本文件框架。...go.mod file not found in current directory or any parent directory; see 'go help modules' go, 很可能是因为go的环境设置问题...,执行go env -w GO111MODULE=auto便可以得到解决,当然前提是你已经下载解压并正确配置了go的SDK,SDK的下载配置见Linux下搭建Go开发环境(基于vscode)。
出于兼容性考虑,第一个扇区同样有一个与MBR类似的标记,叫做受保护的主引导记录(Protected Main Boot Record,PMBR)。...2)读取MBR 读取完BIOS信息,计算机将会查找BIOS所指定的硬盘MBR引导扇区,将其内容复制到0x7c00地址所在的物理内存中。被复制到物理内存的内容是Boot Loader,然后进行引导。...3)GRUB引导 GRUB启动引导器是计算机启动过程中运行的第一个软件程序,当计算机读取内存中的GRUB配置信息后,会根据其配置信息来启动硬盘中不同的操作系统。...5)设定Inittab运行等级 内核加载完毕,会启动Linux操作系统第一个守护进程init,然后通过该进程读取/etc/inittab文件,/etc/inittab文件的作用是设定Linux的运行等级...6)加载rc.sysinit 读取完运行级别,Linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包括:设定PATH运行变量、设定网络配置、启动swap分区、设定/proc
对于每个引导设备,BIOS加载它的第一个扇区(共512字节,称为引导扇区),而这个扇区内就存放着我们的引导程序,即MBR(Master Boot Record,主引导记录)。...以我的电脑为例。虽然我目前的磁盘是GPT的(不同的分区方式,下一篇就讲),但是为了防止为MBR设计的程序错误修改磁盘,因此GPT盘的第一个扇区通常会写入保护MBR(Protective MBR)。...其中,CHS(cylinders-heads-sectors)是比较原始的读取方式,它使用(磁头, 磁道, 扇区)对某一扇区进行定位。...而LBA(Logical Block Address)是之后扩展的读取方式,它只需要给出目标区块的偏移就可以进行读取了。对于磁盘来说,一个区块等同于一个扇区。...这里拼装了调用所需的参数(即disk address packet),而7DB0处就是下一阶段程序在硬盘上的位置了(严格来说是这个程序在硬盘上第一个扇区的位置)。
2. bootloader 设置数据段基地址 从硬盘上读取文件,是按照扇区为读取单位的,也就是每次读取一个扇区(512 字节)。...程序文件的 Header 中有这个信息,因此,bootloader 需要先读取程序文件的第一个扇区,也就是 512 字节,放在 0x20000 开始的位置。...我们继续假设一下:程序的总长度是 5K 字节(0x01400),那么程序文件的前 512 个字节(第一个扇区)读取到内存中,就是下面这个样子: ?...读取了第一个扇区之后,就可以取出 0x20000 开始的 4 个字节的数据:0x01400,得到程序文件的总长度: 5 K 字节。 每个扇区是 512 字节,5 K 字节就是 10 个扇区。...第一个扇区已经读取了,那么还需要继续读取剩下的 9 个扇区。
领取专属 10元无门槛券
手把手带您无忧上云