GPT,LVM概念以及shell脚本基础
GPT,LVM概念以及shell脚本基础
- 描述GPT是什么,应该怎么使用
1.GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。分区指物理或逻辑磁盘上彼此连接的存储空间,但提供功能时就像物理上分隔的磁盘一样。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。
2.具有以下优点:
(1)支持2TB以上的大硬盘;
(2)每个磁盘的分区个数几乎没有限制(Windows系统最多只允许划分128个分区);
(3)分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号,即 = 18,446,744,073,709,551,616;
(4)分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复;
(5)循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率;
(6)虽然MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型,这使分区类型更不容易冲突;
(7)每个分区可以有一个名称(不同于卷标)。
3.要想使用GPT分区表必须是UEFI BIOS环境,UEFI和GPT相辅相成的,二者缺一不可,现在的服务器主板基本采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项,如果我们的系统盘大小超过了2T我们需要使用UEFI模式进行系统安装并进行系统启动,在对大于2T的非系统盘进行分区时我们需要选择GPT分区格式。 - 创建一个10G的分区,并格式化为ext4文件系统:
要求:(1)block大小为2048,预留空间20%,卷标为MYDATA,
(2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
(3)可开机自动挂载。
(1)fdisk创建10G分区[root@localhost ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n All primary partitions are in use Adding logical partition 6 First sector (141940736-419430399, default 141940736): Using default value 141940736 Last sector, +sectors or +size{K,M,G} (141940736-419430399, default 419430399): +10G Partition 6 of type Linux and of size 10 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.(2)mkfs创建文件系统:
创新互联建站主营高邑网站建设的网络公司,主营网站建设方案,APP应用开发,高邑h5微信小程序定制开发搭建,高邑网站营销推广欢迎高邑等地区企业咨询
[root@localhost ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sda6/ mke2fs 1.42.9 (28-Dec-2013) Could not stat /dev/sda6/ --- Not a directory [root@localhost ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sda6 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(3)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。并设置开机自动挂载
[root@localhost ~]# mkdir -p /mydata [root@localhost ~]# vim /etc/fstab /dev/sda6 /mydata ext4 defaults,noatime,noexec 0 0 [root@localhost ~]# mount -a [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 47G 5.2G 42G 12% / devtmpfs 523M 0 523M 0% /dev tmpfs 538M 0 538M 0% /dev/shm tmpfs 538M 7.8M 530M 2% /run tmpfs 538M 0 538M 0% /sys/fs/cgroup /dev/sda1 497M 151M 346M 31% /boot /dev/sda3 19G 39M 19G 1% /data tmpfs 108M 4.0K 108M 1% /run/user/42 tmpfs 108M 32K 108M 1% /run/user/1000 /dev/sr0 8.1G 8.1G 0 100% /run/media/wl/CentOS 7 x86_64 tmpfs 108M 0 108M 0% /run/user/0 /dev/sda6 9.8G 13M 7.8G 1% /mydata - 创建一个大小为1G的swap分区,并启用:
[root@localhost ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n All primary partitions are in use Adding logical partition 7 First sector (162914304-419430399, default 162914304): Using default value 162914304 Last sector, +sectors or +size{K,M,G} (162914304-419430399, default 419430399): +1G Partition 7 of type Linux and of size 1 GiB is set Command (m for help): t Partition number (1-7, default 7): 7 Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris' Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@localhost ~]# mkswap /dev/sda7 Setting up swapspace version 1, size = 1048572 KiB no label, UUID=ba42d9ae-41a0-4829-bd14-a32834cf6ec9 [root@localhost ~]# swapon /dev/sda7 [root@localhost ~]# vim /etc/fstab /dev/sda7 swap swap defaults 0 0 - 编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和
#!/bin/bash #判断系统是否存在20个用户 id_sum=$( cat /etc/passwd | wc -l ) [ ${id_sum} -lt 20 ] && echo "用户个数小于20" && exit 2 id1=$(head -10 /etc/passwd | tail -1 | cut -d: -f3) id2=$(head -20 /etc/passwd | tail -1 | cut -d: -f3) idsum=$[${id1}+${id2}] echo "Ths sum is $idsum" [root@localhost scripts]# bash -x idsum2.sh ++ cat /etc/passwd ++ wc -l + id_sum=58 + '[' 58 -lt 20 ']' ++ head -10 /etc/passwd ++ tail -1 ++ cut -d: -f3 + id1=11 ++ head -20 /etc/passwd ++ tail -1 ++ cut -d: -f3 + id2=997 + idsum=1008 + echo 'Ths sum is 1008' Ths sum is 1008 - 将当前主机名保存至hostName变量中,主机名如果为空,或者为
localhost.localdomain则将设置为www.magedu.com#!/bin/bash hostName=$(hostname) [ -z "${hostName}" -o "${hostName}" == "localhost.localdomain" -o "${hostName}" == "locahost" ] && hostnamectl set-hostname www.magedu.com || echo "主机名:${hostName},不要修改" [root@localhost scripts]# bash -x hostname.sh ++ hostname + hostName=localhost.localdomain + '[' -z localhost.localdomain -o localhost.localdomain == localhost.localdomain -o localhost.localdomain == locahost ']' + hostnamectl set-hostname www.magedu.com - 编写脚本,通过命令行参数传入一个用户名,判断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) useri=$[${userid}%2] if [ ${useri} -eq 0 ];then echo "$1 ID 是偶数" else echo "$1 ID 是奇数" fi root@localhost scripts]# bash -xv id.sh user3 #!/bin/bash #脚本判断参数用户ID奇偶类型 [ $# -lt 1 ] && echo "At least a username " && exit 1 + '[' 1 -lt 1 ']' ! id $1 && echo "No such user" && exit 2 + id user3 uid=1003(user3) gid=1003(user3) groups=1003(user3) userid=$(id -u $1) ++ id -u user3 + userid=1003 useri=$[${userid}%2] + useri=1 if [ ${useri} -eq 0 ];then echo "$1 ID 是偶数" else echo "$1 ID 是奇数" fi + '[' 1 -eq 0 ']' + echo 'user3 ID 是奇数' user3 ID 是奇数 - lvm基本应用以及扩展缩减实现
(1) LVM原理描述
LVM是(Logical Volume Manager) 逻辑卷管理的简写,它是Linux环境下对磁盘分区进行管理的一种机制。LVM是建立在硬盘和分区之上的一个逻辑层,屏蔽了底层磁盘布局,便于动态调整磁盘容量来提高磁盘分区管理的灵活性。它可以将一个或多个底层块设备组织成一个逻辑设备的卷组,管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统,管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配
(2)LVM 基本术语:
(a)物理存储介质(PhysicalStorageMedia):
指系统上最底层的物理存储设备:磁盘,例如:/dev/sda、/dev/sdb等
(b)物理卷(Physical Volume, PV):
指磁盘、磁盘分区或RAID设备,使用LVM前需要先将之制作成便于识别的物理卷PV
(c)卷组(Volume Group, VG):
卷组由一个或多个物理卷PV组成,在卷组之上可创建一个或多个逻辑卷LV。卷组VG类似于非LVM系统的 物理磁盘
(d)逻辑卷(Logical Volume, LV):
建立在卷组VG之上,相当于逻辑分区,可在逻辑卷LV上进行一系列操作(例如:格式化、挂载等)。 逻辑卷LV类似于非LVM系统的磁盘分区
(d)物理扩展块(Physical Extent, PE):
当物理卷PV加入某一卷组VG后即被划分为基本单元PE,PE是LVM寻址的最小单元。PE的大小是可配置的,默认为4M。
(e)逻辑扩展块(Logical Extent, LE):
卷组VG将PE划分给逻辑卷LV,在逻辑卷LV中的PE称为LE。在同一卷组VG中,PE和LE大小相同,且相互对应。LE也是LVM的最小寻址单位。(3)LVM基本操作:
(a)pv管理工具:
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息
pvcreate /dev/DEVICE: 创建pv(b)vg管理工具:
vgs
vgdisplay
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
先做pvmove
vgremove(c)lv管理工具:
lvs
lvdisplay
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
vremove /dev/VG_NAME/LV_NAME(d)扩展逻辑卷:
# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME(e)缩减逻辑卷:
# 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
网站名称:GPT,LVM概念以及shell脚本基础
网页URL:http://www.jxjierui.cn/article/ghcsse.html


咨询
建站咨询
