今天下午在linux
下删除操作,想安装oracle
数据库,整理硬盘的时候用fdisk
重新划分分区,我的硬盘分区表是这样的:
QUOTE
:# fdisk -l /dev/hda
Disk /dev/hda
: 82.3 GB
, 82348277760 bytes 255 heads
, 63 sectors/track
, 10011 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device
Boot
Start
End
Blocks
Id
System /dev/hda1
*
1
1044
8385898+
7
HPFS/NTFS
C
:/dev/hda2
1045
1057
104422+
83
Linux
/boot /dev/hda3
1058
1249
1542240
82
Linux swap /dev/hda4
1250
10011 70380765
f
W95 Extd
(LBA
)
/dev/hda8
1250
2032
6289384+
83
Linux
/usr /dev/hda9
2033
2293
2096451
83
Linux
/tmp /dev/hda10
2294
2554
2096451
83
Linux
/var /dev/hda11
2555
2746
1542208+
83
Linux
/ /dev/hda12
2747
3046
2409718+
83
Linux
/home /dev/hda5
3047
3189
1025860+
83
Linux not used /dev/hda6
3190
3380
2048108+
83
Linux not used /dev/hda7
3381
3670
2048108+
83
Linux not used /dev/hda13
3671
6287
21021021
b
W95 FAT32 D
:/dev/hda14
6288
10011
29912998+
b
W95 FAT32 E
:我想把第5
、6
、7
分区删除然后重新建立两个分区,分别安装oracle
数据库程序文件和数据库文件,我用fdisk
是这样操作的:
QUOTE
:# fdisk /dev/hda
The number of cylinders for this disk is set to 10011. There is nothing wrong with that
, but this is larger than 1024
,and could in certain setups cause problems with
:1
) software that runs at boot time
(e.g.
, old versions of LILO
)
2
) booting and partitioning software from other OSs
(e.g.
, DOS FDISK
, OS/2 FDISK
)
Command
(m for help
): d Partition number
(1-13
): 5
Command
(m for help
): d Partition number
(1-12
): 6
Command
(m for help
): d Partition number
(1-11
): 7
Command
(m for help
): w
退出fdisk
后才发现删错了,竟然把第5
、7
、9
分区删除了!其中hda9
共28G
,里面存了好多有价值的东西,难受死我了!这才想起来fdisk
在每一次删除分区后都会自动把后面的分区重新排序,即:删除第5
分区时,第6
分区变成5
,第7
分区成为6……
郁闷!……
天无绝人之路:我想到今天早上刚刚把hda
的分区表备份了,并且放到了其它分区!也没有细想,把那个备份拿过来就开始恢复硬盘分区(别笑话我啊):
QUOTE
:#dd if=hda-2006-03-21.mbr of=/dev/hda bs=512 count=1 #reboot
重启电脑用fdisk
再看分区表——
没有效果!
怎么回事?从分区表开始想——
太简单了——
分区表只有512
字节,其中只有64
字节存储分区信息,开始的时候硬盘容量很小,64
字节够用了,后来随着硬盘空间增大显得不够了,因此开始有了扩展分区,而我删除的分区正好都在扩展分区内!恢复mbr
肯定是不行的了!
怎么办啊!!!从硬件管理器盯着我的hda
看了半天!发现我删除的分区都是几个独立的空间,就想能不能重新建立我的逻辑分区表来恢复分区内容呢???一不做二不休,反正没有别的办法了,试试吧!
QUOTE
:# fdisk /dev/hda
The number of cylinders for this disk is set to 10011. There is nothing wrong with that
, but this is larger than 1024
,and could in certain setups cause problems with
:1
) software that runs at boot time
(e.g.
, old versions of LILO
)
2
) booting and partitioning software from other OSs
(e.g.
, DOS FDISK
, OS/2 FDISK
)
Command
(m for help
): n First cylinder
(3047-10011
, default 3047
):Using default value 3047 Last cylinder or +size or +sizeM or +sizeK
(3047-3189
, default 3047
):Using default value 3047
Command
(m for help
): n First cylinder
(3381-10011
, default 3670
):Using default value 3670 Last cylinder or +size or +sizeM or +sizeK
(3381-3670
, default 3670
):Using default value 3670
Command
(m for help
): n First cylinder
(6288-10011
, default 628
:Using default value 6288 Last cylinder or +size or +sizeM or +sizeK
(6288-10011
, default 10011
):Using default value 10011
Command
(m for help
): t Partition number
(1-14
): 14 Hex code
(type L to list codes
): b
Command
(m for help
): w
接下来该干什么呢?按照常规应该是mkfs.vfat
啦!可是为什么呢?如果只是建立分区表来恢复数据,那么这么做不就是重新建立文件分配表了吗?!绝对不行
linux下恢复硬盘分区数据
最新推荐文章于 2024-12-03 17:14:53 发布
本文记录了一次在Linux环境下因误操作导致多个硬盘分区被删除的事故,详细介绍了使用fdisk进行分区删除及后续的数据恢复过程。作者通过手动重建逻辑分区表成功找回了丢失的数据。
1924

被折叠的 条评论
为什么被折叠?



