Linux磁盘分区和文件管理系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘分区和文件管理系统相关的知识,希望对你有一定的参考价值。

1、磁盘分区

        磁盘类型分为串口的IDE硬盘(hd[a-d])和并口的SCSI、SATA硬盘(sd[a-z])。

          硬盘的分区分为主分区(p)和扩展分区两类(e),硬盘的主分区可以划分为4个分区,扩展分区需要继续二次分区后才能使用,即逻辑分区,且主分区和扩展分区之和不能超过4,逻辑分区是没有数量上的限制,逻辑分区一定是从sd[a-z]5开始。

         分区命令:fdisk、parted、cfdisk、sfdisk    一般划分2T以下的硬盘用fdisk、2T以上的用parted。

          fdisk命令:

                 查看磁盘分区情况:fdisk -l

                 对磁盘进行分区:fdisk disk                 

     技术分享

      以/dev/sdb为例对其分区:fdisk /dev/sdc

           技术分享

           分区选项:n:添加新的分区   d:删除分区  l:列出所有分区类型   p:输出分区表

                          q:退出不保存      w:保存并退出  t:更改分区类型     

            技术分享           

             创建一个1G的主分区:

             技术分享

            最多创建4个主分区,如果不需要扩展分区的话,扩展分区要占一个主分区。

            技术分享

            如果删除的话直接在分区里面选择d,然后选择要删除的分区号


文件管理系统  

            创建文件系统需要格式化:

                                1、低级格式化:主要划分磁道,在分区之前

                                2、高级格式化:主要创建文件系统,在分区之后

               

               文件系统的分类:                         

                                Linux文件系统:ext2、ext3、ext4、xfs、relsefs、btrfs

                                windows文件系统:ntfs、fat32

                                光盘:iso9660

                                网络文件系统:nfs,clfs

                                集群文件系统:gfs2(Redhat),ocfs(Oracle)

                                内核级的分布式文件系统:ceph

                                用户空间的分布式文件系统:glusterfs.lustre,tfs...

                                交换文件系统:swap

                                unix的文件系统:UFS,FFS,JFS,Jfs2

                                伪文件系统:proc,sysfs,tmpfs

             文件系统的数据:

                            1.元数据:与文件内容无关,存放文件的名称、大小、权限、属主、属组、时间戳、数据块指针等, 

                                           为这些文件信息提供一个存储空间,就叫inode,称为索引节点。

                            2.数据:存放文件的内容, 


             链接文件:

                            1、硬链接:指向相同的idnode的多个文件路径    

                      特性:

                                        1、目录不支持硬链接

                                        2、硬链接不能跨文件系统 每个文件系统的iodine都是独立管理的

                                        3、创建硬链接会增加inode引用计数 

                                        4、删除一个文件不影响另一个文件。

                     用法:ln   源文件  目标文件

                            2、 软链接:指向一个文件路径的另一个文件路径 

                                  特性:

                                         1、符号连接与文件是两个各自独立的文件,各有自己的inode,对原文件创建符号链接不会增加链接数

                                         2、支持对目录创建符号链接,可以跨文件系统

                                         3、删除符号链接文件不影响原文件;但删除原文件,符号指定的路径即不存在,此时会变成无效链接

                 用法:ln -s   源文件  目标文件或目录

                                    

           

         文件系统管理工具:

                        创建文件系统的工具

                            mkfs.

                               mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs

                      检测及修复文件系统的工具

                         fsck

                             fsck.ext2,fsck.ext3,fsck.ext4...

                      查看其属性的工具

                          dumpe2fs,tune2fs                          

                       调整文件系统特性

                                    tune2fs

          比如给刚才的/dev/sdc1分区进行格式化:

                    技术分享        

                    Creating journal :表示创建日志系统,除了ext2没有日志系统外,其他都有。

                    修复/dev/sdc1:                  

            [[email protected] tmp]# fsck.ext4 /dev/sdc1
            e2fsck 1.42.9 (28-Dec-2013)
            /dev/sdc1: clean, 11/65536 files, 12955/262144 blocks


                     查看/dev/sdc1的属性:                     

            [[email protected] tmp]# tune2fs -l /dev/sdc1          
             Filesystem volume name:   <none>  //卷标
             Last mounted on:          <not available>
             Filesystem UUID:          4e3f7d63-c957-46de-bc3f-8fa94a0b94be
             Filesystem magic number:  0xEF53
             Filesystem revision #:    1 (dynamic)
             Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
             Filesystem flags:         signed_directory_hash 
             Default mount options:    user_xattr acl   //挂载选项
             Filesystem state:         clean     //文件系统状态
             Errors behavior:          Continue
             Filesystem OS type:       Linux
             Inode count:              65536
             Block count:              262144
             Reserved block count:     13107     //预留的空间
             Free blocks:              249189
             Free inodes:              65525
             First block:              0
             Block size:               4096      //超级块大小

          lsmod : 查看文件系统加载的内核模块

         

                 ext系列文件的专用管理工具:mke2fs

                     mke2fs [option] device

                        -t:指明要创建的文件系统类型

                        -b:指明块大小{1024|2048|4096} 1K,2K,4K

                        -L:指明卷标;

                        -j:创建有日志功能的文件系统ext3;

                             mke2fs -j =mke2fs -t ext3

                        -i:指明每多少字节创建一个inode。

                        -N#:指明要给此文件系统创建的多少个inode,#表示个数

                        -O:指明要加入的特性

                         mke2fs -O has_journal /dev/sda1   开启日志功能

                         mke2fs -O  ^has_journal /dev/sda1   关闭日志功能

                        -m#:指定预留空间,百分百:直接数字5

        

                 e2lable:查看卷标

                         e2lable device:查看卷标

                         e2lable device 名字:修改卷标

                         e2lable /dev/sdc1 MYDATE                   

           [[email protected] tmp]# e2label /dev/sdc1 mydata
           [[email protected] tmp]# blkid /dev/sdc1
        /dev/sdc1: LABEL="mydata" UUID="4e3f7d63-c957-46de-bc3f-8fa94a0b94be" TYPE="ext4"

             blkid:查看系统文件的属性

                 

           tune2fs:查看或修改ext文件系统的某些属性   不损害数据

                             注意:块大小创建后不可修改                             

                                      tune2fs [option] devices

                                     -l:查看超级块的属性

                                      -j:将ext2升级ext3

                                     -L:设定或修改卷标 

                                     -m #:调整预留百分比

                                     -O:[^]特性:调整或关闭某种特性

                                     -o:[^]:开启或关闭某种挂载选项                       

              [[email protected] tmp]# tune2fs -m 5  /dev/sdc1
              tune2fs 1.42.9 (28-Dec-2013)
              Setting reserved blocks percentage to 5% (13107 blocks)
              Reserved block count:     13107

         

      fsck:用于实现文件系统检测的工具

                             因进程意外终止或者系统崩溃等,导致操作非正常终止,可能会造成文件损坏,此时,应该检测并修复文件系统,建                              议离线进行。                             

                             ext系列文件系统的专用工具:

                                  e2fsck: 检测ext2|ext3|ext4

                                     e2fsck [options] devices

                                     -y:对所有问题自动回答‘yes’

                                     -f: 即时文件系统处于clean也检测                                     

                             fsck:

                                    -t:指定文件系统类型

                                    -a:无须交换自动修复(不建议)

                                    -r:交互式修复                             

             swap文件系统:

                         Linux上的交换分区必须使用独立的文件系统(独立分区);且文件系统的system ID必须为82;                 

                     创建swap设备:mkswap devices

                              mkswap:                     

                  交换分区的启用和禁用:

                          启用:swapon devices    

                          禁用:swapoff devices

                          free -m:查看内存

           

文件系统的使用:

                  首先要“挂载”:mount命令和umount命令

                     根文件系统之外的其他文件系统要想能够被访问,都必须通过"关联"至

                     根文件系统上的某个目录来实现,此关联过程叫挂载;此目录即为‘挂载点’                       

                           挂载点上的原文件目录会被隐藏                         

                  mount命令:   /etc/mtab  记录挂载的信息或者mount或者cat /proc/mounts

                       命令选项:

                           -r:只读挂载

                           -w:读写挂载

                           -n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中

                              加上-n用于禁止此特性

                            -t:指明要挂载的设备上的文件系统的类型                           

                           -L:挂载时以卷标的方式指明设备                              

                           -o:指明挂载选项  启用特性

                               sync/async:同步/异步操作

                                   同步:内存数据写入到磁盘,边读边写,磁盘得一直等待着数据

                                   异步:内存把数据写完,再写入到磁盘中,磁盘无需一直等待

                               atime/noatime:文件或目录被访问时是否立即更新时间戳/不更新

                               diratime/nodiratime:目录在访问时是否更新其时间戳

                               remount:重新挂载

                               acl:支持使用acl访问列表

                               dev/nodev:此设备上是否允许创建设备文件

                               exec/noexec:是否允许运行此设备上的程序文件;

                                                   防止此设备程序自动运行

                               auto/noauto:是否允许自动挂载

                               user/nouser:是否允许普通用户挂载此文件系统

                               defaults:  Use default options: rw, suid, dev, exec, auto, nouser, and async.

                               suid/nouid:是否允许程序文件上的suid和sgid特殊权限生效

       

          umount命令:

                          umount devices |dir                      

                                  注意:正在被进程访问的挂载点无法被卸载

                               lsof /mnt :查看挂载点被谁或进程在使用

                               fuser -v /mnt :  查看挂载点被谁在使用          

                               fuser -km /mnt:把占用的进程终止                  

                  挂载本地的回环设备:

                             mount -o loop /path/to/somefile  挂载点

                             mount -o loop /root/tty.iso /media

                   mount -a :可自动挂载定义在fstab文件中的设备       

以上是关于Linux磁盘分区和文件管理系统的主要内容,如果未能解决你的问题,请参考以下文章

linux系统的磁盘分区有哪几种?

Linux扩展分区和文件系统

Linux 0.11源码阅读笔记-文件管理

Linux 磁盘分区类型和文件系统

Linux系统的磁盘管理

Linux 磁盘与文件系统管理