有时候,由于操作不当将U盘或者移动硬盘插入到电脑的时候会变成RAW格式,不可读取,这样的话就杯具了,只能用恢复软件试试看。

但是,如果一开始进行了备份的话,处理起来就简单多了。

用winhex打开U盘,可以看到第一个扇区(512Byte)的情况:

如图所示:0x00-0x1BD为MBR的内容,这里不需要关注。

这里主要关注的是0x01BE-0x1FD的内容。

0x1FD的两个字节是分区结束标志(55AA)

分区表有16*4 = 64Byte,每一个分区占16个byte,一共有4个分区,其中,最多有4个主分区。

由于一般U盘只分一个分区,所以这里只关注一个。

可以看到,8020开始的就是第一个分区了。

下面是分区表的说明:

以这里的分区为例,

802021000CFEFFFF000800000038DD01

这一串是这个U盘的分区表数值。

下面把它拆开来:

80 202100 0C FEFFFF 00080000 0038DD01

80 活动分区
202100 起始CHS
0C FAT32
FEFFFF 结束CHS
00080000 已用扇区数
0038DD01 此分区总扇区数

下面来打开diskgenius来参照下吧:

因为格式还没搞清楚,下面先分析到这里。

下面来看怎么备份恢复分区表。

现在先在U盘里面新建一个记事本吧:

然后备份分区表,这里为了方便,把整个MBR一起备份,也就是第一个扇区被备份了:

先选中第一个扇区的内容,

选择编辑->复制选块->至新文件

然后就保存成功了。

接下来进行破坏吧。

点击确定后保存。这样就破坏完成了。接下来重新插拔U盘。

可以看到它已经完蛋了:

接下来恢复吧:

在已经打开的备份文件上点击右键->编辑->复制选快->正常

然后数据就在剪切板里面了。

在需要恢复的U盘第一扇区的0字节上点击右键->编辑->剪切板数据->写入,然后点击保存就ok了。

接下来重新插拔U盘,发现数据已经回来了:

目前还有可能的一种办法是根据文件系统大小来计算分区表的数据,这样就算没有备份分区表也可以搞定它了。

目前还没有搞清楚里面的计算方法。

备份U盘分区表,未雨绸缪的更多相关文章

  1. 备份u盘kali系统

    把kali系统装在u盘上,会带来极大的便利,只要有网有机就能随时随地hacking,但是u盘体积太小极易丢失,所以需要对其备份以备万一. 一般kali启动U盘分为两个区:启动区和文件存放区.如下图 我 ...

  2. 电脑无法开机,用一个U盘先备份C盘部分重要文件并重装Win10系统的教程?

    电脑无法开机,用一个U盘先备份C盘部分重要文件并重装Win10系统的教程.? 这应该是修电脑的万能方法,重装系统能解决绝大多数非硬件导致的电脑故障,但之前要备份一下桌面的一些个人文件.所以想学一下,以 ...

  3. ubuntu 更改U盘设备分区/dev/sdb4 标识

    备份u盘分区表 代码: sudo sfdisk -d /dev/sdb > sdb_table 修改sdb_table文件 代码: gedit sdb_table 恢复u盘分区表 代码: sud ...

  4. U盘装系统之winpe中常用安装win7的方法和备份(2013-01-15-bd 写的日志迁移

    首先到网上去下一个制作U盘启动的的软件比如老毛桃.大白菜.电脑城制作u盘启动软件[其实他们的装机界面和工具那些都差不多], 我是用的老毛桃至于制作流程你可以看它的视频你往下拉就可以看见,或者看说明,自 ...

  5. MBR分区表的备份与还原

    MBR分区表的备份与还原 MBR分区的存储 从下图可以看出,MBR分区前446字节是boot loader:接下来64字节是分区表:再然后就是三个主分区加一个拓展分区. 一.备份分区表,要跳过前446 ...

  6. 通过 U 盘启动重装 macOS 系统

    重装系统是工作和生活中经常需要做的事情,作为一名开发人员,学会该技能你才是一名合格的程序猿!以后再也不会遇到"程旭元你会装系统吗?"的尴尬了!本文主要介绍怎样通过U盘启动重新安装 ...

  7. 安装grub到U盘分区,实现多系统引导

    目录 1.分区工具及分区类型 1.1 显示分区表和分区信息 1.1.1 fdisk -l 1.1.2 gdisk -l 1.1.3 parted -l 1.2 常见分区类型 1.3 分区样例 1.3. ...

  8. linux--磁盘及文件系统管理

    磁盘管理 : 主流的磁盘 : 机械式硬盘 常见的有 : U盘, 光盘, 软盘, 硬盘, 磁带机 扇区 : sector 磁道 : track 柱面 : cylinder 磁盘出厂时 : 低级格式化 : ...

  9. Linux GPT分区表16进制实例分析

    Linux GPT分区表16进制实例分析 GPT分区表随着win10的普及,已经在越来越多的新电脑上开始使用了.前段时间的新闻有看到说Intel会在后面的新平台中完全取消CSM支持,这也大概相当于后面 ...

随机推荐

  1. bsearch

    在java中为了避免 low+high溢出,可以用无符号右移:正数高位补0,负数高位补1 int mid = (low + high) >>> 1; 如果是在c++中,那么需要先转换 ...

  2. Effective Java 72 Don't depend on the thread scheduler

    Principle Any program that relies on the thread scheduler for correctness or performance is likely t ...

  3. JavaScript Patterns 3.7 Primitive Wrappers

    Primitive value types: number, string, boolean, null, and undefined. // a primitive number var n = 1 ...

  4. facebook开源前端UI框架React初探

    最近最火的前端UI框架非React莫属了.赶紧找时间了解一下. 项目地址:http://facebook.github.io/react/ 官方的介绍:A JavaScript library for ...

  5. netty-socketio使用namespace

    一.简介 netty-socketio中的namespace可以用于区别在相同连接地址下的不同用户,当两个不同的用户打开同一个页面的时候,可以使用namespace用来标记不同用户.例如我们可以在用户 ...

  6. mac环境下手动卸载mysql

    1.sudo rm /usr/local/mysql 2.sudo rm -rf /usr/local/mysql* 3.sudo rm -rf /Library/StartupItems/MySQL ...

  7. MCS51系列单片机实用技术部分课件

  8. dubbo学习之服务提供者

    1.简介 这里主要记录如何搭建一个spring框架,提供一个dubbo服务,包括详细的步骤. 2.详细步骤 2.1 项目目录结构 2.2 创建maven项目 new --> Web Projec ...

  9. JavaScript 题目破解过程与解析

    题目来源 https://www.hackthissite.org/missions/javascript/ HackThisSite JavaScript mission 1-7 1 我先尝试输入  ...

  10. 根据SQL Server排序规则创建顺序GUID

    public static class GuidUtil { , , , , , , DateTimeKind.Utc).Ticks / 10000L; /// <summary> /// ...