GPT、LVM概念介绍及shell脚本

2019-01-07  本文已影响0人  请叫我飘哥

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

GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。分区指物理或逻辑磁盘上彼此连接的存储空间,但提供功能时就像物理上分隔的磁盘一样。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。
它具有如下优点:

要想使用GPT分区表必须是UEFI BIOS环境,UEFI和GPT相辅相成的,二者缺一不可,现在的服务器主板基本采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项,如果我们的系统盘大小超过了2T我们需要使用UEFI模式进行系统安装并进行系统启动,在对大于2T的非系统盘进行分区时我们需要选择GPT分区格式。

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

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

fdisk创建一个10G的分区
[root@node01 ~]# fdisk /dev/sdd
[root@node01 ~]# mkfs.ext4  -b 2048 -m 20 -L MYDATA /dev/sdd1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYDATA
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
1048576 blocks (20.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   
[root@node01 ~]# mkdir -p /mydata
[root@node01 ~]# vim /etc/fstab
/dev/sdd1  /mydata  ext4  defaults,noatime,noexec  0 0
[root@node01 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  2.6G   48G    6% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   17M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M   15% /boot
/dev/mapper/centos-home   46G   33M   46G    1% /home
tmpfs                    380M     0  380M    0% /run/user/0
/dev/sdd1                9.8G   13M  7.8G    1% /mydata
[root@node01 ~]# 

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

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):t 1
已选择分区 1
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3b4aa74b

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   82  Linux swap / Solaris

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@node01 ~]# mkswap /dev/sdb1
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=f0700ccb-5dae-4ded-a515-4f31d1cb5317
[root@node01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         144        2673          16         972        3352
Swap:          3967           0        3967
[root@node01 ~]# swapon /dev/sdb1
[root@node01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         145        2673          16         972        3352
Swap:          4991           0        4991
[root@node01 ~]# vim /etc/fstab
/dev/sdb1               swap                    swap    defaults        0 0
[root@node01 tmp]# dd if=/dev/zero of=/tmp/swap.img bs=1M count=1024
[root@node01 tmp]# mkswap /tmp/swap.img
[root@node01 tmp]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         144        1620          16        2025        3338
Swap:          4991           0        4991
[root@node01 tmp]# swapon /tmp/swap.img 
[root@node01 tmp]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         145        1620          16        2025        3337
Swap:          6015           0        6015
[root@node01 tmp]# 

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

#!/bin/bash
#
#判断系统是否存在20个用户
ID_num=$(cat /etc/passwd|wc -l)

[ $ID_num -lt 20 ] && echo "用户个数小于20" && exit 2

#获取指定用户ID号

ID1=$(cat /etc/passwd |head -10 |tail -1 |cut -d: -f3)
ID2=$(cat /etc/passwd |head -20 |tail -1 |cut -d: -f3)

echo "第10个用户ID为:$ID1"
echo "第20个用户ID为:$ID2"
SUM_ID=$[$ID1+$ID2]

echo "第10个和第20个的用户ID之和是:$SUM_ID"
运行脚本如下:
[root@node01 ~]# sh idsum.sh 
第10个用户ID为:11
第20个用户ID为:4002
第10个和第20个的用户ID之和是:4013

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

#!/bin/bash
#
hostName=$(hostname)

[ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName" == "localhost" ] && hostnamectl set-hostname www.magedu.com || echo "主机名:$hostName 符合要求没有修改"

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

#!/bin/bash
#该脚本判断参数用户ID奇偶类型

[ $# -lt 1 ] && echo "At least a username" && exit 1

! id $1 && echo "No such user" && exit 2

userid=$(id -u $1)

userjo=$[${userid}%2]
if [ $userjo -eq 0 ];then
    echo "$1 ID是偶数"
else
    echo "$1 ID是奇数"
fi

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

上一篇下一篇

猜你喜欢

热点阅读