• week5 作业


    week5 作业

    1.描述GPT是什么,应该怎么使用?
    描述GPT之前要简单了解MBR分区,MBR(Main Boot Record)叫做主引导记录,其位于磁盘的最前端,由一段代码组成,共占用512个字节。是计算机开机时读取的首个磁盘扇区,由三部分组成:

    • 主引导程序即主引导记录(MBR)(占446个字节),启动代码
    • 分区表(DPT,Disk Partition Table)由四个分区表构成,每个占用16字节,共占用64字节
    • 结束标志 55aa

    由此可见,利用MBR分区最多只能有4个分区,每个分区的最大容量为2T,因此出现了GPT分区。

    GPT:GUID(Globals Unique Identifiers) partition table ,全局唯一标识分区表,实体硬盘的分区表的结构布局的标准,区别于MBR。支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)。

    由四部分组成:保护MBR区、EFI信息区(GPT头)、分区表、GPT分区区域、备份区域;

    • 保护MBR分区(LBA0) :MBR分区过度GPT分区,防止无法识别MBR分区。实际上,EFI根本用不上这个分区表。
    • GPT头:起始于磁盘的LBA1,通常也只占用这个单一扇区。其作用是定义分区表的位置和大小。GPT头还包含头和分区表的校验和,这样就可以及时发现错误。
    • 分区表:分区表区域包含分区表项。这个区域由GPT头定义,一般占用磁盘LBA2~LBA33扇区。分区表中的每个分区项由起始地址、结束地址、类型值、名字、属性标志、GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。
    • GPT分区区域:最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT分区表定义。
    • 备份区域:备份区域位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份LBA2~LBA33扇区的分区表。

    GPT只是一种分区方式,使用gdisk工具进行分区,分区后的使用还是要格式化,挂载。

    注意:要想使用GPT分区表必须是UEFI BIOS环境,UEFI和GPT相辅相成的,二者缺一不可
    UEFI:全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。

    2.创建一个10G的分区,并格式化为ext4文件系统。要求:
    (1)block大小为2048k,预留空间为20%,卷标为MYDATA;
    (2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
    (3)可开机自动挂载。
    首先,fdisk 一个10G的分区。

    mke2fs -t ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1    # 格式化分区
    
    mount  -o noexec,noatime   /dev/sdb1  /mydata
    
    vim /etc/fstab    # 修改配置文件
    UUID=103878ff-76c0-4f88-ac51-5fbc9828b39d   /mydata   ext4  defaults,noexec,noatime  0  0    # fstab配置文件中添加此条
    

    3.创建1个大小为10G的swap分区,并启用
    有两种设备可以作为swap分区:
    ①磁盘设备,一般单独一个新磁盘的第一个分区作为swap分区,因为靠外侧的磁道性能更好;
    fdisk 一个10G的分区
    注意:将分区类型改为82 -swap类型

    ②loop设备,
    dd if=/dev/zero of=/data/swaptest bs=100M count=100 创建大小为10G名字为swaptest的文件

    后面的操作相同如下:

    mkswap  /dev/sdb1   
    
    vim  /etc/fstab  # 修改配置文件,加入刚刚格式化的swap分区
    
    swapon -a  启用swap分区
    
    也可以不写入配置文件,直接
    swapon  /dev/sdb1    # 这样下次开机时该swap分区自动取消。
    

    4.编写脚本计算/etc/passwd文件中第10个和第20个的用户ID之和。

    #!/bin/bash
    ID1=`getent passwd  | head -n10 | tail -n1 | cut -d: -f3`
    ID2=`getent passwd  | head -n20 | tail -n1 | cut -d: -f3`
    sumID=$[$ID1+$ID2]
    echo $sumID
    

    5.将当前计算机名保存至hostName中,主机名如果为空,或者为localhost.localdomain则设置为www.magedu.com

    #!/bin/bash
    hostName=`hostname`
    [ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "hostName" == "localhost" ] && hostname www.magedu.com
    

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

    #!/bin/bash
    [ $# -ne 1 ] && echo "please input only one args "  && exit
    id $1 &>/dev/null || echo "$1 is not exist,creating the user $1 now,please wait a minute "
    sleep 2
    useradd $1 && echo "user $1 is cteated " 
    
    uid=`grep "<$1>" /etc/passwd | cut -d: -f3`
    yushu=$[ $uid%2 ]
    [ $yushu -eq 0 ] && echo "此用户的id号为偶数"  || echo “此用户的id号为奇数”
    

    输出结果测试:

    [root@CentOS7 data]#bash yushuUID.sh  sst
    useradd: user 'sst' already exists
    “此用户的id号为奇数”
    
    [root@CentOS7 data]#bash yushuUID.sh  sst3
    sst3 is not exist,creating the user sst3 now,please wait a minute 
    user sst3 is cteated 
    此用户的id号为偶数
    

    7.lvm基本应用以及扩展缩减实现。

    LVM基本运用参考此博文LVM

  • 相关阅读:
    Swing 添加Esc快捷键退出程序
    DefaultTableCellRenderer 自定义
    项目清理和删除svn信息(转)
    时间转换工具类
    Java Swing 日期控件(转载)
    Eureka原理
    SpringCloud之Eureka注册中心集群篇
    spring boot及spring cloud介绍
    spring cloud 服务注册/发现/提供/调用 demo
    eclipse构建maven+scala+spark工程
  • 原文地址:https://www.cnblogs.com/sstjustdoit/p/10147012.html
Copyright © 2020-2023  润新知