序言

c盘是如何分区的在文章旁边会提到,先谈一下Linux文件系统的简单操作。不过在阅读本文之前,我假设读者们对Linux的c盘与文件系统以及目录树早已有了初步的了解。

操作文件系统

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

查看c盘/目录树一、df命令查看c盘的分区和早已使用量

解释下输出的第一行中个别数组的含意:

文件系统

容量

已用

可用

挂载点

代表c盘的分区和显存中的某一个区域。

c盘总共的容量

c盘早已使用的容量

c盘未使用的容量

该文件系统挂载在哪一个目录下

从图中可以看出我的c盘虽然是分了四个区的,分别是/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4,这儿不显示/dev/sda3的缘由是由于我分区的时侯把/dev/sda3挂载到来swap下。

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

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

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

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

这里写图片描述

上图显示了Java工程目录下的所有文件/目录,两侧是抢占的容量,两侧是具体的文件名/目录名。

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

格式化分区命令Linux_格式化分区linux_linux格式化分区命令

查看/dev/sda2这个分区,下边解释一下相关数据。

Filesystemvolumename

Filesystemstate

Inodecount

Blockcount

Blocksize

文件系统的别称,可以自己起名

文件系统的状态,假如是clean则表示正常

Inode的数目

Block块的数目

每一个Block块的大小,目前只有1KB,2KB,4KB的取值

关于联接文件

在windwos中,联接文件就相当于一个快捷方法,但是在Linux却没有那么简单。

一、文件是如何被读取的

在Linux中,一个文件分为两个部份linux格式化分区命令,一个是文件的权限和属性,另外一个是文件的具体内容,这三者分别储存在inode块和block块中。而每位block块都有一个索引号码,这个索引号码会被记录在inode上面。

一个文件可能会很大,所以须要多个block块来储存一个文件的所有内容。每位block的索引就会被记录在inode上面。同时,每位单一文件只容许有一个inode块。

所以读取一个文件的流程是这个样子的,先读取这个文件inode块上面储存的所有索引号码,之后根据号码去找寻对应的block块,最后读取block块上面的内容。

看上去很简单,对吧!但是问题来啦,文件的inode是如何被读取的??

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

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

这里写图片描述

二、硬联接

铺垫了如此多,现今回归主题。

格式化分区命令Linux_linux格式化分区命令_格式化分区linux

在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块是拿来保存你要联接的文件的文件名”linux格式化分区命令,“/bin/ln”正好7个字符,一个字符就是一个byte,所以文件内容是7个byte。(其他的区别读者们自己去感受)

四、软联接和硬联接的区别。

PS:觉得这个联接我好像没有讲清楚。有意见请提

c盘的分区–命令fdisk

后面都是铺垫,前面才是具体的c盘管理操作。并且c盘的分区只是c盘管理的一小部份。

本人只有一块c盘,在Linux中分配的名子是/dev/sda,用之前的df可以查看。

见到没,里面的/dev/sda2、/dev/sda4等等,除去那种数字就是你的c盘设备名子。现今就要步入这个设备查看一下。

这里写图片描述

看图,里面说明了一切。

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

有两个命令我得注重指出。。。。

此命令会使你的所有对c盘的操作全部生效,假如不清楚自己所作所为的后果,此命令请慎用。

退出c盘分区程序,之前所有的操作都无效,其实前提是你没有用w。

输入p,看它告诉我哪些信息:

原先我的c盘分为四个区sda1、sda2、sda3、sda4

如今来删掉一个分区试试,输入d:

这里写图片描述

输入d后,笔记本要求你输入你想删掉的区号,于是我输入了2。

再输入p查看一下:

尼玛,sda2没了。。。

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

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

不玩了,按q退出。

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

其中的sda5就是从空闲空间掏出来的2G。

在此处提醒下,输入p查询是不会将没有分区的c盘空间显示下来的,你只有输入n,系统就会让你晓得原先你还有空间未被分配。

这儿我按了w来写入c盘。写入的确是成功了,不过系统并没有重新区读取这个分区表,我是不想开机重启的linux操作系统怎么样,所以用这个命令去强制它读取吧。

将分好的c盘低格

选择一种文件格式将新建的分区初始化,是为了让Linux才能辨识这个分区上面的文件。所谓的文件格式就是,c盘的文件是根据如何的一种方式组织上去,之前提到的文件由两部份组成的,例如inode,block等,就是Linux的所才能辨识的文件格式的一种。

低格的命令-mkfs

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

这儿手贱,文件格式写成ext3了,应当用ext4的,得再重新低格一次。。

这里写图片描述

完毕。

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

检测c盘是否有问题命令fsck

系统跑久了redhat linux 下载,c盘会出现一些问题,例如低格,文件受损之类的。。。(虽然我也不太懂,抱歉)。

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

这里写图片描述

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

挂载/卸载c盘一、挂载c盘

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

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

注意命令:mount

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

以下几点要注意:

觉得太简单了。。。虽然mount是比较复杂的,但用上去简单的缘由是系统早已帮我们把许多东西都做好了,真实的过程是这样的:

所以说有这个文件很重要:/proc/filesystems

这个文件记录leLinux所有早已加载的文件系统

这里写图片描述

还有一个:/lib/modules/$(uname-r)/kernel/fs/

这个文件夹下边所有的文件都对应着某一个文件系统的驱动。

这里写图片描述

二、卸载c盘

很简单的:umount

开机挂载

通常情况下,假如你再度开机,都会发觉之前早已挂载的c盘必须自动再度挂载一次,不信可以用df命令查看一下。

为了开机手动挂载c盘,只须要配置一下/etc/fstab文件即可。

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

filesystem

mountpoint

type

options

dump

pass

设备名称。c盘号的UUID

挂载点

分区类型.linux分区通常为ext4。

挂载参数。通常为defaults。常用参数如下:auto:开机手动挂载。default:根据大多数永久文件系统的缺省值设置挂载定义。noauto:开机不手动挂载。nouser:只有超级用户可以挂载。ro:按只读权限挂载。rw:按可读可写权限挂载。user:任何用户都可以挂载。

c盘备份。默认为0,表示不备份。

c盘检测。默认为0,表示不检测。

关键是如何查询UUID号码,看这个:

这里写图片描述

查找到后,添加如下配置:

这样就可以了。

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

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复