linux 磁盘分区

Posted cook

tags:

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

文件知识

     存储空间数据分为:数据区,元数据区

     元数据:文件名,大小,时间戳,权限,属主、属组,对应的数据存储在哪些磁盘块上;
         index node: 索引区域中每个文件元数据条件,每个inode都有其编号:ls -i如果某inode指向的常见类型的文件(f, d),指定向磁盘的数据区中的某个或某些个磁盘块

     目录:数据区存储的是(直接附属于此目录)文件名,以及与其对应的inode编号,

     格式化:创建文件系统

     链接文件: 一个inode可以被引用多次,其有计数器:在引用次为降为0之前是不会被标记为未用的。
       两个路径的文件名:指向同一个inode,此时,一个文件就称为另一个文件的硬链接
     创建链接:
            ln [-sv] SRC DEST

            硬链接:
                不能对目录文件创建硬链接;
                硬链接不能跨分区
                创建硬链接会增加inode引用计数

            符号链接:
                可以对目录创建
                不受分区限制
                对文件创建符号链接不会增加引用计数
      文件删除:
            inode被标记为空闲,此inode指向的磁盘块被标记为空闲;
              如果inode被引用了多次,且此次删除未使得其引用计数降低为的话,这意味着文件被删除仅删除了一个访问路径;
       文件复制:
          创建一个新文件,并原文件中数据在新文件指向的磁盘块中再写一次的过程;
       文件移动:
              在同一个分区移到:移动文件仅是改变了文件访问路径;
              跨分区移到:在新分区创建文件,把数据复制过去,删除原分区数据;
    Linux文件系统的类型
         ext(2,3,4), xfs, ffs, ufs, reiserfs, jfs, vfat(fat32), ntfs
         交换文件系统:swap
         网络文件系统:nfs, smbfs(cifs)
         分布式文件系统:ceph
         光盘文件系统:isso9660
         btrfs,
    文件系统的日志功能:Journal
             ext2: 无日志功能
             ext3, ext4, xfs: 日志文件系统

磁盘知识

设备文件:特殊文件,只有inode,而没有数据, 关联至一个驱动程序,进而跟对应的硬件设备打交道;
        设备号:
                主设备号:用于标记设备类型
                次设备号:用于标记同一类型中的不同设备
        磁盘设备文件:
                 /dev/hd:
                 IDE: 并口, 133MB/s
        /dev/sd:
                 USB: 串行
                 SATA: 串行,6Gbps/8
                 SCSI: 并行,(Small Computer System Interface)
                 SAS:串行,
        /dev/sd[a-z]
               分区:数字
                /dev/sda1
                /dev/sda2

                分区编号:
                    主+扩展:1-4
                    逻辑:5
       硬盘分区:
                磁道:track
                扇区:sector
                柱面:cylinder:
                分区根据柱面划分
        MBR:Master Boot Record(主引导记录)

      512Bytes: 引导启动OS
                446bytes: 程序,bootloader
                64bytes: 分区表,每16bytes标记一个分区,一共4分区
                2bytes: 5A, MBR有效性标记

fdisk:分区创建

查看创建分区
        查看:fdisk -l [DEVICE]...
创建分区:fdisk [DEVICE]
                p: 显示磁盘分区表
                n: new,新建分区
                d: delete,删除分区
                t: 修改分区的系统ID
                l: 列表出所有已经的系统ID
                w: 保存并退出
                q: 不保存退出

         ps: 对于已经有分区处于使用状态的磁盘来讲,新建分区后需要让内核重读其分区表:
         CentOS 6:
                partx -a [DEVICE]
                kpartx -af  [DEVICE]  

mkfs:创建文件系统

 mkfs :  -t FSTYPE [DEVICE]
 mkfs -t FSTYPE = mkfs.FSTYPE
 mkfs -t ext4 = mkfs.ext4
 ps Linux内核是模块化的,这些模块支持动态装载和卸载,文件系统可能会被直接打包进内核,也可以被编译成内核模块;

mke2fs:创建文件系统

        -t {ext2|ext3|ext4}:指定文件系统
        -b {1024|2048|4096}:指定块大小
        -L LABEL: 打标
        -j: 相当于 -t ext3
        -i #: 每多少字节给创建一个inode,此字节数不应该少小块大小
        -N #: 直接指定可用的inode数;
        -m #: 指定预留空间占整个分区空间的百分比;默认为5;
        -O:指定分区特性

 blkid: 查看指定块设备的信息

 e2label:查看或设定卷标

e2label DEVICE [LABEL]

 查看超级块信息

 tune2fs -l DEVICE
 dumpe2fs -h DEVICE

 tune2fs:修改分区属性 

       块大小无法调整;
        -j: ext2 --> ext3
        -L LABEL:修改卷标
        -m #: 修改预留空间百分比;
        -O [^]FEATURE: 启用指定特性,特性前加^,表示关闭此种特性
        -o [^]mount-options: 开启或关闭指定的挂载选项

 fsck: 因进程意外中止或系统崩溃等情况导入写入操作非正常中止时,可能会导致文件损坏;此时,应该修复文件系统:是离线修复

        -t fstype
        -a: 自动修复错误
        -r: 交互式修复错误

  e2fsck: 专用于修改ext系列文件系统

         -y: 对问题自动回答为yes
         -f: 强制进行检测

   swap:交换分区

 缓解物理内存资源不够用的情况;
 创建交换分区:
 mkswap [-L LABEL] DEVICE
 swapon [DEVICE]
                -a: all, 启用所有交换分区
                -p #: 指定此交换设备的优先级

  swapoff:禁用某交换分区设备
          swapoff [DEVICE]
                        -a: 禁用所有   

  mount: 文件系统挂载,默认只有管理员才有权限

        将额外的分区与根文件系统上的某目录建立关联关系的过程;
         目录中的原有文件会被隐藏

        挂载点:另一个文件系统的访问入口

        挂载: mount DEVICE MOUNT_POINT

        固定挂载点:/mnt, /media

            mount [option]... [-t fstype] [-o option]  设备  挂载点
                   挂载点:事先存在或使用空闲目录;
                    -t fstype:指定文件系统类型
                    -r: readonly, 只读挂载
                    -w: read and write, 读写挂载
                    -L LABEL:以卷标方式指定设备, mount -L MYDATA 挂载点
                    -U UUID: 以UUID的方式指定设备,mount UUID=‘uuid‘ 挂载点, mount -U uuid 挂载点
                    -a: 自动挂载所有(/etc/fstab文件中定义的)的支持自动挂载设备
                    -n: 挂载时,不更新/etc/mtab文件

                -o option:
                    async:异步I/O,数据写操作先于内存完成,而后再根据某种策略同步至持久设备中
                    sync: 同步I/O,
                    atime/noatime: 文件和目录被访问时是更新最近一次的访问时间戳
                    auto/noauto:设备是否支持mount的-a选项自动挂载
                    diratime/nodiratime: 目录被访问时是更新最近一次的访问时间戳
                    dev/nodev: 是否支持在此设备上使用设备;
                    exec/noexec: 是否允许执行此设备上的二进制程序文件
                    suid/nosuid: 是否支持在此设备的文件上使用suid
                    remount: 重新挂载,通常用于不卸载的情况下重新指定挂载选项
                    ro: 只读
                    rw: 读写
                    user/nouser: 是否允许普通挂载此文件设备
                    acl: 在此设备是支持使用facl,默认不支持;
          查看所有已经挂载的设备:
                    mount
                    cat /proc/mounts
                    cat /etc/mtab

umount :卸载挂载点没有被进程访问时方可以卸载

 umount DEVICE
 umount MOUNT_POINT

 fuser: 查看哪些进程正在访问挂载的设备 

 fuser -v 挂载点
 中止正在此挂载点的进程:
  fuser -km 挂载点

 df: 查看磁盘剩余空间

            -h: human-readable
            -i: 显示inode的使用信息而非默认的磁盘空间使用信息

 du: 查看磁盘已用空间

            -s:
            -h: human-readable

 free: 查看内存及交换分区的使用信息
  /etc/fstab:自动挂载的设备的配置文件

 6字段:
         挂载的设备:
         设备文件
         LABEL
         UUID
         挂载点:
         文件系统类型
         挂载选项:
 挂载选项可以有多个,彼此间使用逗号分隔;
 转储频率:
        0:从不转储
        1: 每天转储
        2: 每隔一天
 自检次序:
        0:不自检,额外创建的文件系统都无须自动自检
        1:首先自检,通常只有根文件系统需要首先自检
        2:次级自检,不同的设备可以使用同一个自检次序

 

     























以上是关于linux 磁盘分区的主要内容,如果未能解决你的问题,请参考以下文章

linux磁盘分区命令是啥

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

linux怎样查看磁盘分区情况

Linux 磁盘分区详解

Linux 磁盘 操作

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