热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第五周作业磁盘分区、shell脚本、lvm逻辑卷

一、什么是GPT,有什作用?inux中磁盘分区分为MBR和GPT。一一MBR全称为MasterBootRecord,为主引导记录,是传统的分区机制,应用于绝大多数使用的BIOS的P

一、什么是GPT,有什作用?

inux中磁盘分区分为MBR和GPT。
一一MBR全称为Master Boot Record,为主引导记录,是传统的分区机制,应用于绝大多数使用的BIOS的PC设备。



  • MBR分区主分区数目不能超过4个

  • MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB
    一一GPT(全称为GUID Partition Table)分区为全局唯一分区表,是一个实体硬盘的分区表的结构布局的标准,解决了MBR很多缺点。

  • 支持2TB以上的大硬盘。

  • 每个磁盘的分区个数几乎没有限制。为什么说“几乎”呢?是因为Windows系统最多只允许划分128个分区。

  • 分区大小几乎没有限制。因为它用64位的整数表示扇区号。

  • 分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复。

  • 循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率。

  • MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型,这使分区类型更不容易冲突。

  • 支持唯一的磁盘和分区 ID,每个分区可以有一个名称(不同于卷标)。


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



  1. 块大小为2048,预留空间20%,卷标为mydata
    fdisk -l 查看分区情况
    fdisk /dev/sda p/n/3/w 进入分区/dev/sda,分出一个10G的主分区/dev/sda3保存退出
    partx -a /dev/sda 将新分区同步到磁盘
    lsblk 查看磁盘情况
    mkfs.ext4 -b 2048 -L mydata /dev/sda3 -m 20

  2. 挂载至/mydata,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
    mkdir /mydata
    mount /dev/sda3 /mydata/ -o noexec,noatime

  3. 可开机自动挂载
    vim /etc/fstab
    /dev/sda3 /mydata ext4 defaults,noexec,noatime 0 0
    mount -a

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

    创建交换分区有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件。
     
    1 添加一个交换分区
      步骤如下:
    a 使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区,type为82)
    b 使用 mkswap 命令来设置交换分区:
      #mkswap /dev/sdb2
    c 启用交换分区:
      #swapon /dev/sdb2 #swapon –s 查看
    d 写入/etc/fstab,以便在引导时启用:
       /dev/sdb2 swap swap defaults 0 0
     
    2 添加一个交换文件
      a 创建大小为1G的交换文件:
       #dd if=/dev/zero of=/swapfile1 bs=1024k count=1024
      b 使用 mkswap 命令来设置交换文件:
       #mkswap /swapfile1
      c 启用交换分区:
       #swapon /swapfile1
      d 写入/etc/fstab,以便在引导时启用:
       /swapfile1 swap swap defaults 0 0
      新添了交换分区并启用它之后,请查看 cat /proc/swaps 或free 命令的输出来确保交换分区已被启用了。
     
    3 删除交换空间
      a 禁用交换分区:
       #swapoff /dev/sdb2
      b 从 /etc/fstab 中删除项目;
      c 使用fdisk或yast工具删除分区。
    删除交换文件步骤同上。
     



四、编写脚本计算/etc/passwd 第10个用户和第20个用户id号之和。

#!/bin/bash
id10=$(head -10 /etc/passwd | tail -1 | cut -d: -f3)
id20=$(head -20 /etc/passwd | tail -1 | cut -d: -f3)
id_sum=$[$id1+$id2]
echo id_sum=$id_sum
[root@localhost Desktop]# bash idSUM.sh
id_sum=180


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

hostName=$(hostname)
[ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName" == "localhost" ] && hostname www.magedu.com


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

#!/bin/bash
[[ $# != 1 ]] && echo "input a username:" ||exit
grep "^\<$1\>" /etc/passwd | awk -F: '{print "user is " $1,",uid is " $3} {if($3%2 == 0){print "偶数"} else {print "奇数"}}'


七、lvm的基本应用及收缩扩展

1、创建lvm
 
新增硬盘
Fdisk –l
More /proc/partitions 或者lsblk查看
Fdisk /dev/sdb 创建分区,格式为LVM,记得保存w退出,创建后可能读不出来,需要重启或者partprobe或者kpartx –a /dev/sdb或者partx -a /dev/sdb
Fdisk –l 或者lsblk查看

Pvcreate /dev/sdb1 pvdisplay
Vgcreate vg1 /dev/sdb1 vgdisplay -s 8M 注: -s 指定PE大小
Lvcreate –L 4.99G –n lv1 vg1 注:-l 指定PE个数 –L指定大小 -n指定名称
Lvdisplay
Mkfs.ext4 /dev/vg1/lv1
Mount /dev/vg1/lv1 /mnt
或者vi /etc/fstab
/dev/mapper/vg1-lv1 /mnt ext4 default 0 0
Mount –a
2、卷组变化
 
(1) 扩展卷组
 
fdisk /dev/sdb #新增/dev/sdb5(逻辑分区8e) 2G
pvcerate /dev/sdb5 #创建物理卷sdb5
vgextend vg1 /dev/sdb5 #把物理卷sdb5添加到vg1卷组中
lvresize -L 100M /dev/vg1/lv1 #扩容逻辑卷大小
Df –h
如果挂载的大小没变
Resize2fs /dev/vg1/lv1 Df –h
(需要重新格式化和挂载吗?)不需要
 
(2) 扩容逻辑卷,扩容不影响扩容前磁盘里面的内容
 
lvresize -L 300M /dev/vg1/lv1 #重新设定大小 lvextend也行
e2fsck -f /dev/vg1/lv1 #检查磁盘错误 (针对ext4执行)
resize2fs /dev/vg1/lv1 #更新逻辑卷信息(针对ext4执行)
 
(3) 缩减逻辑卷,xfs不支持,缩减前先unmount
 
e2fsck -f /dev/vg1/lv1 #检查磁盘错误 (针对ext4执行)
resize2fs /dev/vg1/lv1 100M #更新逻辑卷信息(针对ext4执行)
lvresize -L 100M /dev/vg1/lv1 #重新设定大小
 
3、离线卸载
1.lvscan , vgscan 或者 lvdisplay,vgdisplay一下
2.举例:我的LV1 和VG1要删除
umount /mnt/lv1
将lv1逻辑卷至离线状态
lvremove lv1
删除了lv1之后 ,到vg1了,
vgchange -an /dev/vg1 -------- -an离线 (非活动)-ay 上线(活动)
vgremove /dev/vg1
pv物理卷 其实可以不用理会 pvremove


推荐阅读
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 第8章 使用外部和内部链接
    8.1使用web地址LearnAboutafricanelephants. ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
author-avatar
zengshiming
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有