马哥Linux云计算全程班第4周作业(20190715-20190721)

1、描述GPT是什么,应该怎么使用。
GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一64bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。分区指物理或逻辑磁盘上彼此连接的存储空间,但提供功能时就像物理上分隔的磁盘一样。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。

它具有如下优点:
1、支持2TB以上的大硬盘。
2、每个磁盘的分区个数几乎没有限制(Windows系统最多只允许划分128个分区)。
3、分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号,即 = 18,446,744,073,709,551,616。
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复;
5、循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率;
6、 虽然MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型,这使分区类型更不容易冲突;
7、每个分区可以有一个名称(不同于卷标)。

要想使用GPT分区表必须是UEFI BIOS环境,UEFI和GPT相辅相成的,二者缺一不可,现在的服务器主板基本采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项,如果我们的系统盘大小超过了2T我们需要使用UEFI模式进行系统安装并进行系统启动,在对大于2T的非系统盘进行分区时我们需要选择GPT分区格式。
2、创建一个10GB的分区,并格式化为ext4文件系统。要求:
(1)block大小为2048,预留空间20%,卷标为MYDATA
(2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
(3)可开机自动挂载。

创建过程如下:
创建一个10GB的分区,并格式化为ext4文件系统
[root@bccobbler ~]# fdisk /dev/sdb
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Command (m for help): w
[root@bccobbler ~]# partx /dev/sdb
NR START END SECTORS SIZE NAME UUID
1 2048 20973567 20971520 10G
[root@bccobbler ~]# mke2fs -t ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1

挂载至/mydata目录,挂载时禁止程序自动运行,且不更新文件的访问时间戳;

[root@bccobbler /]# ls -l /dev/disk/by-uuid/ |grep sdb1
lrwxrwxrwx 1 root root 10 Jul 23 05:07 0be6c28c-b410-47e9-8e03-d4b2b7bfab89 -> ../../sdb1
[root@bccobbler /]# mount -o auto,noatime,noexec /dev/sdb1 /mydata

开机自动挂载
[root@bccobbler ~]# echo "UUID=0be6c28c-b410-47e9-8e03-d4b2b7bfab89 /mydata ext4 auto,noexec,noatime 0 0" >> /etc/fstab
[root@bccobbler ~]# tail -1 /etc/fstab
UUID=0be6c28c-b410-47e9-8e03-d4b2b7bfab89 /mydata ext4 auto,noexec,noatime 0 0

3、创建一个大小为1G的swap分区,并启动
[root@bccobbler /]# fdisk /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G
Partition 2 of type Linux and of size 1 GiB is set

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): L
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): p
Disk label type: dos
Disk identifier: 0x5f7f3637

Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 23070719 1048576 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

[root@bccobbler /]# partx /dev/sdb
NR START END SECTORS SIZE NAME UUID
1 2048 20973567 20971520 10G
2 20973568 23070719 2097152 1G

[root@bccobbler /]# partprobe /dev/sdb
sdb sdb1 sdb2
[root@bccobbler /]# partprobe /dev/sdb
[root@bccobbler /]# mkswap -L myswap /dev/sdb2
Setting up swapspace version 1, size = 1048572 KiB
LABEL=myswap, UUID=e97501cf-a097-41f2-9876-6ef48a7070b3
[root@bccobbler /]# swapon /dev/sdb2
[root@bccobbler /]# free -m
total used free shared buff/cache available
Mem: 1870 134 1575 9 160 1581
Swap: 3071 0 3071
[root@bccobbler /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
└─sdb2 8:18 0 1G 0 part [SWAP]
sr0 11:0 1 4.1G 0 rom

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

[root@bccobbler ~]# vim sum.sh
#!/bin/bash
#

id10=$(head -10 /etc/passwd |tail -1 |cut -d: -f3)
id20=$(head -20 /etc/passwd |tail -1 |cut -d: -f3)
echo "第10个用户的ID为:$id10"
echo "第20个用户的ID为:$id20"
id_sum=$[$id10+$id20]
echo "The user id sum:$id_sum."
[root@bccobbler ~]# sh sum.sh
第10个用户的ID为:11
第20个用户的ID为:89
The user id sum:100
5、将当前主机名保存至hostname变量中,主机名若为空,或者为localhost.localdomain则将设置为www.magedu.com;

[root@bccobbler ~]# hostname=$(hostname)
[root@bccobbler ~]# [ -z "$hostname" -o "$hostname"=="localhost.localdomain" -o "$hostname"=="localhost" ] && hostname www.magedu.com
[root@bccobbler ~]# hostname
www.magedu.com
6、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数;
[root@bccobbler ~]# cat /etc/passwd |grep oracle
oracle:x:5004:5006::/home/oracle:/bin/bash
[root@bccobbler ~]# cat /etc/passwd |grep user2
user2:x:5011:5013::/home/user2:/bin/bash
[root@bccobbler ~]# more ceshu.sh
#!/bin/bash
usrId=$(id -u $1)
if [ $[$usrId % 2 ] -eq 0 ];then
echo "$1\'s id is even number"
else
echo "$1\'s id is odd number"
fi

[root@bccobbler ~]# sh ceshu.sh oracle
oracle\'s id is even number
[root@bccobbler ~]# sh ceshu.sh user2
user2\'s id is odd number
7、lvm基本应用以及扩展缩减实现;
基本概念:
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

简单来说就是:
PV:是物理的磁盘分区
VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。
LV:也就是从VG中划分的逻辑分区

示例如下:
(1)新挂载硬盘,识别为/dev/sdb,依次在/dev/sdb上创建3个lvm分区,大小为3、6、5G,如下图;

马哥Linux云计算全程班第4周作业(20190715-20190721)
马哥Linux云计算全程班第4周作业(20190715-20190721)
马哥Linux云计算全程班第4周作业(20190715-20190721)
(2)创建物理卷
马哥Linux云计算全程班第4周作业(20190715-20190721)
(3)创建卷组,并扩展卷组;
马哥Linux云计算全程班第4周作业(20190715-20190721)
马哥Linux云计算全程班第4周作业(20190715-20190721)
马哥Linux云计算全程班第4周作业(20190715-20190721)
(4)创建逻辑卷,并格式化
马哥Linux云计算全程班第4周作业(20190715-20190721)
(5)挂载逻辑卷,需要开机挂载时,添加入/etc/fstab末尾即可。
马哥Linux云计算全程班第4周作业(20190715-20190721)
(6)逻辑卷扩展,xfs逻辑卷扩展完毕后使用xfs_growfs扩展文件系统。
马哥Linux云计算全程班第4周作业(20190715-20190721)
马哥Linux云计算全程班第4周作业(20190715-20190721)
马哥Linux云计算全程班第4周作业(20190715-20190721)

猜你喜欢

转载自blog.51cto.com/3401973/2422792