第四周作业

作者: yaha21 | 来源:发表于2019-01-31 09:01 被阅读0次
    
    1、描述GPT是什么,应该怎么使用。
    2、创建一个10G的分区,并格式化为ext4文件系统。要求:
    (1)block大小为2048,预留空间20%,卷标为MYDATA,
    (2) 挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
    (3)可开机自动挂载。
    3、创建一个大小为1G的swap分区,并启用。
    4、编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和。
    5、将当前主机名保存至hostName变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com
    6、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数。
    7、lvm基本应用以及扩展缩减实现。
    
    

    壹、描述GPT是什么,应该怎么使用。

    GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一64bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。MBR分区表不支持容量大于2TB的分区,GPT分区表支持最多128PB的硬盘和分区。GPT 磁盘能够实现巨大的容量。GPT 磁盘上的分区数量不受临时方案(比如 MBR Extended Boot Record (EBR) 定义的容器分区)的限制。GPT 磁盘分区定义明确并能够完全自动识别。平台操作的关键数据被放置在分区中而不是未分区或“隐藏”扇区中。GPT 磁盘使用原始的、备份的分区表存储冗余和 CRC32 字段,以提高分区数据结构的完整性。GPT 分区格式使用版本号和容量字段支持进一步的扩展。每个 GPT 分区都有独特的标识 GUID 和分区内容类型,所以不需要协调即可防止分区标识符冲突。每个 GPT 分区都有一个 36 字符的 Unicode 名称,这意味着任何软件都能够呈现一个人工可读的分区名称,而无需了解分区的其他内容。

    对于总容量大于2TB的硬盘,必须选择GPT分区表,才能识别所有的硬盘容量。分区表必须是UEFI BIOS环境。


    贰、创建一个10G的分区,并格式化为ext4文件系统。要求:

    (1)block大小为2048,预留空间20%,卷标为MYDATA,
    (2) 挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
    (3)可开机自动挂载。

    步骤如下: 先分区,后格式化

    ------分区------

    新增一个硬盘 并查看新增硬盘信息:

    ~]# fdisk -l sdb为新添加的硬盘:

    image.png
    fdisk /dev/sdb对新加硬盘分区
    image.png
    输入m可以查看帮助
    image.png
    新建10G磁盘空间 ,再输入 w 保存配置
    image.png

    ------格式化------

    mkfs 用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。

    【语法】

    mkfs(选项)(参数)

    【选项】

    fs:指定建立文件系统时的参数;
    -t<文件系统类型>:指定要建立何种文件系统,文件系统是要指定的,比如 ext3 ;reiserfs ;ext2 ;fat32 ;msdos 等;
    -v:显示版本信息与详细的使用方法;
    -V:显示简要的使用方法;
    -c:在制做档案系统前,检查该partition是否有坏轨。

    mkfs.ext4(选项)(参数)

    【选项】
    -c 坏块测试
    -L 设置volume 标签,最长为16个byte
    -m 指定保留空间百分比,为root用户
    -M 设置最后挂载目录
    -n 不真正创建文件系统,只是显示创建的信息
    -S 只写超级块和块组描述符。(当超级块和备份超级块错误后,可以用来恢复数据。因为它不会touching inode表和bitmap)

    挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
    
    image.png
    可开机自动挂载
    

    ls -l /dev/disk/by-uuid 查询新增硬盘uuid
    /etc/fstab 中添加以下内容

    UUID=bd6e7c18-1071-4962-a071-febddabc4d49 /mydata                 ext4    defaults,noatime,noexec   0 0  
    
    

    叁、创建一个大小为1G的swap分区,并启用。

    采用分区创建
    image.png

    此时/dev/下没有新增的分区,运行 partprobe 即可. partprobe-----用于重读分区表,当出现删除文件后,出现仍然占用空间。可以partprobe在不重启的情况下重读分区。

    image.png image.png

    =====================================

    采用文件创建
    image.png

    肆、编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和。

    #!/bin/bash
    users1=$(cat /etc/passwd|wc -l)
    [ $users1 -lt 20 ] && echo "less than 20users" && exit 2
    userid10=$(head -n 10 /etc/passwd | tail -n 1 | cut -f 3 -d ":")
    userid20=$(head -n 20 /etc/passwd | tail -n 1 | cut -f 3 -d ":")
    usersum=$[$userid10+$userid20]
    
    echo "the 10th user id is $userid10"
    echo "the 20th user id is $userid20"
    echo "the sum is $usersum"
    
    

    运行结果如下


    image.png

    伍、将当前主机名保存至hostName变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com

    #!/bin/bash
    hostName=$(hostname)
    [ "$hostName" == "localhost.localdomain" -o -z "hostName" -o -n "hostname" ] && hostnamectl set-hostname www.magedu.com;echo 'hostName='$hostName || echo "nothing to be change"
    

    陆、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数。

    #!/bin/bash  
    #第四周陆、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数。
    read -p "Enter a username: " usename
    id=$(cat /etc/passwd |grep $username |cut -f3 -d:)
    echo "The user \"$username\" id is $id"
    [ `expr $id % 2` -eq 0 ] && echo "this id is even number" || echo "this id is odd number"   
    

    柒、lvm基本应用以及扩展缩减实现。

    相关文章

      网友评论

        本文标题:第四周作业

        本文链接:https://www.haomeiwen.com/subject/qrlldqtx.html