Linux磁盘分区的详细步骤(图解linux分区命令使用方法)

Linux磁盘分区的详细步骤(图解linux分区命令使用方法)前言磁盘是怎么分区的在文章后面会谈到 先谈一下 Linux 文件系统的简单操作 不过在阅读本文之前 我假定读者们对 Linux 的磁盘与文件系统以及目录树已经有了初步的了解 操作文件系统介绍操作文件系统的几个命令 查看磁盘 目录树一 df 命令查看磁盘的分区和已经使用量解释下输出的第一行中某些字段的含义 文件系统容量已用可用挂载点代表磁盘的分区和内存中的某一个区域 磁盘总共的容量磁盘已经使用的容量磁盘未使用

前言


磁盘是怎么分区的在文章后面会谈到,先谈一下Linux文件系统的简单操作。不过在阅读本文之前,我假定读者们对Linux的磁盘与文件系统以及目录树已经有了初步的了解。

操作文件系统


介绍操作文件系统的几个命令。

查看磁盘/目录树

一、df命令查看磁盘的分区和已经使用量

这里写图片描述

解释下输出的第一行中某些字段的含义:

文件系统 容量 已用 可用 挂载点
代表磁盘的分区和内存中的某一个区域。 磁盘总共的容量 磁盘已经使用的容量 磁盘未使用的容量 该文件系统挂载在哪一个目录下

从图中可以看出我的磁盘其实是分了四个区的,分别是/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4,这里不显示/dev/sda3的原因是因为我分区的时候把/dev/sda3挂载到来swap下。

另外的udev、tmps等是系统运行时,在内存划分的一部分区域。这部分区域被临时挂载到文件树下。

另外,df是读取整个文件系统中的superblock中的数据来输出的,所以速度很快。

df还有一些其他的命令参数,可以用man查看。


二、利用du命令查询当前目录下的所有目录/文件所占的容量

这里写图片描述

三、dumpe2fs查看分区的具体使用情况

这里写图片描述

Filesystem volume name Filesystem state Inode count Block count Block size
文件系统的别名,可以自己取名 文件系统的状态,如果是clean则表示正常 Inode的数量 Block块的数量 每一个Block块的大小,目前只有1KB,2KB,4KB的取值

关于连接文件

在windwos中,连接文件就相当于一个快捷方式,然而在Linux却没有这么简单。

一、文件是怎么被读取的

在Linux中,一个文件分为两个部分,一个是文件的权限和属性,另外一个是文件的具体内容,这两者分别存放在inode块和block块中。而每个block块都有一个索引号码,这个索引号码会被记录在inode里面。

一个文件可能会很大,所以需要多个block块来存放一个文件的所有内容。每个block的索引都会被记录在inode里面。同时,每个单一文件只允许有一个inode块。

所以读取一个文件的流程是这个样子的,先读取这个文件inode块里面存放的所有索引号码,然后按照号码去寻找对应的block块,最后读取block块里面的内容。

看起来很简单,对吧! 然而问题来啦,文件的inode是怎么被读取的??

答案是通过目录读取。Linux是一个目录树结构,所有的文件全部存放在目录下,想要读取一个文件,必先读取其目录。一个目录也是由inode和block块构成的,区别是目录的block块中存放的是该目录下所有文件的文件名和该文件的inode号码的映射。

举个例子:读取/bin/ln这个文件。

这里写图片描述

  • 读取“/”目录,因为“/”是挂载点,所以可以知道挂载点的inode号码是2,
  • 读取bin目录,通过“/”的inode找到“/”的block块,在这个block块里面查询看是否有“bin”这个文件名字,找到这个名字并返回这个名字对应的inode号码,也就是。
  • 通过编号为的inode块来找到对应block块,并查询是否有ln这个文件名,找到这个名字并返回对应的inode号码,也就是。
  • 在这个inode中,来查询所有保存了block索引的记录,并读取对应索引的block。完毕。 


二、硬连接

铺垫了这么多,现在回归主题。

在Linux中,生成这个所谓的“快捷方式”有两种,一种是硬连接,另外一种是软连接,先介绍硬连接。

举例说明:我现在要在“/root”目录下创建一个对“/bin/ln”的硬连接,连接名字是ln2。那么Linux它会这样做,它会在“/root”目录的block块中添加一条文件名和inode号码的映射,文件名自然是ln2,inode号码就是“/bin/ln”文件的inode号码。

在“/root”目录下生成了ln2的文件,如果双击它,就会执行“/bin/ln”文件。看看最前面的号码,两个都是一样的,表示ln和ln2都是连接到同一个inode号码。

还有一点就是,注意到输出数据中的2吗?就是在-rwxr-xr-x后面的,代表的是有多少个硬连接连接到了这个文件。

三、软连接

硬连接只是在目录的block块里面添加了一条额外的映射记录,并没有多占用额外的inode块和block块,但是软连接就不同了。

软连接是直接新建一个文件。由于一个文件对应一个inode块和至少一个block块,所以新建一个软连接就至少会占用两个block块。其中inode的作用就不用说了,自然是用来记录属性权限和block索引的。但是软连接的block块作用是保存你要连接的文件的完整路径。

上图举例子:

这里写图片描述

注意区别,两个文件的inode号码不一样!!说明我们新建了一个文件。还有,你们看到了那个数字7吗,这个位置的值通常代表文件内容的大小,可是为什么是7呢?记得刚刚说的“软连接的block块是用来保存你要连接的文件的文件名”,“/bin/ln”正好7个字符,一个字符就是一个byte,所以文件内容是7个byte。(其他的区别读者们自己去体会)

四、软连接和硬连接的区别。
  • 软连接会占用额外inode块和block块,而硬连接不会。(忽略block块恰好被沾满的情况)
  • 如果我将“/bin/ln”这个文件删除,那么作为硬连接的“/root/ln2”还是可以正常工作,因为文件被存放在block块中,文件删除只不过是抹去了block上的数据。(这里的正常工作指的是还能够访问之前“/bin/ln”所占用的block块)
  • 如果将“/bin/ln”删除,那么软连接“/root/ln3”将无法工作,它会显示找不到源文件。因为软连接保存的是路径,现在这个路径已经没有了。

PS:感觉这个连接我似乎没有讲清楚。有意见请提

磁盘的分区–命令fdisk


这里写图片描述

看到没,上面的/dev/sda2、/dev/sda4等等,去掉那个数字就是你的磁盘设备名字。现在就要进入这个设备查看一下。

这里写图片描述

看图,上面说明了一切。

按照提示,你输入m就可以查询分区的所有命令,简单易懂。

有两个命令我得着重强调。。。。

w q
此命令会使你的所有对磁盘的操作全部生效,如果不清楚自己所作所为的后果,此命令请慎用。 退出磁盘分区程序,之前所有的操作都无效,当然前提是你没有用w。

原来我的磁盘分为四个区sda1、sda2、sda3、sda4

现在来删除一个分区试试,输入d:

这里写图片描述

输入d后,电脑要求你输入你想删除的区号,于是我输入了2。

再输入p查看一下:

这里写图片描述

卧槽,sda2没了。。。

破罐子破摔,全部删掉吧。。。删掉来重新添加,添加用n就行。。

这里写图片描述

看见没,让你输入新建区的起始扇区号码,和结束扇区号码,创建成功来,用p查看一下。

这里写图片描述

不玩了,按q退出。

我在Ubuntu安装时,预留了20G的磁盘空间没有进行分区,这次我取出2G用来重新做示范。

这里写图片描述

这里写图片描述

将分好的磁盘格式化


选择一种文件格式将新建的分区初始化,是为了让Linux能够识别这个分区里面的文件。所谓的文件格式就是,磁盘的文件是按照怎样的一种形式组织起来,之前提到的文件由两部分组成的,比如inode,block等,就是Linux的所能够识别的文件格式的一种。

格式化的命令 – mkfs

mkfs -t 文件格式 设备文件名

这里写图片描述

这里手贱,文件格式写成ext3了,应该用ext4的,得再重新格式化一次。。

这里写图片描述

完毕。

PS:还有一个命令是mke2fs,自行man。

检查磁盘是否有问题


命令 fsck

系统跑久了,磁盘会出现一些问题,比如坏道,文件损坏之类的。。。(其实我也不太懂,抱歉)。

fsck命令是用来检验磁盘是否有问题的,相关参数自行man。

这里写图片描述

值得注意的一点是:fsck命令可能会损坏文件系统,所以被fsck扫描的分区请不要被挂载。

挂载/卸载磁盘


一、挂载磁盘

这里我打算把sda5挂载到“mnt/sda5”这个目录,这个目录是不存在的,所以要创建。

挂载的命令是mount,命令有点复杂,自行man。

这里写图片描述

注意命令:mount
<设备名称>
<挂载的目录>
 

弄完了用df查看一下,看最后一行的/mnt/sda5,是不是成功了!


以下几点要注意:

  • 挂载的目录必须为空,否则目录里面的数据会被隐藏,直到设备被卸载才会显现。
  • 挂载的目录每次只能挂载一个设备。
  • 同一个设备每次只能挂载到一个目录。

感觉太简单了。。。其实mount是比较复杂的,但用起来简单的原因是系统已经帮我们把许多东西都做好了,真实的过程是这样的:

  • 挂载时,系统要知道设备是何种文件系统,是ext4还是其他的什么。
  • 然而系统是不知道设备是什么文件系统系统的,所以它要测试设备是哪一种文件系统,看自己能不能支持,如果支持,则对设备进行挂载。
  • 对于Linux支持的文件系统,Linux都会有一个驱动,它会利用这个驱动来测试文件系统的superblock,看能不能匹配。(几乎每个文件系统都会有superblock)

这里写图片描述

这里写图片描述

二、卸载磁盘

很简单的:umount
<设备名字 挂载点="">

开机挂载

一般情况下,如果你再次开机,就会发现之前已经挂载的磁盘必须手动再次挂载一次,不信可以用df命令查看一下。

为了开机自动挂载磁盘,只需要配置一下 /etc/fstab文件即可。

这里写图片描述

不同的Linux distribution的 fstab文件可能不一样,我的Ubuntu如上所示,需要在末尾添加一些配置才能开机挂载sda5,不过我得先解释下这6列的含义。

file system mount point type options dump pass
设备名称。磁盘号的UUID 挂载点 分区类型.linux分区一般为ext4。 挂载参数。一般为defaults。常用参数如下: auto:开机自动挂载。 default:按照大多数永久文件系统的缺省值设置挂载定义。 noauto:开机不自动挂载。 nouser:只有超级用户可以挂载。 ro:按只读权限挂载。 rw:按可读可写权限挂载。 user:任何用户都可以挂载。 磁盘备份。默认为0,表示不备份。 磁盘检查。默认为0,表示不检查。

关键是怎么查询UUID号码,看这个:

这里写图片描述

这样就可以了。

PS:还有一些东西没写完,以后更新。。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219871.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:42
下一篇 2026年3月17日 下午9:42


相关推荐

  • matlab实现香农编码原理_香农编码c语言实现

    matlab实现香农编码原理_香农编码c语言实现最近有个实验是用MATLAB实现香农编码的,在网上看到了别人写的程序,大部分都不支持手动输入信源,我自己就加上了几行,能够直接输入信源分布,下面是程序:pa=input(‘请输入信源分布:’)k=length(pa);   %计算信源符号个数ifmin(pa)&lt;0||max(pa)&gt;1  %判断信源概率值是否介于0到1之间  %disp([‘信源分布pa(x)=[‘,…

    2025年10月24日
    4
  • 51nod官网_51nod题难度

    51nod官网_51nod题难度1396 还是01串基准时间限制:1 秒空间限制:131072 KB分值: 20 难度:3级算法题 收藏 关注给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0<=k<=n,并且子串s[0..k-1]中的0的个数与子串s[k..n-1]中1的个数相等。注意:(1)如果k=0,s[0..k-1]

    2022年8月12日
    8
  • jmeter并发测试教程_jmeter进行并发测试教程[通俗易懂]

    jmeter并发测试教程_jmeter进行并发测试教程[通俗易懂]jmeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,很多用户使用的时候不知道jmeter怎么进行并发测试,接下来就跟小编一起来看看吧,有需要的小伙伴不要错过!jmeter怎么进行并发测试1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。2、点击线程组,右击添加→取样器→HTTP请求…

    2026年4月19日
    5
  • HDMI接口定义图

    HDMI接口定义图nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp TheHDMIPlugA nbsp below anHDMIconnec whichinclude TMDSdatachan 6pins thesecarryth

    2026年3月19日
    1
  • Android Intent 解析之二

    Android Intent 解析之二

    2021年12月5日
    53
  • AlertDialog的几种用法

    AlertDialog的几种用法xml代码:java代码:

    2022年7月2日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号