Linux下恢復硬碟分割槽資料(轉)

gugu99發表於2007-08-10
Linux下恢復硬碟分割槽資料(轉)[@more@]

  今天下午在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 Ext'd (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啦!可是為什麼呢?如果只是建立分割槽表來恢復資料,那麼這麼做不就是重新建立檔案分配表了嗎?!絕對不行!

  還是先看看吧。

  QUOTE:#mount -t vfat -o iocharset=utf8 /dev/hda14 /mnt/tmp/ #cd /mnt/tmp/ #ls哈哈!!!大功告成!終於又看到那些檔案了!

  重新啟動電腦進入windows也看到了分割槽E:,裡面的東西也是完好無損的在那兒待著呢!

  由此我更加信任linux系統了,工具雖小但是很實用!也很強大。同時這件事情提醒我在以後的使用中注意要細心,注意一些細節問題!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章