【鸟哥Linux学习笔记】关于Linux磁盘管理和文件系统(2)

1、关于磁盘分区格式化:

磁盘分区利用的一个命令就是fdisk,fdisk里面的一些命令是没必要记忆的 。

fdisk -l 这个命令 会自动列出整个系统的所有分区信息。如果 后面接一个物理设备的文件名,那么就会列出相应的这个磁盘的分区情况。

在利用fdisk来删除某一个分区的时候,如果这个分区是扩展分区,那么在这个扩展分区划分出来的逻辑分区也会一并删除。

在新增磁盘的分区的时候也要注意,在创建的过程中不会要求用户自己指定分区号,而是系统会自动指定5号之后的编号,因为之前说过,前面1-4个编号是预留给主分区和扩展分区的,主分区和扩展分区的数量把不能够超过4个,并且 扩展分区只能有一个,扩展分区 并不是真正可以 用的分区,而是必须划分出逻辑分区之后才能够使用.


在新增了分区之后 如果你不想重新启动的话,可以通过partprobe这个命令来强制让内核重新找一次分区表。SATA的硬盘在分区的时候至多到15号,IDE硬盘至多可以分到63号。并且,即使文件系统支持16T以前的硬盘空间,但是分区命令无法支持,fidisk无法处理2t以上的分区。



磁盘分区之后,自然要格式化写入文件系统才能够真正的使用。利用mkfs命令,来调用一些分区软件对分区进行磁盘格式化。在给分区进行格式化的时候,要格式化系统支持的格式,mkfs命令加上两个制表符的时候,系统会自动提示这样系统所 支持的文件系统。


在利用默认的模式mkfs -t ext3 xx格式化分区位ext3系统的时候,这个分区一些Inode的初始量都是被默认指定好的,如果想进行详细设置的话,那么就需要mke2fs的这个命令。其中-j这个参数是很重要的,加入这个参数将格式化位ext3,不加的话将格式化位ext2.


2、关于磁盘的检验:

磁盘检验一般用到的就是fsck这个命令。但是一般如果文件系统不出现重大问题的情况下不要去使用这个 命令,这个命令对于文件系统有一定 的破坏。检查某一个分区的时候,这个分区应该处于卸载状态,没有挂载到系统上。ext2/3文件系统在顶层目录里面会出现一个lost+found的目录,这个里面存放的就是你用 fsck这个命令文件系统一些有问题数据的存放地点。

如果这个文件目录里面是有数据的,那么就说明你的文件系统是有一定的问题的。调用fsck实际上是嗲用e2fsck这个软件。


3、关于磁盘的挂载与卸载:

在进行分区挂载的进食后,也尽量要确定,挂载的目录是空目录,并且挂载目录和挂载的文件系统是一一对应的关系,不能出现1对多,多对1的关系。如果要挂载的目录里面有数据,那么这些数据在挂载的分区被卸载之前就会被隐藏。


在利用默认的mount命令进行挂载的时候,不加任何参数的情况下,可以通过分析文件系统的superblock并且搭配linux自己的驱动程序去测试挂载,如果成功,就立即使用这种文件系统挂载起来。linux在/etc/filesystem里面指定了测试挂载文件系统的类型,也就是说,在挂载过程中,如果查看superblock之后发现文件系统的类型是什么,查看这个文件之后,才决定要不要进行测试挂载。而/proc/filesystems这个文件的内容是系统已经加载的文件类型。出了要分析superblock决定是否要进行测试挂载之外,还需要在/lib/modules/$(uname-r)/kernel/fs/里面进行查找,看是否有和文件系统类型相对应的驱动程序,再进行挂载操作。


挂载光盘的时候,在卸载之前是不能够退出光盘的,虽然软盘的挂载可以这么做,但是尽量不要做这种危险动作。


在进入单用户 维护模式的时候,系统的根目录会被 系统挂载为只读模式。如果你现在仍然相对根目录里面的数据进行一些修改操作的时候,就需要用到重新挂载根目录的命令。

mount -o remount,rw, auto /


也可以用mount命令将一个目录挂载到其他目录上面,这和挂载文件系统是不一样的 ,这种 行为相当于为目录创建一个软连接一样。

利用mount --bind xx xx这样的命令来实施。在挂载的是目录而不是文件系统的时候,必须要利用umount 挂载点的形式去卸载我们已经 挂载好的目录。


出了使用设备文件名进行挂载之外还可以用文件系统的卷标来进行挂载。dumpe2fs -h 设备名 这个命令即可以查看到该设备的卷标。之后,可以通过卷标来进行挂载操作。


4、关于硬盘参数的修改

硬盘中是有一些参数的,比如major主设备代码,minor次设备代码。

mke2fs是格式化的分区的命令,但是这个命令不会按照默认的一些 参数格式化,而是让用户自己指定一下参数。这个命令是可以在格式化的时候,直接更改卷标的。但是在格式化之后,利用e2label也可以更改相应分区的卷标。

tune2fs这个命令还是比较有用的 ,利用了三个参数来实现三个不同的功能:

-l 在文件系统的superblock中读取文件系统的有关信息

-j 将ext2转化为ext3系统

-L可以进行修改分区的卷标。


5、关于Linux的开机挂载:

根目录是必须要挂载进来的,而且要优先于其他任何分区挂载进来。并且其他挂载点要为自己的挂载创建一个新的目录,虽然这些目录的名字可以是任意的,但是在创建的时候一定要遵守一定的规则。挂载分区以及挂载点都是一一对应的,也就是说,任何情况下都不能出现同一时间内一个挂载点在没卸载之前 挂载的分区的时候再挂载其他分区。

和挂载文件系统有关的一个文件就是/etc/fstab,我们利用mount命令进行挂载的时候,实际上就是向这个文件里面添加一条 相应的记录。关于这个文件里面 的参数和内容还是比较重要的。所以我拿出来详细的分析一下:

【鸟哥Linux学习笔记】关于Linux磁盘管理和文件系统(2)_第1张图片

第一列的参数就是文件系统的名称,默认用的是分区的 卷标来表示,也可以替换成 实际的设备文件名。很重要的一点就是如果你的这个文件里面,文件系统的名称是以卷标来进行识别挂载的,那么你在利用e2label这个命令 修改分区卷标的时候一定要注意,如果这两个操作的结果不一致,很可能就会造成根目录无法挂载,再也不能开机启动 linux.

第二列的参数就是挂载点,也就是分区所挂在到的目录。想让系统开机就挂载指定的分区 这里必须指定分区的文件系统,不会像 手动使用mount命令一样,系统可以进行 测试挂载。

第三列就是一些 文件 系统的参数,比如异步还是同步,自动还是非自动,可读还是可写等等,关于文件系统的一些 具体参数。

第四列是能否被dump命令作用,dump这个命令是用来备份的。1代表每天要对该分区做备份工作,0表示不用。当然也有2的时候,表示不定日期进行备份工作。最重要的是,如果 你更改了上面拿个 /etc/fstab文件的内容之后,需要用 mount -a 和df这个命令来进行检测那个文件 有木有语法错误。因为mount -a这个命令就是要根据刚才更改的那个配置文件进行挂载。如果配置文件出错了,那么挂载的过程肯定也会相应的出错。


/etc/fstab是我们开机时候要加载的配置文件,实际在我们使用文件系统 挂载的过程中挂载记录是记录到 /etc/mtab /proc/mounts这两个文件里面的,但是如果你一旦孙欢fstab这个文件你很可能就不会正常开机而进入单用户维护模式,在这个模式里面,文件系统是处于只读 状态的,你当然不能够更改fstab文件。

但是你却可以用 之前mount命令,来进行重新挂载文件系统到更目录,并且用相应的权限改变文件系统让他有读权限。

mount -n -o remount,rw,auto /

-n参数只有在单用户维护模式下重新挂载分区 到根目录才要加,因为非单用户维护模式下,挂载的任何记录都会写入到上面 两个配置文件中 ,但是 在单用户模式下只有加了这个参数 之后才会将记录写入。



6、关于特殊设备的挂载

在挂载一些iso镜像文件耳朵时候,可以通过loop设备来进行挂载。在挂载的时候通过-o 指定一个loop参数,将镜像文件挂载为一个loop设备。

既然可以 将一个 镜像文件挂载为一个 loop文件,那么在系统的分区有限,并且已经没有额外的空闲空间来进行新的分区的话,是不是可以在原有的分区中创建一个大文件,格式化之后挂载上作为一个分区存在呢。应该是可以实现的。利用dd命令制作一个大文件,具体的用法可以自行百度。dd命令会指定block块的大小和数量,像是在砌墙一样,用block块堆出一个大的文件。接下来就是将这个大文件,利用 mkfs -t ext3 xx来对这个文件进行格式化。在之后进行挂载的时候也不要忘了要使用-o loop参数,把这个文件制作成一个loop设备进行挂载。


7、关于创建swap分区:

创建swap分区可能和创建普通分区稍微有一点 不同,其实swap分区就是我们在操作系统课上学到的虚拟内存的概念,由于物理内存实在是不够用,那么系统就会把一些在内容中暂时用不到的资源放在swap分区。这就swap分区的作用。

首先利用 fdisk创建一个空白的分区,并且通过t来改变分区的system id变为swap,系统 默认创建的分区都是Linux的文件系统。

创建好之后利用partprobe来强制内核重写分区表。之后就可以用mkswap来对相应的分区进行格式化。通过swapon来启动这一swap设备,在通过free查看内存的使用情况就可以看出设置swap之后,内存使用情况的一个变化。并且如果想开机就挂载这个设备的话,可以通过更改/etc/fstab来实现,但是一定不要忘了mount -a来检查文件的书写有没有语法错误。


8、为容量超过2t的硬盘进行分区:

fdisk是搞不定这样的事情了,所以会用到一个 新的工具叫做parted。

parted 设备名称 print

这个命令会输出这个 设备上面的分区情况

你可能感兴趣的:(操作系统,格式化,文件系统,磁盘)