百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux中磁盘的管理(格式化、分区、挂载)

sinye56 2024-10-28 19:17 2 浏览 0 评论

Linux中磁盘的管理(分区、格式化、挂载)

一、认识磁盘

1、什么是磁盘:

磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写。绝大多数磁盘被永久封存在一个密封的盒子里。

2、磁盘运行机理:

简单来说就是多个盘片之间靠主轴连接,电机带动主轴做旋转运动,通过多个磁头臂的摇摆和磁盘的旋转,磁头就可以在磁盘旋转的过程中就读取到磁盘中存储的各种数据

3、磁盘的扇区、磁道、柱面:

(1)磁道:磁盘的每个盘面被划分为许多同心圆,这些同心圆的轨道叫做磁道。
(2)扇区:一个盘面划分为若干个内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时被读入或写入。
每一个扇区是512字节,其中有64个字节存储的是分区表,一条分区信息占16个字节
(3)柱面:每一个盘片同一大小的同心圆可以看成连在一起的柱面,磁盘在分区的时候最小单位是柱面,每一个盘片的上下面都可以读取数据,每一个磁头,不可以跨盘面读取数据。

4、磁盘的分类:

(1)IDE磁盘:特点价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等等。
(2)SCSI磁盘:传输速率高,读写性能好,运行稳定,可连接多个设备。可支持热插拔,占用CPU低,但是价格相对来说比较贵,一般用于工作站或服务器上。
(3)SATA磁盘:结构简单、支持热插拔
(4)USB
其中IDE的磁盘的文件名为         
/dev/hd[a-d]
而SCSI、SATA、USB的磁盘文件名为    
/dev/sd[a-p]

二、磁盘的分区

1、为什么要分区

(1)易于管理和使用:

比如说我们把磁盘分了sda1、sda2、sda3、sda4盘,我们假设sda1盘为系统盘,其他的比如说游戏、办公、软件盘,这样我们要重新分哪个区就直接在对应的盘分就可以了,不需要整块磁盘进行分区。根据用途我们也能较快地去使用相应的磁盘。

(2)有利于数据的安全:

通过分区可以降低数据损失的风险。出现硬盘坏道、错误操作、重装系统都有可能造成数据损失,如果分区了,那么我们就可以将损失最小化。

(3)节约寻找文件的时间:

这个我觉得跟第一条比较像,但是这里所说的寻找文件的时间,是指电脑搜索文件的时间。分区以后,电脑搜索文件时只需要在相对应的分区搜索就可以了,没必要进行全盘搜索。大大节省了寻找文件的时间。

下图为硬盘的柱面区间示意图:

由于我们之前说过一个扇区是512字节,其中有64个字节存储的是分区表,一条分区信息占16个字节,因此磁盘最多只能分四个分区,要想有多个分区怎么办?这时候就有了扩展分区。

2、扩展分区:

比如说是图中p4为扩展分区,扩展分区可以被继续划分为多个逻辑分区,逻辑分区是可以进行格式化的。扩展分区把逻辑分区的分区信息在扩展分区中找了一个位置给存起来。假如说p4扩展分区划分了三个逻辑分区那么第1个逻辑分区命名为sda5、第2个为sda6、第3个sda7,以此类推。
上面所说的是一个磁盘被分为四个分区,第四个分区被设置为扩展分区,第一个逻辑分区为sda5。但是当整个磁盘被分为3个分区的时候,我们把扩展分区划分的第1个逻辑分区依然命名为sda5,而不是其它的。总结一下,就是不论磁盘有几个主分区,第一个逻辑分区一定是从sda5开始。

3、磁盘的分区:

我们就创建1个1G的分区吧。
(1) 在进行分区时,首先我们需要查看当前磁盘的一个分区状况,使用命令:fdisk -l

注意:上图中/dev/sda1 后面有个*,表示该磁盘用于引导系统进行启动。
sda1:存放的是与系统相关的文件
sda2:虚拟内存交换分区
sda3:为我们系统上的跟分区
start、end表示分区开始的扇区位置和结束的扇区位置。
blocks:表示块的信息,一个块里面有多个扇区。
Id:表示磁盘编号
system:表示Linux系统分区的一个分区信息。

(2)然后使用命令:fdisk /dev/sda  让硬盘进入分区模式

此时命令栏提示输入m来寻求帮助,那么我们输入m,来看一下都有哪些选项。

上图中:我将画横线的标记为经常会用到的,然后我们来解释一下其中的一些选项。

(3)开始创建分区,因此我们输入n,然后回车如下图。

我们看到黄颜色线条上显示的是3个主要分区,0个扩展分区,还有1个闲置分区。
绿色光标前的
default e表示的是默认为扩展分区。我们除了直接回车进入下一步,也可以输入e进入下一步。

此时光标所在的位置表示选择输入起始位置,也就是起始扇区。当然,我们不用输入,直接回车就好进入下一步。它就是为了能够将后面的所有可用扇区充分的利用上,而默认选择可用扇区的起始最小扇区。

回车后进入下一步,如下:
此时光标所在的位置表示选择输入终了位置,也就是结束扇区。当然,我们不用输入,直接回车就可以把上面剩余的全部空间充分的利用上。

回车后如下:

到这里我们创建的扩展分区已经创建好了,我们在命令行界面输入p查看一下分区情况:

黄颜色框框所框取的信息就是我们创建的扩展分区,以及他的起始,终了扇区位置信息;块信息;id编号信息,分区信息。

有了扩展分区,那么我们才可以创建逻辑分区。
我们在命令行输入n添加一个新分区,此时添加的分区就是逻辑分区。

这时它询问设置逻辑分区的起始扇区,为了充分利用,我们选择默认值,然后回车。

到这里它在询问扇区结束位置,说白了就是我们在设置逻辑分区大小。输入格式为:+扇区 或者 +数值大小{单位}
然后我们输入:+1G  表示设置大小为的1G的逻辑空间。回车之后就完成了新的分区的设置。
紧接着我们输入p打印分区表查看分区信息。

上图中黄颜色的线上的文字为提示信息:提示分区5大小为1GB且已经创建。
此时不要着急,我们一定要记住要保存,在命令行输入w保存分区信息。我们通过w保存并退出后,使用fdisk -l  可以查看到磁盘的分区信息。
但是当你在格式化的时候,有可能找不到这个分区。这是因为Linux没有把分区信息读到内核来,我们需要输入partprobe这个命令,来使我们内核重读一下我们的分区信息。

到这里我们已经成功地创建了一个1G大小的分区,但是我们能用吗?不能,因为我们要对磁盘进行格式化后才可以进行数据的存储。

三、磁盘的格式化

1、认识格式化:

格式化:指将分区格式化成不同的文件系统。
那什么是文件系统呢?
文件系统:指操作系统用于明确存储设备或分区上的文件的方法和数据结构:即在存储设备上组织文件的方法。就好比一个教室,同学们的坐的位置总是与桌子凳子排列的方式有关系。桌子,凳子怎么摆放,就导致了同学坐的位置在哪里。文件系统存放数据也是这么个道理。

2、Linux系统下的文件类型:

Linux下的文件类型有ext2、ext3、ext4、xfs等等,我们可以使用命令:mkfs. 然后用按TAB、TAB来查看都有哪些文件类型。

3、磁盘的格式化:

我们现在要对刚才创建的逻辑分区5进行格式化。
(1)在命令行输入
mkfs.ext3  /dev/sda5      意思就是格式化根下的sda5分区,格式化类型为.ext3

当done都出现完毕后,意味着格式化已经进行完毕。
(2)格式化完毕后我们使用命令:
ll  来查看我们格式化完毕后的分区的文件类型信息。

我们从信息中可以看出来sda5为一个块设备文件。8表示主设备号,5表示的为从设备号。

到这里已经格式化好的sda5能用吗?答案是不能,要想用这个磁盘我们还需要挂载。

四、磁盘的挂载

1、认识挂载:

(1)Linux的宗旨是一切皆文件,从以上我们也看到。我们存储的所有文件都在sda3下存放着,sda3也就是我们的根。那我们要在sda5中写入文件时,首先要sda5要与sda3先建立一个联系,这个联系就是一个目录。建立联系的过程我们叫做挂载
(2)当我们访问sda3底下的这个目录的时候,实际上我们访问的才是sda5这个设备文件。这个目录相当于一个访问sda5的入口,可以理解为一个接口,有了这个接口才可以访问这个磁盘。

2、磁盘的挂载:

(1)挂载点目录:我们将磁盘切到根目录, mediamnt 这两个目录被叫做挂载点目录。除此之外,我们也可以自己创建一个目录作为一个挂载点目录,

(2)临时挂载:将指定的一个目录作为挂载点目录时,如果挂载点的目录有文件,那么文件会被隐藏。因此当我们需要挂载目录时,最好新建一个空文件夹来作为挂载点目录。(重启后失效
①首先在根下创建一个test目录用于测试,在test目录中创建一个文件file,和一个目录directory。

②然后我们挂载sda5,使用命令:mount /dev/sda5 /test   意思就是说将/dev/sda5挂载到test目录中
然后我们刷新一下切出去,重新进到这个目录。(当然你们也可以不刷新直接使用ll命令看看会出现什么)

③现在我们在test目录下的操作就相当于在sda5中进行操作,我们在里面写一个文件吧。

④按照上一步,我们的colour文件是在sda5中,那么我们将挂载的sda5给卸载掉。我们再进入test查看里面的文件有什么。注意卸载时一定要退出目录,不然无法进行卸载。卸载的命令:umount /dev/sda5或者是umount /test

⑤同理根据第③步的操作,我们在sda5里面写入一个文件。那么我们这次将这个sda5直接挂载到新建的一个目录test2。同理我们应该能想到,挂载后这个空文件夹也能够读到colour这个文件。(当然也要刷新一下)

到这里就能说明colour这个文件是属于磁盘里的而非目录里的。
现在我们回到开头,我们之前说过,我们这种挂载方式为临时挂载,因此你在命令行中输入reboot重启Linux后,进入test2中是看不到任何文件的。这里不再演示。
(3)怎样查看到当前系统上所有磁盘的挂载信息?
①使用
mount命令,但读起来较费劲,黄色线条可以告诉我们在哪里挂载的,磁盘的格式类型,读写权限,等其他信息。

②使用命令df -h这更易于我们对磁盘的信息的了解。包括文件的大小,已经使用的分区大小,总共可用分区的大小,使用率,以及挂载的位置。(推荐)

注意:我们当时为sda5分配了1G的大小,但由于格式化后,要存储一些记录格式化的类型的信息。所以会占用一些空间,导致实际空间会比我们预先分配的空间要小。
(4)命令:
blkid:查看对应分区的UUID(编号)。UUID唯一标识每一个分区,防止错误的挂载。除此之外,还会显示分区的类型。(建议先复制一下sda5的UUID,一会儿会用到)

(5)永久挂载:使用永久挂载,就意味着它开机会自动挂载。
①使用
vim编辑 /etc/fstab  在命令行直接输入vim /etc/fstab 就可以编辑,实现开机自动挂载。

②再将光标移到UUID行,在命令模式下按o键进入插入模式,同时换行。将(4)步骤中复制好的sda5的UUID编号,粘贴进来。/test挂载点目录,ext3文件系统类型,第一个0表示不备份,第二个0表示不检查。注意格式一定要正确,可以不用对齐,最好的判断依据是依照颜色。
写完之后保存退出。

Ⅰ写完之后,你使用mount命令,是看不到test挂载信息地,只有开机时才会读取那个文件。你只需reboot然后打开相应的目录去查找我们之前创建的colour文件是否存在来判断自己是否挂载成功。

Ⅱ如果你着急的就想查看test的挂载分区存储的信息。由于内核还没有读取这个命令,所以我们使用mount -a 这个命令可以让内核读取这个文件。然后用mount | grep /test来过滤信息,查看是否挂上。要么直接省去上一步,直接到test目录下去找colour文件是否存在。(如果失败了不要着急,很有可能你没有重新进这个区哦)
==================================================================================================
文末彩蛋:小伙伴们有没有发现当test目录被挂载后,该目录下多出了一个目录lost+found。
lost+found:顾名思义,丢失然后找到。它是一个特殊的目录,用来存放文件系统错误导致文件丢失的目录,因此我们的一些数据是可以通过它来找到的。这个目录是在分区的根目录上,就是我们挂载的分区。但这不是每个文件系统都有的目录,ext2/3就有这个目录,有些就没有这个目录。

本节所用到的主要Linux的命令总结

好了本文到此就结束了,文章多多少少可能会出现些错误,也希望大家能帮助我发现文章的一些错误,提出宝贵的建议。欢迎大家能在留言区评论留言哦,感谢阅读。

相关推荐

Linux两种光驱自动挂载的方法

环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...

linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握

虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...

Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)

mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...

在Linux中如何设置自动挂载特定文件系统(示例)

Linux...

Linux环境中的绑定挂载(bind mount)

简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...

Linux挂载CIFS共享 临时挂载 1. 首先

如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...

Linux 硬盘挂载(服务器重启自动挂载)

1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...

linux 挂载磁盘

在Linux中挂载硬盘的步骤如下:...

笨小猪教您Linux磁盘挂载

本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...

Linux 磁盘挂载和docker安装命令

本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...

Linux设置开机自动挂载分区

有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...

在linux挂载一个新硬盘的完整步骤

以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...

Linux系统如何挂载exFAT分区

简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...

Linux系统挂载硬盘

fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...

WSL2发布,如何在Win10中挂载Linux文件系统

WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...

取消回复欢迎 发表评论: