8.3文件系统的管理与挂载

    Linux文件系统:ext(2,3,4), xfs, reiserfs(suse),
        VFS虚拟文件系统

        硬链接和符号链接:

        设备文件:
            b
            c

            mknod [option] NAME TYPE [MAJOR MINOR]
               -m mode

                /dev/null是无硬件设备与之对应的: 软件模拟的设备

        /dev/sd[a-z]#
            1-4:
            5+:  逻辑分区

            IDE:/dev/hd

        分区:根据柱面来划分 cylinder

        fdisk, sfdisk, parted

创建文件系统:
    mkfs : make file system
    mkfs - build a Linux file system
    mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
        -t FSTYPE [DEVICE]
    -t fstype
      Specifies the type of file system to be built.  If not specified, the default file system type
      (currently ext2) is used.
        mkfs -t FSTYPE 自动映射为 mkfs.FSTYPE
            mkfs -t ext4 = mkfs.ext4

    注意:CentOS
      文件系统必须在内核中支持才行,
        Linux内核是模块化的,这些模块支持动态装载和卸载;
            文件系统可能会被直接打包进内核,也可以被编译成内核模块;

                # lsmod
                lsmod - program to show the status of modules in the Linux Kernel

        如果期望将某分区格式化成某特定文件系统,通常需要一个与之对应的在用户空间
        可使用命令行工具来实现;
            # yum -y install xfsprogs

        文件系统的日志功能:Journal
            ext2: 无日志功能
            ext3, ext4, xfs: 日志文件系统

[root@localhost ~]# mkfs.xfs /dev/vg_lvm/test
meta-data=/dev/vg_lvm/test       isize=256    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# blkid /dev/vg_lvm/test
/dev/vg_lvm/test: UUID="5579e5eb-566b-4fa1-8869-38b37a09920c" TYPE="xfs"
    mke2fs:
    mke2fs - create an ext2/ext3/ext4 filesystem
        -t {ext2|ext3|ext4}:指定文件系统   不写是ext2的文件系统
        -b {1024|2048|4096}:指定块大小
        -L LABEL: 打标
        -j: 相当于 -t ext3
        -i #: 每多少字节给创建一个inode,此字节数不应该小于块大小
        -N #: 直接指定可用的inode数;
        -m #: 指定预留空间占整个分区空间的百分比;默认为5;

        -O:指定分区特性


    blkid: 查看指定块设备的信息
[root@localhost ~]# mke2fs -t ext3 -L TEST /dev/vg_lvm/test
mke2fs 1.41.12 (17-May-2010)
Filesystem label=TEST
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# blkid /dev/vg_lvm/test
/dev/vg_lvm/test: LABEL="TEST" UUID="5184aef4-aff9-422d-8efa-e68efd2725fc" SEC_TYPE="ext2" TYPE="ext3"
   
    e2label:查看或设定卷标
    e2label - Change the label on an ext2/ext3/ext4 filesystem
        e2label device [ new-label ]
  [root@localhost ~]# e2label /dev/vg_lvm/test
  TEST
 
    查看超级块信息:
        # tune2fs -l DEVICE
[root@localhost ~]# tune2fs -l /dev/vg_lvm/test
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   TEST
Last mounted on:          <not available>
Filesystem UUID:          5184aef4-aff9-422d-8efa-e68efd2725fc
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              327680
Block count:              1310720
Reserved block count:     65536
Free blocks:              1254785
Free inodes:              327669
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      319
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Tue Dec  2 09:27:01 2014
Last mount time:          n/a
Last write time:          Tue Dec  2 09:27:02 2014
Mount count:              0
Maximum mount count:      31
Last checked:             Tue Dec  2 09:27:01 2014
Check interval:           15552000 (6 months)
Next check after:         Sun May 31 09:27:01 2015
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:              256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      31bb1af6-f45d-4900-a205-d38dd742de29
Journal backup:           inode blocks       
        # dumpe2fs -h DEVICE  此时显示是不包括块组信息,去除-h则会显示块组信息

    修改分区属性:tune2fs
        块大小在格式化的时候已经决定了,因此块大小无法调整;

        -j: ext2 --> ext3
        -L LABEL:修改卷标
        -m #: 修改预留空间百分比;
        -O [^]FEATURE: 不加^启用指定特性,特性前加^,表示关闭此种特性

        -o [^]mount-options: 开启或关闭指定的挂载选项

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

        fsck
        fsck - check and repair a Linux file system
            -t fstype
            -a: 自动修复错误
            -r: 交互式修复错误
    fsck [-sAVRTMNP] [-C [fd]] [-t fstype] [filesys...]  [--] [fs-specific-options]

        e2fsck: 专用于修改ext系列文件系统
        e2fsck - check a Linux ext2/ext3/ext4 file system
            -y: 对问题自动回答为yes
            -f: 强制进行检测
            -f     Force checking even if the file system seems clean.

    补充:windows不能识别Linux的文件系统
        U盘的文件系统FAT32
            # mkfs -t vfat

    交换分区:swap
        缓解物理内存资源不够用的情况;

        创建交换分区:
            mkswap [-L LABEL] DEVICE

    文件系统挂载:默认只有管理员才有权限
        将额外的分区与根文件系统上的某目录建立关联关系的过程;
            目录中的原有文件会被隐藏

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

        挂载: mount DEVICE MOUNT_POINT

            固定挂载点:/mnt, /media
           
            mount - mount a filesystem
            mount [option]... [-t fstype] [-o option]  设备  挂载点
                挂载点要求:
                    1、事先存在;
                    2、使用空闲目录;
        不跟选项时,显示已挂载的设备
                常用的挂载选项[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,默认不支持;

                例如:以指定挂载后支持acl为例:
                    方法1:
                        mount -o acl DEVICE MOUNT_POINT

                    方法2:
                        tune2fs -o acl DEVICE
                            为设备设定默认挂载选项

                        mount DEVICE MOUNT_POINT


            查看所有已经挂载的设备:
                # mount
                # cat /proc/mounts
                # cat /etc/mtab 追踪当前系统已经挂载的设备

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


        卸载:umount DEVICE
              umount MOUNT_POINT

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

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

转载于:https://my.oschina.net/u/1762991/blog/665628

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值