linux中生成考核用的GPT分区表结构修复案例
注:历史版本,后期改用python实现了
实验一:
目的:用于生成大量模拟破坏GPT分区结构案例,并生成唯一方式修复后的评判方法。
故障:在一个完整的GPT分区磁盘上,丢失了GPT主分区表,或备份分区表。
要求:
1、利用WINHEX手工方式,修复给定镜像文件的分区结构。
2、不得对现存主分区表或备份分区表做任何修改。
3、不得使用WINHEX GPT分区模板进行参考修复。
4、修复后生成整个镜像文件的MD5 HASH值。
实验样本生成过程:
#!/bin/sh #删除头部做50个 for((i=1;i<=50;i++));do r1=$(($i+200)) qemu-img create -f raw $i.img "$r1"M losetup /dev/loop0 $i.img parted -s /dev/loop0 mklabel gpt parted -s /dev/loop0 mkpart -s primary ext3 128s 100% dd if=/dev/loop0 2>/dev/null |md5sum -b|tr a-z A-Z 1>>md5.txt dd if=/dev/loop0 of=head"$i".img bs=512 count=64 dd if=/dev/zero of=/dev/loop0 bs=512 seek=1 count=2048 dd if=/dev/loop0 of=f"$i".img tar -zcvf f"$i".tar.gz f"$i".img rm f"$i".img losetup -D rm $i.img done #删除尾部做50个 for((i=51;i<=100;i++));do r1=$(($i+200)) r2=$(($r1*2048-64)) qemu-img create -f raw $i.img "$r1"M losetup /dev/loop0 $i.img parted -s /dev/loop0 mklabel gpt parted -s /dev/loop0 mkpart -s primary ext3 128s 100% dd if=/dev/loop0 2>/dev/null |md5sum -b|tr a-z A-Z 1>>md5.txt dd if=/dev/loop0 of=tail"$i".img skipk=$r2 bs=512 dd if=/dev/zero of=/dev/loop0 bs=512 seek=$r2 dd if=/dev/loop0 of=f"$i".img tar -zcvf f"$i".tar.gz f"$i".img rm f"$i".img losetup -D rm $i.img done
实验二:
目的:用于生成大量模拟破坏GPT分区结构案例,并生成唯一方式修复后的评判方法。
故障:在一个完整的GPT分区磁盘上,之前有一个位置不确定的分区(脚本中起始于100~150M,结束于350~400M),现在被重新分区后变成了一个完整的大分区。
要求:
1、利用WINHEX手工方式,修复给定镜像文件的分区结构。
2、仅在现有分区表项上做修改,仅修改其起始位置,结束位置。
3、不得使用WINHEX GPT分区模板进行参考修复。
4、修复后生成整个镜像文件的MD5 HASH值。
实验样本生成过程:
#!/bin/bash for((i=1;i<=100;i++));do r1=$(($RANDOM % 50+100)) r2=$(($RANDOM % 50+350)) qemu-img create -f raw $i.img 500M losetup /dev/loop0 $i.img parted -s /dev/loop0 mklabel gpt parted -s /dev/loop0 mkpart -s primary ext3 "$r1"M "$r2"M mkfs.ntfs -f /dev/loop0p1 dd if=/dev/loop0 2>/dev/null| md5sum -b|tr a-z A-Z 1>>md5.txt dd if=/dev/loop0 2>/dev/null| gzip >s"$i".gz parted -s /dev/loop0 rm 1 parted -s /dev/loop0 mkpart -s primary ext3 128s 100% dd if=/dev/loop0 2>/dev/null |gzip >"$i".gz losetup -D rm $i.img done

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
扫描端口占用情况的python脚本
之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况。由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结。 一、python脚本实现扫描端口: pthon2下代码如下(当时的环境): #!/usr/bin/envpython #-*-coding:utf-8-*- #usedforpthon2.* importsocket,time,thread socket.setdefaulttimeout(3)#设置默认超时时间 defsocket_port(ip,port): """ 输入IP和端口号,扫描判断端口是否占用 """ try: ifport>=65535: printu'端口扫描结束' s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) result=s.connect_ex((ip,port)) ifresult==0: lock.acquire() printip,u':',port,u'端口已占用' lock.release() except: pri...
- 下一篇
直击传统运维痛点,京东金融智能运维实践
随着互联网+时代的到来,京东金融业务规模不断扩大,业务场景也不断创新。但是,业务变化之快超乎想象,相应的 SOA 及微服务架构日趋深入,服务数量不断膨胀,线上环境日益复杂,服务依赖关系每天都在变化。 ● 如何实时看清系统的容量水位,为容量评估和系统扩容提供客观依据? ● 当故障发生时,如何精确判断影响范围? ● 如何确定每一次交易过程中,每个系统处理耗时分别是多少? ● 每个系统在处理一笔交易时,分别在数据库、NoSQL、缓存、日志、RPC、业务逻辑上耗时多少? ● 如何快速确定系统的真正瓶颈点? 面对上述难题,本文将从智能容量评估与智能告警切入,为大家分享京东金融的运维实践。 智能容量评 应用的容量评估是一个老大难问题,目前也没有一种简单而有效的方式,主要是通过压测手段直接得到应用单机最高 QPS 的相关数据。 线下压测 为了测试数据的相对真实性,在容量评估的线下压测中一般通过 tcpcopy 等工具,将线上的流量直接复制到测试服务器,在测试服务器出现瓶颈时得到应用最高的 QPS,再通过线上线下的换算系数推算出线上的应用能承载的容量。 注:本图片转自tcpcopy官网 线上压测 通过...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8安装Docker,最新的服务器搭配容器使用