第五周

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

  GPT(GUID Partition Table):是一个较新的分区机制,解决了MBR的很多缺点

1)支持超过2TB的磁盘:GPT有64bit寻址空间;而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘

2)向后兼容MBR

3)但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI

4)必须使用64位操作系统

5)Mac、LInux系统都能支持GPT分区格式

6)Windows 7 64bit、Windows Server2008 64bit支持GPT

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

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

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

(3)可开机自动挂载

  1;首先fdisk /sdb 创建一个10G的分区

2;mke2fs -b 2048 -t ext4 -L Mydate -m 2 /dev/sdb3

3;[root@localhost ~]# mount -n /dev/sdb3 /mnt/

4;blkid /dev/sdb3   查看uuid 然后vim /etc/fstab

5;在/etc/fsta加一条 UUID=”uuid”  /mnt   ext4  defaults 0 0

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

  1、先格式化一块1G的磁盘分区

        fdisk /dev/sdb

        n

        2

        p

        默认起始值

        +1G

        调整磁盘类型为swap可用

        t

        82

        w

    2、重读分区

        kpartx -af /dev/sdb

    3、创建swap文件系统

        (1)、临时

            mkswap /dev/sdb2

            swapon /dev/sdb2

        (2)、开机启动挂载

            编辑/etc/fstab,增加

            /dev/sdb2 swap swap defaults 0

4.编写脚本计算/etc/passwd文件中第十个和第二十个用户ID号之和

  #!/bin/bash

usera=$(awk -F":" '{print $3}' /etc/passwd|sed -n "10p")

echo "user 10 uid:$usera"

userb=$(awk -F":" '{print $3}' /etc/passwd|sed -n "20p")

echo "user 20 uid:$userb"

let sum=$usera+$userb

echo "sum value is:$sum"

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

  #!/bin/bash

#---a test for hostname----

hostName=`hostname`

echo "hostname is:$hostName"

if [ $hostName == "localhost" -o $hostName == "localdomain" -o $hostName == "" ];

then

  echo "manzutiaojian"

  hostname www.magedu.com

fi


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

#!/bin/bash

# 通过命令行参数给定一个用户名,判断其ID号是偶数还是奇数

if [ $# -lt 1 ];then

echo "Please input a argument."

exit 1

fi

if id -u $1 &> /dev/null;then

idNum=$(id -u $1)

let s=$idNum%2

# 判断余数是0还是1,如果是0,那么就是偶数,如果是1,就是奇数

if [ $s -eq 0 ];then

echo "$1'ID number is $idNum and oven"

else

echo "$1'ID number is $idNum and odd"

fi

else

echo "user $1 doesn't exits"

fi

7.LVM基本应用以及扩展缩减实现。

lvm是什么?

  LVM是LogicalVolumeManager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由HeinzMauelshagen在Linux2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版1.1.0-rc2,以及LVM2开发版。   

      LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。   

      在我们使用linux系统的过程中,有时会有这样的需求?某一目录如/home 目录在使用的过程当中由于用户众多,导致此目录越来越大,以至于不能满足存储需求,而另一些目录由于使用较少,而且在安装系统时错误的分配了大的分区,导致资源浪费,此时要怎么办呢?添加/删除硬盘,从新分区,格式化,将改变的目录的数据复制过来,然后将原本的分区卸载然后挂载新的分区嘛?当然不是,这时可以使用LVM来解决这些问题了。       

        LVM的重点在于可以弹性的调整文件系统的容量。LVM 可以整合多个物理分区或者磁盘在一起,让这些物理分区或者磁盘看起来就像是一个大磁盘(VG)一样!然后将这块大磁盘再经过分成可使用的分区(LV),最终就能挂载使用了。

PV、PE、VG、LV

上面我们提到LVM的重点在于可以弹性的调整文件系统的容量,那么LVM的这个特性是靠什么实现的呢?    这就需要了解PV、PE、VG、LV是什么了。

PV,物理卷

我们实际的分区需要调整系统标识符 (system ID) 成为 8e (LVM 的标识符) ,然后再经过pvcreate命令将他转成 LVM 最底层的实体滚动条 (PV)  ,之后才能够将这些 PV 加以利用! 调整system ID 的方是就是透过 fdisk 的 t选项。

VG,卷用户组

所谓的 LVM 大磁盘就是将许多 PV 整合成这个 VG 的东西就是啦!所以 VG 就是 LVM 组合起来的磁 盘!这么想就好了。 那么这个大磁盘最大可以到多少容量呢?这与底下要说明的 PE 有关喔~因为每个  VG 最多仅能包含 65534 个 PE 而已。 如果使用 LVM 预设的参数,则一个 VG 最大可达 256GB 的容      量啊!(参考底下的 PE 说明) 。

PE,物理拓展块

LVM 预设使用 4MB 的 PE 区块,而 LVM 的 VG 最多仅能含有 65534 个 PE  ,因此预设的 LVM VG  会有 4M*65534/(1024M/G)=256G。 这个 PE 很有趣喔!他是整个 LVM 最小的储存区块,也就是 说,其实我们的档案资料都是藉由写入 PE 来处理的。 简单的说,这个 PE 就有点像文件系统里面的  block 大小啦。 这样说应该就比较好理解了吧?所以调整 PE 会影响到 VG 的最大容量喔!

LV,逻辑卷

LV, 逻辑卷 最终的 VG 还会被切成 LV ,这个 LV 就是最后可以被格式化使用的类似分割槽的咚咚了!那么 LV 是否可以随意指定大小呢? 当然不可以!既然 PE 是整个 LVM 的最小储存单位,那么 LV 的大小就与在此LV 内的 PE 总数有关。 为了方便用户利用 LVM 来管理其系统,因此 LV 的装置文件名通常指定为/dev/vgname/lvname的样式! 

  此外,我们刚刚有谈到 LVM 可弹性的变更 filesystem 的容量,那是如何办到的?其实他就是透过交 换 PE 来进行数据转换, 将原本 LV 内的 PE 移转到其他装置中以降低 LV 容量,或将其他装置的 PE  加到此 LV 中以加大容量! VG、LV 与 PE 的关系有点像下图:      db0925cf297375a8      如上图所示,VG 内的 PE 会分给虚线部分的 LV ,如果未来这个 VG 要扩充的话,加上其他的 PV 即 可。 而最重要的 LV 如果要扩充的话,也是透过加入 VG 内没有使用到的 PE 来扩充的!

  pvcreate  :将实体 partition 建立成为 PV  ;

  pvscan  :搜寻目前系统里面任何具有 PV 的磁盘;

  pvdisplay  :显示出目前系统上面的 PV 状态;     

pvremove  :将 PV 属性移除,让该 partition 不具有 PV 属性。

VG命令的用法与PV类似:

  vgcreate  :就是主要建立 VG 的指令啦!他的参数比较多,等一下介绍。

  vgscan  :搜寻系统上面是否有 VG 存在?

  vgdisplay  :显示目前系统上面的 VG 状态;

    vgextend  :在 VG 内增加额外的 PV  ;

    vgreduce  :在 VG 内移除 PV ; 

  vgchange  :设定 VG 是否启动 (active) ;

  vgremove  :删除一个 VG ;

VG命令的用法也与PV类似:

  lvcreate:建立 LV ;

    lvscan:查询系统上面的 LV  ;      lvdisplay:显示系统上面的 LV 状态;

    lvextend:在 LV 里面增加容量;

    lvreduce:在 LV 里面减少容量;

    lvremove:删除一个 LV ;

  lvresize:对 LV 进行容量大小的调整;

  lvcreate详细用法:lvcreate -L LV大小 -n lv名称 VG名称  -l PE个数

拓展与缩减LVM

LVM拓展

第一步:新建PV

第二步:增大VG

第三步:放大LV(lvextend -L +增加的LV量 LV全名)

第四步:增大逻辑容量(resize2fs LV全名)

LVM缩减

第一步:卸载分卷(umount LV全名)

第二步:强制检查(e2fsck -f LV全名)

第三步:减小逻辑容量(resize2fs LV全名 缩减大小)

第四步:减小物理容量(lvreduce -L 缩减大小 LV全名)

第五步:重新挂载(mount LV全名 挂载点)

注意:缩减有风险!缩减有风险!缩减有风险!缩减有风险!缩减有风险!

你可能感兴趣的:(第五周)