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

gpt相比于mbr,没有了最多4个主分区的限制,同时支持的分区容量也更大,
以fdisk /dev/sda为例,进入交互模式后输入g即是转到gpt分区,之前已有分区信息也会失效

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

    (1)block大小为2048,预留空间20%,卷标为MYDATA,

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

    (3)可开机自动挂载

parted /dev/sdb mklabel gpt;parted /dev/sdb mkpart primary 0% 10G;partx -u /dev/sdb
mkfs.ext4 -b 2048 -m 20 -L "MYDATA" /dev/sdb1;mkdir /mydata
echo "/dev/sdb1 /mydata ext4 defaults,noexec,noatime 0 0" >> /etc/fstab

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

dd if=/dev/zero of=f_swap bs=1M count=1024;mkswap f_swap;swapon f_swap

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

#/bin/bash
sum=0
for i in 10 20;do
        let sum+=`head -${i} /etc/passwd|tail -1|cut -d: -f3`
done
echo $sum

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

#/bin/bash 
hostName=`hostname`
([ -z "$hostname" ]||[ "$hostname" == "localhost.localdomain" ])&&hostnamectl set-hostname "www.magedu.com"

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

#/bin/bash
if [ -n "$1" ];then
        ID=`id -u $1`
        if [ "$?" == 0 ];then
                [ $((${ID}%2)) == 0 ]&&echo "偶数"||echo "奇数"
        fi
fi

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

lvm主要用于需要弹性调整文件系统容量的场合,自带COW快照功能,但快照会带来比较明显的性能损失

lv扩展步骤(标准):卸载lvm分区--fsck--创建物理分区--改物理分区tag为lvm--pvcreate--vgextend--lvextend--xfs_growfs/resize2fs等

lv扩展步骤(简化):vgextend(自动创建pv,剩余空间足够就不需要这个了)--lvextend -r(自动fsck,-r自动缩放文件系统)

lv缩减步骤(简化):lvreduce -r,如果还需要撤掉某个pv /dev/sdc1,需要继续操作,pvmove /dev/sdc1,vgreduce vgx /dev/sdc1,最后pvremove /dev/sdc1彻底清除PV标记

统一使用lvresize代替lvextend/lvreduce,带-r在线调整无需反复mount

下层的pv增减涉及到pvremove,pvmove,vgextend,vgreduce

如下:


#创建初始pv/vg/lv
vgcreate -s 16M vgx /dev/sdc{1..3};lvcreate -L 3G -n lv1 vgx
mkfs.ext4 /dev/vgx/lv1;mount /dev/vgx/lv1 /mydata/lv1;cp /boot/vmlinuz /mydata/lv1;df -Th
#扩展lv1到4g
lvresize -r -L 4g /dev/vgx/lv1
#vgx新增一个/dev/sdc5(4是扩展分区标记没法用)
vgextend vgx /dev/sdc5;pvs;pvdisplay;vgs;vgdisplay
#vgx撤掉/dev/sdc1,把数据移到新增的/dev/sdc5
pvmove /dev/sdc1 /dev/sdc5;pvs
vgreduce vgx /dev/sdc1;pvs;
也可以进一步抹掉/dev/sdc1的pv标记:pvremove /dev/sdc1
#vgx打算彻底不用了,同时清理所有pv
umount /mydata/lv1;vgremove vgx -y
pvremove /dev/sdc{2,3,5};pvs