linux修复丢失的分区表

news/2024/11/15 20:33:10/

原文地址:http://fatboy.blog.51cto.com/6671737/1594963


先模拟破快分区表

dd if=/dev/zero of=/dev/vdb bs=512 count=1

然后先使用 parted尝试修复
parted /dev/vdb
GNU Parted 2.1
使用 /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) rescue
错误: /dev/vdb: unrecognised disk label

猜是MSDOS的于是 (parted) mklabel msdos
然后再rescue

(parted) rescue
起始点? 0                                                                
结束点? 10000          
没有原来分区表的信息,只能猜,没有任何收获,尝试使用gpart工具

gpart /dev/vdb

Begin scan...
Possible extended partition at offset(601mb)
  Possible partition(Linux ext2), size(4518mb), offset(601mb)
End scan.

Checking partitions...
Partition(Linux ext2 filesystem): primary
Ok.

Guessed primary partition table:
Primary partition(1)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 4518mb #s(9253376) s(1231839-10485214)
  chs:  (1023/15/63)-(1023/15/63)d (1222/1/1)-(10401/15/62)r

Primary partition(2)
  type: 000(0x00)(unused)
  size: 0mb #s(0) s(0-0)
  chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Primary partition(3)
  type: 000(0x00)(unused)
  size: 0mb #s(0) s(0-0)
  chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Primary partition(4)
  type: 000(0x00)(unused)
  size: 0mb #s(0) s(0-0)
  chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
有一点收获,于是将猜的结果写入磁盘
root@localhost ~]# gpart -W /dev/vdb /dev/vdb

Begin scan... (时间很长)

1 - Absolute start sector (           0)
2 - Absolute sector count (           0)
3 - Partition type        (           0)(unused)

这里会让你填三个值,第一个,第二个,我怎么可能能记得!选第三个,由于记得有一个拓展分区,就写了Extended
Disk /dev/vdb: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0da8

Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            1223       10402     4626688   83  Linux
/dev/vdb4   *           1           1           0    0  Empty

结果找回来一个分区,注意vdb1,挂载起来,发现数据回来了,晕。

网上的testdisk,貌似认不到虚拟机的硬盘,晕

最后尝试 fsck一下,看行不行
结果依然不行,判他死缓,告诉大家,备份非常重要,不要抱着侥幸心里过关!

、——————————————————————————————————————————————————————————————————
补充一下,后来发现其实 gpart 很好用,之前不行,是因为磁盘vdb没有分区和数据,后来我把vdb分了4个区,都有数据,执行gpart,很快就修复了
[root@localhost ~]# gpart /dev/vdb

Begin scan...
Possible partition(Linux ext2), size(100mb), offset(0mb)
Possible partition(Linux ext2), size(200mb), offset(100mb)
Possible partition(Linux ext2), size(300mb), offset(300mb)
Possible extended partition at offset(601mb)
  Possible partition(Linux ext2), size(4518mb), offset(601mb)
End scan.

Checking partitions...
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Ok.

Guessed primary partition table:
Primary partition(1)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 100mb #s(205568) s(63-205630)
  chs:  (0/1/1)-(203/15/62)d (0/1/1)-(203/15/62)r

Primary partition(2)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 200mb #s(409602) s(205632-615233)
  chs:  (204/0/1)-(610/5/39)d (204/0/1)-(610/5/39)r

Primary partition(3)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 300mb #s(615888) s(615888-1231775)
  chs:  (611/0/1)-(1023/15/63)d (611/0/1)-(1221/15/63)r

Primary partition(4)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 4518mb #s(9253376) s(1231839-10485214)
  chs:  (1023/15/63)-(1023/15/63)d (1222/1/1)-(10401/15/62)r

[root@localhost ~]# gpart -W /dev/vdb /dev/vdb

Begin scan...
Possible partition(Linux ext2), size(100mb), offset(0mb)
Possible partition(Linux ext2), size(200mb), offset(100mb)
Possible partition(Linux ext2), size(300mb), offset(300mb)
Possible extended partition at offset(601mb)
  Possible partition(Linux ext2), size(4518mb), offset(601mb)
End scan.

Checking partitions...
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Ok.

Guessed primary partition table:
Primary partition(1)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 100mb #s(205568) s(63-205630)
  chs:  (0/1/1)-(203/15/62)d (0/1/1)-(203/15/62)r

Primary partition(2)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 200mb #s(409602) s(205632-615233)
  chs:  (204/0/1)-(610/5/39)d (204/0/1)-(610/5/39)r

Primary partition(3)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 300mb #s(615888) s(615888-1231775)
  chs:  (611/0/1)-(1023/15/63)d (611/0/1)-(1221/15/63)r

Primary partition(4)
  type: 131(0x83)(Linux ext2 filesystem)
  size: 4518mb #s(9253376) s(1231839-10485214)
  chs:  (1023/15/63)-(1023/15/63)d (1222/1/1)-(10401/15/62)r

Edit this table (y,n) : n

Activate which partition (1..4, q to quit) : 1234
Activate which partition (1..4, q to quit) : 1..4
Write this partition table (y,n) : y



  • Warning: partition table written, you should reboot now.

[root@localhost ~]# fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
16 heads, 63 sectors/track, 62415 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014cd2

Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           3        1018      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2            1018        5179     2097152   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/vda3            5179       62416    28847104   83  Linux
Partition 3 does not end on cylinder boundary.

Disk /dev/vdb: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/vdb1   *           1         204      102784   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/vdb2             205         611      204801   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/vdb3             612        1222      307944   83  Linux
/dev/vdb4            1223       10402     4626688   83  Linux
[root@localhost ~]# mount /dev/vdb
vdb   vdb1  vdb2  vdb3  vdb4  
[root@localhost ~]# mount /dev/vdb1 /mnt/1/
[root@localhost ~]# mount /dev/vdb2 /mnt/2/
[root@localhost ~]# mount /dev/vdb3 /mnt/3/
[root@localhost ~]# mount /dev/vdb5 /mnt/4/
mount: you must specify the filesystem type
[root@localhost ~]# mount /dev/vdb4 /mnt/4/
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        27G  6.0G   20G  24% /
tmpfs           4.0G   72K  4.0G   1% /dev/shm
/dev/vda1       477M   33M  419M   8% /boot
/dev/vdb1        98M  5.6M   87M   7% /mnt/1
/dev/vdb2       194M  5.6M  179M   4% /mnt/2
/dev/vdb3       292M   11M  267M   4% /mnt/3
/dev/vdb4       4.4G  137M  4.0G   4% /mnt/4


http://www.ppmy.cn/news/561186.html

相关文章

如何找回丢失的硬盘分区表?

1、运行Diskgenius,记住一定要在纯Dos下运行、这样你后面做的工作才会生效,运行后它会自动检测当前硬盘并将每个分区的信息详细提供给你。 左边柱形图表示硬盘、有几截就代表有几个分区,最下面深蓝色的是主分区,上面一大截灰色的是被误克隆后丢失的分区(现在变成了…

重装系统后,硬盘分区丢失的解决办法

重装系统后,硬盘分区丢失的解决办法 最近发现自己的电脑运行速度变得很慢,于是打算重装系统,从网上下载了一个Ghost系统装完之后,发现原来的C、D、E、F盘变成了一个C盘,瞬间傻眼了,这些年所有的资料全部在电…

硬盘分区表故障和丢失的原因

开启计算机时无法进入Windows界面,甚至通过系统启动盘也无法正常识别硬盘,启动系统时往往会出现“Non-System disk or disk error,replace disk and press a key to reboot”(非系统盘或盘出错)、“Error Loading Oper…

Testdisk 修复磁盘分区表丢失

文章目录 Testdisk 修复磁盘分区表丢失一、动态磁盘分区表丢失二、下载安装 Testdisk三、恢复分区表 Testdisk 修复磁盘分区表丢失 一、动态磁盘分区表丢失 扩展分卷磁盘空间时,将基本磁盘转化成了动态磁盘,然后不小心将磁盘的分区表改变了&#xff0c…

离散数学大作业任务书

目 录 实际的练习题目、系统的总功能和各子模块的功能………………………………………………………………………………1 1.1题目及问题描述………………………………………………………………1 1.2功能概述………………………………………………………………………1 1.3技…

如何编写一个最简单的 udp 版本的 echo server 和 echo client(小白也懂!)

目录 目的 第一步 编写Server(服务器) 第二步 创建Server的各类参数 第三步 实现具体的Server内容 第四步 编写Client(客户端) 实现具体的Client内容 总流程 总代码 源码下载 目的 我们编写一个udp 版本的 echo server 和 echo client 实现在自己电脑上通过客户端…

VB高校缴费系统设计(论文+源代码+外文翻译+文献综述)

本论文是对针对日益复杂化的高校收费工作而设计开发的高校缴费系统的说明,主要介绍了系统开发的主要过程和方法,并且给出了基本的关系模型,完成了模型的静态分析与动态分析。 缴费管理系统是个典型的信息管理系统(MIS)。其设计开发主要包括了后台数据库设计建立和维护以及…

Nginx-Goaccess(实时日志服务)

goaccess的功能 1、使用webscoket协议传输(双向传输协议)2、基于终端的快速日志分析器3、通过access.log快速分析和查看web服务的统计信息、PV、UV4、安装简单、操作简易、界面炫酷5、按照日志统计访问次数、独立访客数量、累计消耗的带宽6、统计请求次…