先模拟破快分区表
dd if=/dev/zero of=/dev/vdb bs=512 count=1
然后先使用 parted尝试修复
parted /dev/vdbGNU Parted 2.1使用 /dev/vdbWelcome 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)rPrimary 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)rPrimary 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)rPrimary 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/vdbBegin scan... (时间很长)
1 - Absolute start sector ( 0)
2 - Absolute sector count ( 0)3 - Partition type ( 0)(unused)这里会让你填三个值,第一个,第二个,我怎么可能能记得!选第三个,由于记得有一个拓展分区,就写了Extended
Disk /dev/vdb: 5368 MB, 5368709120 bytes16 heads, 63 sectors/track, 10402 cylindersUnits = cylinders of 1008 * 512 = 516096 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000d0da8Device 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/vdbBegin 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)rPrimary 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)rPrimary 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)rPrimary 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)rPrimary 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)rPrimary 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)rPrimary 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)rEdit this table (y,n) : n
Activate which partition (1..4, q to quit) : 1234
Activate which partition (1..4, q to quit) : 1..4Write this partition table (y,n) : yWarning: 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 cylindersUnits = cylinders of 1008 * 512 = 516096 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00014cd2Device Boot Start End Blocks Id System
/dev/vda1 * 3 1018 512000 83 LinuxPartition 1 does not end on cylinder boundary./dev/vda2 1018 5179 2097152 82 Linux swap / SolarisPartition 2 does not end on cylinder boundary./dev/vda3 5179 62416 28847104 83 LinuxPartition 3 does not end on cylinder boundary.Disk /dev/vdb: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylindersUnits = cylinders of 1008 * 512 = 516096 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Device Boot Start End Blocks Id System
/dev/vdb1 * 1 204 102784 83 LinuxPartition 1 does not end on cylinder boundary./dev/vdb2 205 611 204801 83 LinuxPartition 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/vdbvdb 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 -hFilesystem 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