加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2022-10-20 12:57:55 所属栏目:Linux 来源:
导读:  前言

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

  操作文件系统

  介
  前言
 
  磁盘是怎么分区的在文章后面会谈到,先谈一下Linux文件系统的简单操作。不过在阅读本文之前,我假定读者们对Linux的磁盘与文件系统以及目录树已经有了初步的了解。
 
  操作文件系统
 
  介绍操作文件系统的几个命令。
 
  查看磁盘/目录树一、df命令查看磁盘的分区和已经使用量
 
  这里写图片描述
 
  解释下输出的第一行中某些字段的含义:
 
  文件系统
 
  容量
 
  已用
 
  可用
 
  挂载点
 
  代表磁盘的分区和内存中的某一个区域。
 
  磁盘总共的容量
 
  磁盘已经使用的容量
 
  磁盘未使用的容量
 
  该文件系统挂载在哪一个目录下
 
  从图中可以看出我的磁盘其实是分了四个区的,分别是/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4,这里不显示/dev/sda3的原因是因为我分区的时候把/dev/sda3挂载到来swap下。
 
  另外的udev、tmps等是系统运行时,在内存划分的一部分区域。这部分区域被临时挂载到文件树下。
 
  另外,df是读取整个文件系统中的superblock中的数据来输出的,所以速度很快。
 
  df还有一些其他的命令参数,可以用man查看。
 
  二、利用du命令查询当前目录下的所有目录/文件所占的容量
 
  这里写图片描述
 
  上图显示了Java工程目录下的所有文件/目录,左侧是占据的容量,右侧是具体的文件名/目录名。
 
  三、dumpe2fs查看分区的具体使用情况
 
  这里写图片描述
 
  查看/dev/sda2这个分区,下面解释一下相关数据。
 
  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号码的映射。
  
  二、硬连接
 
  铺垫了这么多,现在回归主题。
 
  在Linux中,生成这个所谓的“快捷方式”有两种,一种是硬连接,另外一种是软连接,先介绍硬连接。
 
  举例说明:我现在要在“/root”目录下创建一个对“/bin/ln”的硬连接,连接名字是ln2。那么Linux它会这样做,它会在“/root”目录的block块中添加一条文件名和inode号码的映射,文件名自然是ln2,inode号码就是“/bin/ln”文件的inode号码。
 
  在“/root”目录下生成了ln2的文件,如果双击它,就会执行“/bin/ln”文件。看看最前面的号码130894,两个都是一样的,表示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。(其他的区别读者们自己去体会)
 
  四、软连接和硬连接的区别。
 
  PS:感觉这个连接我似乎没有讲清楚。有意见请提
 
  磁盘的分区–命令fdisk
 
  前面都是铺垫,后面才是具体的磁盘管理操作。但是磁盘的分区只是磁盘管理的一小部分。
 
  本人只有一块磁盘,在Linux中分配的名字是/dev/sda,用之前的df可以查看。
  
  看到没,上面的/dev/sda2、/dev/sda4等等,去掉那个数字就是你的磁盘设备名字。现在就要进入这个设备查看一下。
  
  看图,上面说明了一切。
 
  按照提示,你输入m就可以查询分区的所有命令,简单易懂。
 
  有两个命令我得着重强调。。。。
 
  w
 
  q
 
  此命令会使你的所有对磁盘的操作全部生效,如果不清楚自己所作所为的后果,此命令请慎用。
 
  退出磁盘分区程序,之前所有的操作都无效,当然前提是你没有用w。
 
  输入p,看它告诉我什么信息:
 
  linux分区工具_linux分区工具_linux 分区工具
 
  原来我的磁盘分为四个区sda1、sda2、sda3、sda4
 
  现在来删除一个分区试试,输入d:
  
  输入d后,电脑要求你输入你想删除的区号,于是我输入了2。
 
  再输入p查看一下:
  
  卧槽,sda2没了。。。
 
  破罐子破摔,全部删掉吧。。。删掉来重新添加,添加用n就行。。
  
  看见没,让你输入新建区的起始扇区号码,和结束扇区号码,创建成功来,用p查看一下。
  
  不玩了,按q退出。
 
  我在Ubuntu安装时,预留了20G的磁盘空间没有进行分区,这次我取出2G用来重新做示范。
  
  其中的sda5就是从空闲空间拿出来的2G。
 
  在此处提醒下,输入p查询是不会将没有分区的磁盘空间显示出来的,你只有输入n,系统才会让你知道原来你还有空间未被分配。
  
  这里我按了w来写入磁盘。写入的确是成功了,不过系统并没有重新区读取这个分区表,我是不想开机重启的,所以用这个命令去强制它读取吧。
 
  将分好的磁盘格式化
 
  选择一种文件格式将新建的分区初始化,是为了让Linux能够识别这个分区里面的文件。所谓的文件格式就是,磁盘的文件是按照怎样的一种形式组织起来,之前提到的文件由两部分组成的,比如inode,block等linux分区工具,就是Linux的所能够识别的文件格式的一种。
 
  格式化的命令 - mkfs
 
  mkfs -t 文件格式 设备文件名
  
  这里手贱,文件格式写成ext3了,应该用ext4的,得再重新格式化一次。。
  
  完毕。
 
  PS:还有一个命令是mke2fs,自行man。
 
  检查磁盘是否有问题命令 fsck
 
  系统跑久了,磁盘会出现一些问题,比如坏道,文件损坏之类的。。。(其实我也不太懂,抱歉)。
 
  fsck命令是用来检验磁盘是否有问题的,相关参数自行man。
  
  值得注意的一点是:fsck命令可能会损坏文件系统,所以被fsck扫描的分区请不要被挂载。
 
  挂载/卸载磁盘一、挂载磁盘
 
  这里我打算把sda5挂载到“mnt/sda5”这个目录,这个目录是不存在的,所以要创建。
 
  挂载的命令是mount,命令有点复杂,自行man。
  
  注意命令:mount
 
  弄完了用df查看一下,看最后一行的/mnt/sda5,是不是成功了!
 
  以下几点要注意:
 
  感觉太简单了。。。其实mount是比较复杂的,但用起来简单的原因是系统已经帮我们把许多东西都做好了,真实的过程是这样的:
 
  所以说有这个文件很重要:/proc/filesystems
 
  这个文件记录leLinux所有已经加载的文件系统
  
  还有一个:/lib/modules/$(uname -r) /kernel/fs/
 
  这个文件夹下面所有的文件都对应着某一个文件系统的驱动。
 
  二、卸载磁盘
 
  很简单的: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:还有一些东西没写完,以后更新。。
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!