马哥linux+python——2015年9月1日课程作业

时间:2023-02-13 09:55:29

1、复习本次课程所讲的内容;

已复习

2、总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例;

fdisk分区命令

马哥linux+python——2015年9月1日课程作业

分区管理子命令:
            p: 显示
            n: 创建
            d: 删除
            t: 修改分区ID
            l: 列出所有支持ID类型
            w: 保存退出
            q: 放弃修改并退出
            m: 获取帮助

        创建完成之后,查看内核是否已经识别新的分区:
            # cat /proc/partitions

有三个命令可以让内核重读磁盘分区表:
                CentOS 5: partprobe [DEVICE]
                CentOS 6,7:
                    partx
                    kpartx

partx

马哥linux+python——2015年9月1日课程作业

partx命令:
                    partx DEVICE
                    partx -a DEVICE
                    partx -a -n M:N DEVICE
                        M
                        M:
                        :N

                kpartx命令:
                    kpartx -af DEVICE

 

 

 

Linux文件系统管理

    文件系统:
        VFS:Virtual File System

        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

        (1) 日志型文件系统
            非日志型文件系统:ext2
            日志型文件系统:ext3

        (2) swap:交换分区

    创建文件系统:
        在分区上执行格式化(高级格式化)
            要使用某种文件系统,满足两个条件:
                内核中:支持此种文件系统
                用户空间:有文件系统管理工具

        创建工具:mkfs (make filesystem)
            mkfs -t type DEVICE

                mkfs.type DEVICE

            ext系列文件系统的专用管理工具:
                mke2fs -t {ext2|ext3|ext4} DEVICE
                    -b BLOCK: 1024, 2048, 4096
                    -L 'LABEL': 设定卷标

            blkid命令:
                blkid DEVICE
                    LABEL, UUID, TYPE

Linux文件系统管理:
    mkfs, mkfs -t type = mkfs.type

    ext:mke2fs

马哥linux+python——2015年9月1日课程作业

    创建文件系统:
        mke2fs [OPTION]... DEVICE
            -t     {ext2|ext3|ext4}
            -b {1024|2048|4096}
            -L 'LABEL'
            -j: mke2fs -t ext3
            -i #:
            -N #:
            -m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;
            -O FEATURE[,...]
                -O ^FEATURE:关闭此特性
                has_journal

    文件系统属性查看及调整工具:
        e2label
            e2lable DEVICE [LABEL]

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

            -l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;
            -L 'LABEL':修改卷标;
            -m #: 调整预留给管理员的管理空间百分比;
            -j: ext2 --> ext3
            -O:文件系统属性的启动或关闭
            -o:文件系统默认挂载选项的启用或关闭

        dumpe2fs:
            -h: 仅显示超级块信息;

    文件系统检测:
        fsck: Filesystem check
            fsck -t type
            fsck.type
                -a: 自动修复错误
                -r: 交互式修复错误
                -f: 强制检测

        e2fsck:ext系列文件系统专用的检测修复工具;
            -y: 自动回答为“yes”
            -f:force

文件系统的挂载和使用:
    kernel --> rootfs(分区)

        rootfs分区:
            bin, sbin, etc, lib, lib64, dev, tmp, proc, sys

            /sbin/init

    将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为,称之为挂载;

    解除此关联关系的过程:卸载;

    挂载点:mount point, 设备挂载至目录;

        注意:挂载点在挂载在之后,其内部原有的文件会被暂时隐藏;建立使用空目录做为挂载点;

    挂载方法:
        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

        umount:卸载命令
            # umount DEVICE
            # umount MOUNT_POINT

马哥linux+python——2015年9月1日课程作业

            查看正在访问指定挂载点的进程:
                # fuser -v MOUNT_POINT

            终止所有正在访问指定的挂载点的进程:
                # fuser -km MOUNT_POINT

    交换分区:

        free命令:
            查看memory和swap的使用状态
                -m: 以MB为单位
                -g: 以GB为单位

        mkswap:创建交换分区

            mkswap [option] DEVICE
                -L 'LABEL'   
        swapon:启用交换分区
            swapon [option] [DEVICE]
                -a: 激活所有交换分区
                -p PRIORITY: 设定其优先级;

        swapoff:禁用交换分区
            swapoff [option] [DEVICE]

    文件系统等空间占用信息的查看工个:
        df: disk free
            -h: human-readable
            -i: inode数量
            -P: 以Posix兼容的格式输出
        du: disk usage
            -h: human-readable
            -s: summary

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

        每行定义一个文件系统;

        要挂载的设备或伪文件系统      挂载点         文件系统类型     挂载选项     转储频率      自检次序

            要挂载的设备:
                设备文件、LABEL=、UUID=、伪文件系统名称

            挂载选项:
                defaults

            转储频率:
                0: 不转储
                1: 每天转储
                2: 每隔一天转储

            自检次序:
                0:不自检
                1:首先自检,通常只有/才为1
                2:
                ...

    文件系统上的链接文件:
        硬链接:
            两个路径指向同一个inode

            不能对目录进行;
            不能跨分区进行
            指向同一个inode的多个不同路径; 创建文件的硬链接会增加inode的引用计数;删除硬链接仅是删除其一个访问路径,只到最后一个路径被删除;

        符号链接:
            链接文件的数据指向另一个文件路径;

            可以对目录进行;
            可以跨分区;
            指向的是另一个文件路径;而非inode;
                对文件创建符号链接不会增加其引用计数;删除原文件,符号链接文件也将无法;

        ln [-s] SRC DEST
            -s:symbolic link
            -v:verbose

3、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录

mkdir /mydata

mke2fs -t ext4 -L mydata /dev/sdb1

echo '/dev/sdb1 /mydata ext4 defaults 0 0' >> /etc/fstab