磁盘管理及文件系统管理

时间:2022-04-14 18:30:11


磁盘管理

 

分区工具fdisk (最多支持一个硬盘划分15个分区)

   管理子命令

      n 新建 p 显示分区 t 更改分区类型 d 删除分区 l分区类型说明 w 保存退出

      q 放弃保存退出 m 获取帮助

      

      注意:创建完成之后,查看内核是否已经识别新的分区:

         # cat /proc/partitions

      

      如果没有识别,可以使用以下命令让系统识别:

         CentOS 5上使用: partprobe [DEVICE]

             例如pratprobe /dev/sdb1

         CentOS 6,7上用: partx   kpartx

             partx命令:partxDEVICE

                 -a DEVICE  激活所有分区

                 -a -n M:N DEVICE 激活指定

                     M

                     M:

                     :N

             kpartx命令:

             kpartx -af DEVICE

 

文件系统管理

 

  • linux文件系统包括:ext2(非日志型),ext3(日志型),ext4(日志型),reiserfs, xfs, btrfs(日志型,最新)
                   swap(交换分区)

  • 光盘文件系统:iso9660

  • Windows文件系统:fat32(vfat), ntfs

  • Unix: ffs, ufs, jfs, jfs2

  • 网络文件系统:nfs, cifs

  • 集群文件系统:ocfs2, gfs2

  • 分布式文件系统:ceph,moosefs, mogilefs, hdfs,gfs, glusterfs

 

 创建文件系统:

  • mkfs (实际上它根据不同的文件类型,对应/sbin下的mkfs.ext2,mkfs.ext4等其他格式,根据-t来进行调用)

    mkfs -t type DEVICE
    例如: mkfs �Ct ext4 /dev/sdb1 = mkfs.ext4 /dev/sdb1





  • mke2fs(ext系列文件系统的专用管理工具):


    mke2fs -t {ext2|ext3|ext4} DEVICE

    -b BLOCK: 1024, 2048, 4096
    -L 'LABEL': 设定卷标
    -m 保留给管理员的空间
    例如:mke2fs -t ext4 -L ‘TEST’-b 2048 -m 5 /dev/sdb2


  • blkid命令:获取文件系统类型、UUID、卷标
    例:blkid 或 blkid /dev/sdb2

 

  文件系统属性查看及调整工具:

    e2label卷标显示、更改

    例:

    e2label /dev/sdb2 显示卷标

    e2label /dev/sdb2 TEST2  更改卷标为TEST2

 

    tune2fs (显示ext系列文件系统的属性,或调整其属性)

    参数:

    -l 显示整个文件系统信息,包括超级块信息

    -L 修改卷标

    -m 调整预留给管理员管理的百分比空间

    -j ext2转换成ext3

    -O:文件系统属性的启动或关闭 (已加载组件的启动或关闭)

    -o:文件系统默认挂载选项的启用或关闭(组件是否加载)

    -c max-mount-counts设置强制自检的挂载次数,如果开启,每挂载一次mount count就会加1,超过次数就会强制自检

    -i [d|m|w] 设置强制自检的时间间隔[d天m月w周]

    例:

    tune2fs -O ^has_journal /dev/sdb2 关闭日志功能

    tune2fs -O ^has_journal /dev/sdb2 启动日志功能

    tune2fs -c 30 /dev/hda1 设置强制检查前文件系统可以挂载的次数

    tune2fs -c -l /dev/hda1 关闭强制检查挂载次数限制。  #有些分区本身默认就是-1,也就是不检测

    tune2fs -i 10 /dev/hda1 10天后检查

    tune2fs -i 1d /dev/hda1 1天后检查

    tune2fs -i 3w /dev/hda1 3周后检查

    tune2fs -i 6m /dev/hda1 半年后检查

    tune2fs -i 0 /dev/hda1 禁用时间检查

    tune2fs -j /dev/hda1 添加日志功能,将ext2转换成ext3文件系统

    tune2fs -r 40000 /dev/hda1 调整/dev/hda1分区的保留空间为40000个磁盘块


    判断是ext2还是ext3:

    tune2fs �Cl/dev/sdb1 | grep features

    看Filesystem features:has_journal

    是否有has_journal,有则是ext3文件系统

  

    df -T 查看分区文件系统类型

    例:df -T /dev/sdb1


    dumpe2fs

    例:

    dumpe2fs /dev/sdb2

    dumpe2fs -h /dev/sdb2 加-h仅显示超级块信息

 

  文件系统检测

    fsck(实际上它根据不同的文件类型,对应/sbin下的fsck.ext2,fsck.ext4等其他格式,根据-t来进行调用)

    fsck -t type

    fsck.type

    -a: 自动修复错误

    -r: 交互式修复错误

    -f: 强制检测

    例:fsck -t ext4 -a -f /dev/sdb2

 

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

    -y: 自动回答为“yes”

    -f:force

    例:e2fsck -f /dev/sdb2

 

  文件系统挂载:

    mount挂载:

    mount:通过读取/etc/mtab文件来显示当前系统所有已经挂载的设备;

    mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;

    mount [options] [-o options] DEVICE MOUNT_POINT

        [options]:命令选项

        [-o options]:挂载选项

        DEVICE: 要挂载的设备

            (1) 设备文件:/dev/sda5

            (2) 卷标:-L 'LABEL'

            (3) UUID:-U 'UUID'

            (4) 伪文件系统名称

        MOUNT_POINT: 挂载点

 

    常用选项:

    -t type:文件系统类型

    -r: 以“只读”方式挂载此文件系统

    -w: 以“读写”方式挂载此文件系统

    -n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;

    此时,如果想查看挂载的所有文件系统:cat/proc/mounts

    -a: 自动挂载所有支持自动挂载的设备;

    -B:绑定目录至另一个目录上;

    -o 挂载选项:

        async:异步模式

        sync: 同步模式

        atime/noatime:是否更新访问时间戳;

        diratime/nodiratime:是否更新目录的访问时间戳;

        auto/noauto: 是否允许此设备被自动挂载;

        exec/noexec:是否允许执行此文件系统上应用程序;

        dev/nodev:是否支持在此设备上使用设备文件;

        suid/nosuid:

        remount:重新挂载

        ro:以只读模式挂载

        rw:以读写模式挂载

        user/nouser: 是否允许普通用户挂载此设备;

        acl:是否支持此设备上使用facl;

        defaults:默认的选项为rw, suid,dev, exec, auto, nouser, and async

 

        例:

        挂载fat32的分区

        mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom

        (mount -t vfat -o iocharset=cp936 /dev/hda7 /mnt/cdrom)

        挂载ntfs的分区

        mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom

        挂载iso文件

        mount -o loop /abc.iso /mnt/cdrom

        挂载软盘

        mount /dev/fd0 /mnt/floppy

        挂载USB闪存

        mount /dev/sda1 /mnt/cdrom     

        挂载所有/etc/fstab内容 mount -a

        挂载镜像文件

        mount fileName mountPoint -o loop,fileName是镜像文件名(*.iso,*.img),其它的不用说了,跟上面一样。

        例:如我有一个a.iso光盘镜像文件,mount a.iso a -o loop,这样进入目录a你就能浏览a.iso的内容了,*.img文件的

          用法一样。

 

    umount:卸载命令

        # umount DEVICE

        # umount MOUNT_POINT

        例:umount/dev/sdb1 或 umount /mnt/aa

        如果卸载时提示该文件系统正在使用中,可用fuser查看是谁在用,还可以用-km把它强行结束

        例:fuser -v /mnt/aa 查看谁正在使用这个挂载了设备的目录

        fuser -km /mnt/aa 强制结束使用着的进程,结束后就可以umount卸载

磁盘管理及文件系统管理

 

  文件系统相关挂载配置文件:/etc/fstab

    要挂载的设备:

    设备文件、LABEL=、UUID=、伪文件系统名称

    挂载选项:

      defaults(包含rw, suid, dev, exec, auto, nouser, andasync)

    转储频率:

      0: 不转储

      1: 每天转储

      2: 每隔一天转储

    自检次序:

      0:不自检

      1:首先自检,通常只有/才为1

       2:

 

  交换分区swap:

     mkswap:创建交换分区

    语法:mkswap [option] DEVICE

        -L 'LABEL' 

    例:mkswap -L ‘swap1’ /dev/sdb2

        

    swapon:启用交换分区

    语法:swapon [option] [DEVICE]

        -a: 激活所有交换分区

        -p PRIORITY: 设定其优先级;你可以在0到32767中间选一个数字给他。或是在/etc/fstab 里面加上 pri=[value]
          ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用 swapon -a 来启动他们,而且有优先权设定。

    例:swapon -p 2 /dev/sdb2

 

    swapoff:禁用交换分区

    swapoff [option] [DEVICE]

    例:swapoff /dev/sdb2

 

    用文件做交换分区:

    dd if=/dev/zero of=/mnt/a.swap bs=1M count=100

    mkswap /mnt/a.swap

    swapon /mnt/a.swap


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

    df: disk free

    -h: human-readable 以易读方式展现

    -i: inode数量

    -P: 以Posix兼容的格式输出

    例:df -h 或 df -ih 或直接df

    

    du: disk usage

    -h: human-readable以易读方式展现

    -s: summary 统计总的容量

    例:du -h /root 分别统计/root里各个目录的大小,或 du -hs /root 这样就会把root这个目录的总容量算出来了