1、描述GPT是什么,应该怎么使用
GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 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、每个分区可以有一个名称(不同于卷标)。
2、创建一个10G的分区,并格式化为ext4文件系统,要求:
(1)block大小为2048,预留空间20%,卷标为MYDATA
(2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的服务时间戳。
(3)可开机自动挂载
测试环境:
虚拟机新添加一块20G的新硬盘,即为 /dev/sdb
用fdisk进行分区,创建一个新的主分区
w保存已创建的分区
创建挂载目录:/mydata
[root@localhost ~]# mkdir /mydata
[root@localhost ~]# ls -l /mydata/
total 0
[root@localhost ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=MYDATA
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
1048576 blocks (20.00%) reserved for the super user
First data block=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: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mount -o auto,noatime,noexec /dev/sdb1 /mydata
[root@localhost ~]# lsblk
加入开机自启动
[root@localhost ~]# vim /etc/fstab
加入开机自启动以后,重新启动操作系统。(这里操作系统是虚拟环境,如生产环境勿重启)
3、创建一个大小为1G的swap分区,并启用。
[root@localhost ~]# fdisk -l /dev/sdb #查看分区
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xb6160163
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb3 20973568 23070719 1048576 82 Linux swap / Solaris
[root@localhost ~]# partprobe #执行同步磁盘分区
[root@localhost ~]# free -h #查看内存
4、编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和
[root@localhost ~]# vi#bin/bash
#获取指定用户的ID号
id10=$(cat /etc/passwd |awk -F: '(NR>=10&&NR<=10){print $3}')
id20=$(cat /etc/passwd |head -20 |tail -1 |cut -d: -f3)
echo "第10个用户ID为:$id10"
echo "第20个用户ID为:$id20"
id_sum=$[$id10+$id20]
echo "第10个用户和第20个的用户id之和是:$id_sum"m id_passwd.sh
[root@localhost ~]# bash id_passwd.sh
第10个用户ID为:11
第20个用户ID为:996
第10个用户和第20个的用户id之和是:1007
4、将当前主机名保存至hostname变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com
[root@localhost ~]# vim 123.sh
#/bin/bash
hostname=$(hostname)
if [ $hostname == " " ];then
hostnamectl set-hostname www.zzz.com
echo "修改后的主机名为: "
hostname
elif [ $hostname == "localhost.localdomain" ];then
hostnamectl set-hostname www.zzz.com
echo "修改后的主机名为: "
hostname
elif [ $hostname == "localhost" ];then
hostnamectl set-hostname www.magedu.com
echo "修改后的主机名为: "
hostname
else
echo "主机名:$hostname 符合要求没有修改"
fi
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname localhost
[root@localhost ~]# hostname
localhost
[root@localhost ~]# bash 123.sh
修改后的主机名为:
www.magedu.com
6、lvm基本应用以及扩展缩减实现
LVM 基本术语
物理存储介质(PhysicalStorageMedia):
指系统上最底层的物理存储设备:磁盘,例如:/dev/sda、/dev/sdb等
物理卷(Physical Volume, PV):
指磁盘、磁盘分区或RAID设备,使用LVM前需要先将之制作成便于识别的物理卷PV
卷组(Volume Group, VG):
卷组由一个或多个物理卷PV组成,在卷组之上可创建一个或多个逻辑卷LV。卷组VG类似于非LVM系统的 物理磁盘
逻辑卷(Logical Volume, LV):
建立在卷组VG之上,相当于逻辑分区,可在逻辑卷LV上进行一系列操作(例如:格式化、挂载等)。 逻辑卷LV类似于非LVM系统的磁盘分区
物理扩展块(Physical Extent, PE):
当物理卷PV加入某一卷组VG后即被划分为基本单元PE,PE是LVM寻址的最小单元。PE的大小是可配置的,默认为4M。
逻辑扩展块(Logical Extent, LE):
卷组VG将PE划分给逻辑卷LV,在逻辑卷LV中的PE称为LE。在同一卷组VG中,PE和LE大小相同,且相互对应。LE也是LVM的最小寻址单位。
pv管理工具:
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息
pvcreate:/dev/DEVICE:创建pv
vg管理工具:
vgs:简要vg信息显示
vgdisplay
lv管理工具:
lvs:
lvdisplay
lvcreate -L #[mGgGtT] -n VolumeGroup
扩展逻辑卷:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #修改逻辑边界
缩减逻辑卷:
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
mount
添加一块15GB硬盘
fdisk /dev/sdb 分区
[root@localhost ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb3 lvm2 --- 3.00g 3.00g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
[root@localhost ~]# vgcreate myvg /dev/sdb3 #创建一个VG
Volume group "myvg" successfully created
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
myvg 1 0 0 wz--n- <3.00g <3.00g
[root@localhost ~]# pvcreate /dev/sdb4 #添加/dev/sdb4加入myvg
[root@localhost ~]# vgextend myvg /dev/sdb4
卸载:
[root@localhost ~]# pvmove /dev/sdb4
No data to move for myvg.
[root@localhost ~]# vgre
vgreduce vgremove vgrename
[root@localhost ~]# vgreduce myvg /dev/sdb4
Removed "/dev/sdb4" from volume group "myvg"
[root@localhost ~]# vgdisplay myvg
增加:
[root@localhost ~]# vgextend myvg /dev/sdb4
Volume group "myvg" successfully extended
[root@localhost ~]# vgdisplay myvg
[root@localhost ~]# lvcreate -L 2G -n mylv myvg #创建一个2G的逻辑卷 名称为 mylv 指定myvg卷组
Logical volume "mylv" created.
[root@localhost ~]# ls /dev/mapper/
centos-root centos-swap control myvg-mylv
[root@localhost ~]# mke2fs -t ext4 -b 1024 -L mylv /dev/myvg/mylv
[root@localhost ~]# mkdir /backup #创建一个挂载目录
[root@localhost ~]# mount /dev/myvg/mylv /backup/ #挂载到/backup目录下
[root@localhost ~]# ls -hl /backup/
total 12K
drwx------. 2 root root 12K Mar 10 08:25 lost+found
扩展逻辑卷:
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 3.8G 14G 23% /
devtmpfs 480M 0 480M 0% /dev
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 497M 7.6M 489M 2% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 1014M 156M 859M 16% /boot
tmpfs 100M 0 100M 0% /run/user/0
tmpfs 100M 48K 100M 1% /run/user/1000
/dev/mapper/myvg-mylv 2.0G 3.1M 1.9G 1% /backup
[root@localhost ~]# lvextend -L +2G /dev/myvg/mylv
Size of logical volume myvg/mylv changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).
Logical volume myvg/mylv successfully resized.
[root@localhost ~]# resize2fs /dev/mapper/myvg-mylv
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/myvg-mylv is mounted on /backup; on-line resizing required
old_desc_blocks = 16, new_desc_blocks = 32
The filesystem on /dev/mapper/myvg-mylv is now 4194304 blocks long.
卸载逻辑卷:
[root@localhost ~]# umount /dev/mapper/myvg-mylv
[root@localhost ~]# e2fsck -f /dev/mapper/myvg-mylv #强制检测
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
mylv: 11/262144 files (0.0% non-contiguous), 102892/4194304 blocks
[root@localhost ~]# resize2fs /dev/mapper/myvg-mylv 2G #缩进2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/myvg-mylv to 2097152 (1k) blocks.
The filesystem on /dev/mapper/myvg-mylv is now 2097152 blocks long.
[root@localhost ~]# lvreduce -L 2G /dev/myvg/mylv
[root@localhost ~]# mount /dev/myvg/mylv /backup/
[root@localhost ~]# df -lh