1、描述GPT是什么,该怎么使用
(转载)GPT是GUID Partition Table,GUID分区表。GUID(Globals Unique Identifiers)全局唯一识别。GPT支持128个分区,使用64位,支持8ZB(512Byte/block) 以及64ZB(4096Byte/block)大小的磁盘。 使用128位UUID表示磁盘和分区,GPT分区表自动备份在头和尾两份,并有CRC校验位。具体分为4个区域: EFI信息区(含保护性MRB区和GPT头)、分区表、GPT分区(最大可有128个分区)、备份分区表信息 UEFI(统一扩展固件接口)硬件支持GPT,它的开机过程是:开机-->UEFI初始化-->引导操作系统-->进入系统 相关的使用命令: 1.gdisk创建GPT分区(交互式创建)与fdisk相似 -l /dev/sdx 查看分区信息 以下为交互菜单的信息 (?|m) 显示交互菜单与帮助 n 建立分区 d 删除分区 c 更改分区名字 I 显示分区的详细信息 p 显示分区信息 t 转换分区类型 a 将指定分区设置/取消 活动分区 l 查看分区类型 o 重建分区表 v 验证分区表,显示剩余没有被分区划分的扇区数量 q 退出不保存,不保存,所有的修改都不生效 w 退出并保存 2.parted命令(交互式或命令式,一旦操作即时生效,使用时请注意) parted /dev/sdb mklabel gpt 给指定的磁盘指定GPT的分区方式 parted /dev/sdb mkpart primary 1 200(单位默认为M)创建新分区 parted /dev/sdb print 显示分区信息 parted /dev/sdb rm 1 删除分区 parted -l /dev/sdb 查看分区 3.partprobe同步硬盘上分区表到内存中。当两者不同步时使用。 2、创建一个10G的分区,并格式化为ext4文件系统
(1)block大小为2048,预留20%,卷标为MYDATA (2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 (3)可开机挂载 创建分区:使用fdisk命令指定要分区的磁盘 查看分区:cat /proc/partitions 创建文件系统: 挂载分区,并指定属性: 挂载查看是否成功: 设置开机自动挂载: 除根文件系统以外的其它文件系统,能够开机时自动挂载需要配置:/etc/fstab mount -a :可自动挂载定义在此文件中的所支持自动挂载的设备 每行定义一个要挂载的文件系统相关属性,一共有6个字段分别对应的意义: (1)要挂载的设备: /dev/DEVICE LABEL UUID 伪文件系统:如sysfs,proc,tmpfs (2)挂载点: swap类型的设备的挂载点为swap (3)文件系统类型: ext4 ext3 ext2 xfs (4)挂载选项: defaults:使用默认挂载选项 常用选项:defaults,acl,noatime,noexec (5)转储频率: 0:从不备份 1:每天备份 2:每隔一天备份 (6)自检次序: 0:不自检 1:首先自检,通常只能是根文件系统可用1 2:次级自检 3、创建一个大小为1G的swap分区, 并启用
首先创建一个1G的分区,指定磁盘ID号为82 使用mkswap命令,设置为swap分区: 查看是否成功: swapon命令:启动swap分区 swapoff命令:关闭swap分区 4、编写脚本计算/etc/passwd 文件中第10个用户和第20个用户的id之和
第一版:
#!/bin/bash #计算/etc/passwd文件中第10个用户和第二十个用户 user10=$( cat /etc/passwd |head -10 |tail -1 |cut -d: -f3 ) echo "user10:$user10" user20=$( cat /etc/passwd |head -20 |tail -1 |cut -d: -f3 ) echo "user20:$user20" echo "sum ID:$(($user10+$user20))" 执行脚本测试: 第二版: #awk -F: 'BEGIN{sum=0}{if(NR==10 || NR==20)sum=sum+$3}END{print sum}' /etc/passwd 命令解释: -F: 指定分隔符为: BEGIN{sum=0}:首先申明变量sum值为0 {if(NR==10 || NR==20)sum=sum+$3}:NR是awk命令的内置变量,表示为第10行或者20行时,把$3的值,加入到sum当中。($3就为/etc/passwd文件的第三字段,ID号) END{print sum}:最后打印sum的值,这里的变量不用加$号。 5、将当前主机名保存至hostName变量中,主机名如果为空,或为localhost.localdomain则将设置为 www.magedu.com
hostName=$(hostname) [ -z "$hostName" -o "$hostName"=="localhost.localdomain" ] && hostname www.magedu.com 6、编写脚本,通过命令行 参数传入一个用户名,判断id号是偶数还是奇数; #!/bin/bash #通过命令行参数给定一个用户名,判断其ID是偶数还是奇数 if [ $# -lt 1 ] ;then echo "please enter one parameter" exit 1 fi num1=$(id -u $1) let ID=$num1%2 if [ $ID -eq 0 ] ;then echo "$1:ID even number" else echo "$1:ID odd number" fi 执行脚本测试: 7、lvm基本应用以及扩展缩减实现
pv管理工具:
pvs命令:简要pv信息显示 pvdisplay命令:显示pv的详细信息 pvcreate命令: pvcreate /dev/device :创建pv pvremove命令:pvremove /dev/device :移除pv pvmove命令:pvmove /dev/device :移动pv vg管理工具: vgs命令;简要vg信息显示 vgdispaly命令:显示vg的详细信息 vgcreate命令:vgcreate vg_name /dev/device :创建vg:先指定vg_name,在指定要创建设备 -s#:指定pe大小 vgextend命令:vgextend VG_NAME /dev/device :添加/dev/device 到VG_NAME vgreduce命令:vgreduce VG_NAME /dev/device:缩减vg,需要先做pvmove vgremove命令:vgmove /dev/device lv管理管理工具: lvs命令:简要lvs信息显示 lvdispaly命令:显示lv详细信息 lvcreate命令:创建lv:lvcreate -L #[mMgGtT] -n lv_name vg_name lvremove命令:移除lv 列如: 创建:lvcreate -L 3G -n LV_NAME VG_NAME :指定大小为3G,指定lv,在vg中创建。 格式化:mke2fs -t ext4 -b 1024 -L HELLO /dev/VG_NAME/LV_NAME 挂载:mount /dev/VG_NAME/LV_NAME /media 扩展逻辑卷:(支持在线扩展) lvextend命令: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME 创建:lvextend -L 5G /dev/VG_NAME/LV_NAME :扩展为5G 创建:lvextend -L +5G /dev/VG_NAME/LV_NAME :在原来的大小上再加5G resize2fs命令:扩展逻辑卷 resize2fs /dev/VG_NAME/LV_NAME 注意:上面的扩展方法只适合ext系列,如果是xfs文件系统的话,需要按如下方法扩容: xfs_growfs /dev/VG_NAME/LV_NAME
缩减逻辑卷: 卸载:umount /dev/VG_NAME/LV_NAME 强制检测:e2fsck -f /dev/VG_NAME/LV_NAME 缩减逻辑边界:resize2fs /dev/VG_NAME/LV_NAME 5G :缩减至5G 修改物理边界:lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME 重新挂载:mount /dev/VG_NAME/LV_NAME /test 快照:快照就是某一时刻立即创建一个对原卷文件元数据的监视器,当原卷上文件元数据要变化的时候,先把原文件复制一份到快照卷上,而没有变化的就指向原卷上的文件数据。快照的相关命令: 创建快照:lvcreate -s -L 1G -p r -n LV_NAME_snapshoot /dev/VG_NAME/LV_NAME 练习:
1: 创建一个至少有两个pv组成的大小为20G的名为testvg的VG,要求PE大小为16MB,而后在卷组中创建大小为5G的逻辑卷testlv,挂载至/users目录 创建pv:[root@bogon ~]# pvcreate /dev/sdb{1,2} 创建vg:[root@bogon ~]# vgcreate -s 16m testvg /dev/sdb{1,2} -s :指定PE大小 创建lv:[root@bogon ~]# lvcreate -L 5G -n testlv testvg -L:指定大小 -n:指定名字 格式化:[root@bogon ~]# mke2fs -t ext4 /dev/testvg/testlv 挂载:[root@bogon~]# mount /dev/testvg/testlv /users 2:新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制、etc/pam.d目录至自己的家目录 创建用户: [root@bogon users]# useradd -d /users/archlinux archlinux 复制:[archlinux@bogon ~]$ cp -r /etc/pam.d/ ./ 3:扩展testlv至7G,要求archlinux用户的文件不能丢失 扩展物理边界:[root@bogon ~]# lvextend -L 7G /dev/testvg/testlv 扩展逻辑边界:resize2fs /dev/testvf/testlv 注意:resize2fs 至合适etx文件系统,如果是xfs文件系统需要使用 xfs_growfs /dev/VG_NAME/LV_NAME 查看用户是否丢失资料: 4:收缩testlv至3G,要求archlinux用户的文件不能丢失 首先卸载:umount /dev/testvg/testlv 强制文件检测:e2fsck -f /dev/testvg/testlv 缩减逻辑边界: resize2fs /dev/testvg/testlv 3G 缩减物理边界:lvreduce -L 3G /dev/testvg/testlv 重新挂载:mount /dev/testvg/testlv /users/ 查看文件: 5.对testlv创建快照,并尝试基于快照备份数据,验证快照的功能 创建快照:lvcreate -s -p r -L 1G -n testlv_snap /dev/testvg/testlv 挂载,查看是否成功:
|