Linux-----磁盘管理

Posted

tags:

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

df

df命令:

     查看文件系统空间占用的信息。

     利用该命令可以了解硬盘已使用了多少空间,还剩下多少空间,还可以查看当前磁盘上所有挂载的设备(文件系统)及挂载点。

显示结果如下:①文件系统②磁盘总容量③已使用容量④剩余容量⑤已使用的百分比⑥挂载点技术分享图片

技术分享图片

注:带tmpfs的表示临时文件系统,重启后内容会重置。

       如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!

选项:

  -i:显示inode的详细信息
  -h:使用合适的单位显示信息
  -k:以K为单位显示信息
  -m:以M为单位显示信息
  -T:查看文件系统类型

示例:

    df:查看系统磁盘设备,默认是KB为单位

    df -h:查看系统磁盘设备,以合适的单位来显示

技术分享图片

du

du命令:

    用于查看某个目录总体空间占用的情况

   du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

选项:

   -h:以合适的单位显示信息
   -s:仅显示指定目录下所有文件大小的总和
   -k:以KB为单位显示信息
   -m:以MB为单位显示信息

示例:

    du -sh:以合适的单位显示指定目录下所有文件大小的总和

 技术分享图片

free命令:

   查看内存空间的使用情况

   选项:

      -m: 以MB为单位
     -g: 以GB为单位

示例:

    free -m: 以MB为单位查看内存空间的使用情况  

    free -g: 以GB为单位查看内存空间的使用情况

技术分享图片

parted命令:

parted 是高级分区操作命令,它的操作都是实时生效的,小心使用。在centos 7可以用partprobe命令更新硬盘,centos 6 不可以。

用法: 

 parted [选项]... [设备 [命令 [参数]...]...]
        parted /dev/Device mklabel  gpt | msdos  : 改变磁盘类型为GPT或MBR
        parted /dev/Device print :显示磁盘分区信息
        parted /dev/Device mkpart primary 1 1000 : 创建分区 1 为分区号;1000为分区大小(默认为M)
        parted /dev/Device rm 1 : 删除第一个分区
        parted -l : 列出所有设备信息

fdisk : MRB分区工具

fdisk是Linux的MRB分区表操作工具,gdisk是GPT分区表的操作工具,用法与fdisk基本一致。

fdisk /dev/sdX : 管理sdX磁盘,对指定硬盘修改分区

fdisk 子命令:

       m: 帮助
            o: 创建msdos分区label
            n: 创建新的分区
            d: 删除分区
            p: 查看当前分区表
            a: 添加/取消 启动标记
            t: 转换分区类型ID
            l/L: 显示分区类型ID表

示例:

fdisk -l : 列出所有块设备的分区信息

fdisk -l /dev/sdX: 查看指定块设备的分区信息

cat /proc/partitions  查看内核是否已经识别新的分区:

技术分享图片

注:若仅有 fdisk -l 时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

四、磁盘格式化

mkfs命令:

     创建文件系统

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

查看支持的文件系统:cat /proc/filesystems

配置文件: /etc/mke2fs.conf 用于设定默认特性及各文件系统特有的特性

创建ext文件系统

选项:

    -t :指定文件系统类型 {ext2 | ext3 | ext4}       
    -j :相当于 -t ext3 
    mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
    -L label : 指定卷标,
    -b{1024|2028|4096}  :指定块大小
    -i #   :为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
    -N # : 直接指定分区中创建多少个inode
    -I n  :指定inode大小
    -m #:为管理员预留空间占总空间百分比,默认为5%
     -O FEATURE[,...] :启用指定特性(只能开启以下特性) 
     -o ^FEATURE 禁用指定特性

tune2fs命令:

  修改文件系统信息,重新设定ext 系列文件系统可调整参数的值   

       -l :查看指定文件系统超级块信息;super block
       -L 'LABEL' :修改卷标(ext)
        mkfs -L 'LABEL'  或  mke2fs -L 'LABEL' 创建时设置卷标
        e2label /dev/sd# 查看卷标
        e2label /dev/sd# 'LABEL' 重命名卷标
      -m # :修预留给管理员的空间百分比
      -j:  将ext2 升级为ext3
      -O:  文件系统属性启用或禁用, –O ^has_journal
      -o:  调整文件系统的默认挂载选项,–o ^acl (centos7里默认开启acl   6 默认不开启)
      -U UUID:  修改UUID号

例:tune2fs -o acl /dev/sdb2 开启/dev/sdb2的acl功能

dumpe2fs /dev/sda# 查看文件系统信息:superblock信息及block group信息

    -h :查看超级块,不显示block group而只显示superblock 与tune2fs -l一致

小知识:超级块就是文件系统的内置,指定文件系统类型

    block group 0里有super block ,后奇数组都有备份,能用于修复

文件系统检测:

fsck:

       用来检查和维护不一致的文件系统

选项:

   -t : 文件类型 设备
   -f : 强行检测
   -a :  如果检查有错自动修复错误
   -r : 交互式修复错误

示例:

        fsck -y : 检查修复每个文件

注:如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。

e2fsck : ext系列文件系统专用的检测修复工具

   -y :自动回答为yes
   -f :强行检测

磁盘挂载和卸载:

mount

mount 命令:

      通过查看/etc/fstab文件显示当前以挂载的设备

用法:

mount [options] -o [option] -t 文件类型  设备  挂载目录
设备:
         (1)设备文件:例如/dev/sr0,/dev/sdb1
        (2)卷标:-L '卷标名'
        (3)UUID:-U 'UUID'
        (4)伪文件系统名称:proc,sysfs
挂载目录:
        (1)必须事先存在,尽量使用空目录

选项:

   -t :指定要挂载设备的文件系统类型
   -r :readonly,只读挂载
   -w :读写挂载
   -n :挂载后不更新/etc/mtab,导致mount和df命令无法查询到挂载信息,但可查看/proc/mounts
   -a :读取/etc/fstab 挂载当前尚未挂载的文件系统,已经挂载的文件系统不会重新挂载,也不会更新挂载选项
   -L :以卷标名来指定要挂载的设备
   -U :以UUID来指定要挂载的设备
   -B,--bind :绑定目录到另一个目录上(相当于软链接)
   -o [options] :(挂载文件系统的选项),多个选项用逗号分隔
        async (default) 异步模式  sync 同步模式,立即同步
                atime (default) 文件被访问时,更新atime  noatime 文件被访问时,不更新atime
                diratime (default) 目录被访问时,更新atime nodiratime 目录被访问时,不更新atime
                auto (default) 写入/etc/fstab后,被mount -a自动挂载
                noauto 写入/etc/fstab后,不被mount -a自动挂载
                exec (default) 该目录下有rx权限的文件可以被执行
                noexec 该目录下所有文件对所有用户包括root,都不可以被执行
                dev (default) 该目录下设备文件可以被使用
                nodev 该目录下的设备文件不可被使用
                suid (default) 表示该目录下的suid,sgid权限生效
                nosuid 表示该目录下的suid,sgid权限不生效
                remount,xxx  不卸载的情况下,可直接更新挂载选项
                rw (default) 
                ro 
                nouser(default) 写入/etc/fstab的项目不能让普通用户挂载/卸载
                user 写入/etc/fstab的项目可以让普通用户挂载/卸载
                acl (centos7 default) 该目录下的文件可以设置acl权限
                noacl (centos6及之前 default) 该目录下的文件不可以设置acl权限
                loop 挂载loop设备,如iso时,要指定
                defaults rw, suid, dev, exec, auto, nouser, async,atime,diratime,acl(centos7)

示例:

cat   /proc/mounts:查看内核追踪到的已挂载的所有设备
技术分享图片

注:文件挂载成功后,挂载后不更新/etc/mtab,导致mount和df命令无法查询到挂载信息,但可以用df -a查看。

/etc/fstab每行定义一个要挂载的文件系统。     

工具dd:

dd if=file  of=file  bs=n  count=n    if=file :从某个文件读取数据
    of=file :输出到某个文件
    bs=size : block size,指定块大小(ibs=obs)
    ibs=size :一次读取size个byte
    obs=size :一次写size个byte
    cbs=size :一次转化size个byte
    skip=blocks :从开头忽略blocks个ibs大小的块
    seek=blocks :从开头忽略blocks个obs大小的块
    count : 复制多少个bs
    conv=onversion... :用指定参数转换文件
    转换参数:
            ascii :转换ebcdic码为ascii
            ebcdic :转换ascii为ebcdic
            lcase :把大写字符转换为小写
            ucase :把小写转换为大写
            nocreat :不创建输出文件
            noerror :出错时不停止
            notrunc :不截短输出文件
             sync :把输入块填充到ibs个字节,不足的部分用空(NUL)字符补

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

Linux磁盘管理的Linux管理命令

Linux磁盘管理系列 — 磁盘配额管理

【Linux命令】磁盘管理(逻辑卷与物理卷)

Linux 磁盘管理

Linux 下磁盘管理--逻辑卷--LV

Linux 磁盘管理