Linux学习之路5-磁盘管理及文件系统管理

磁盘管理及文件系统管理


磁盘管理

 

分区工具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 -ocodepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom

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

                 ntfs的分区

                mount -oiocharset=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 fileNamemountPoint -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卸载

wKioL1XsN-eQHmMPAADwurB0xbI443.jpg

 

文件系统相关挂载配置文件:/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这个目录的总容量算出来了


你可能感兴趣的:(linux,文件系统,磁盘管理)