LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1827|回复: 11

:)用fdisk合并分区,没有丢失数据

[复制链接]
发表于 2005-2-23 20:51:07 | 显示全部楼层 |阅读模式
同学的电脑,居然用fdisk把两个分区合并了
写心得中:P

fdisk居然也可以用来合并分区,不丢失数据:)
同学的电脑以前的分区表是这样的
c盘5G,ntfs
d盘,fat32
e盘,fat32
f盘,fat32

放假之前,征得同学同意以后,把c盘删除,用sarge盘安装debian,把c盘划分成两个
分区,一个是根分区,4.5G,一个是swap是400M,剩下的空间没有改变,
放假的时候在他的电脑上用debian,他的机器是amd2400,ati9550,nforce2

放假以后同学回来了,所以要改回来装windows xp,同学有ghost,所以装系统是很
方便的,不过主要是解决分区的问题,本来这个问题是很好解决的,只要用windows xp

的盘把linux分区删除,就可以了,或者用linux自己带的fdisk就可以,linux是
很强的,比如同学的linux是装在hda1的,但是系统正在运行的时候,就可以把正在运行

的系统删除掉,也可以把这个系统的分区删除,windows是无论如何也做不到的,
我就是直接用fdisk删除的,本来cfdisk是好一些的,可以算半图形界面,但是这个时候

发现cfdisk读不出来分区表了,换了好几张盘都读不出来分区表,比如sarge,woody,

gentoo livecd,所带的cfdisk都读不出来了,只能用fdisk,直接把这个分区删除了
分区情况是这样的
hda1 1-584
hda2 585-4866
hda5 585-638
hda6 1914-3188
hda7 3189-4866

分区表有些乱了,以前的c盘是主分区,ntfs,5G,后来装linux的时候一分为二,
swap分成了逻辑分区,所以到了hda2里面了,后来想装回windows的时候,发现这两个
分区弄不到一起了,用partion magic,各个版本,中文,英文,6.0,8.0都不行,
提示分区表有错误,修复不了,所以就多出来一个分区了,不过这个分区只有400M
怎么也合并不到一起,同学把windows xp ghost恢复到了原来的hda1,swap的空间
又重新建了一个分区,不过同学还是希望把这两个分区合并到一起

我也不敢动手修改分区表,这几天同学把所有的数据都备份到别人的电脑上以后,我才

动手,修改,先还是用sarge的盘,认不出分区表来,换woody的盘,在到分区表那里
还是不行,所以我换到第二个窗口(crtl+alt+F2),是字符界面的,
用fdisk,
fdisk /dev/hda
我把所有的分区都删除了,然后重建,同学只有两个主分区,一个是hda1,一个是hda2,
只要把这两个删除就可以了
d是删除分区,n是新建分区,
我新建的分区是这样的,主要就是改成和原来一样的,柱面你记不住,但是分区大小
应该能记住吧,比如我一看就知道我的情况是,现在的hda1 和hda5是以前的c盘,
剩下的hda6,hda7,另外还有一个分区识别不出来,是以前的d,e,f,盘,这样就够了
所有的分区都d掉以后,新建一个分区,p,主分区,1,第一个分区,起始柱面是1,
结束柱面是637,
然后再建一个分区,类型是e,表示extended,有提示的,起始柱面是638
结束柱面,就是最后一个了,因为同学只有这两个主分区,
然后再建其他的分区,就是以前的d,e,f,盘
起始和结束柱面就是
638-1913
1914-3188
3189-4866
这样就可以了,然后就可以写入了,不过如果你不放心,可以p看一下分区表,确认一下

再写入,
w是写入,
写入以后就可以退出了,
然后就是改变文件系统的类型,
现在c,d,e,f盘都是linux分区,我们还要改变成windows分区,
我用的是cfdisk,这个就可以了,现在可以读分区表了,
然后选中一个分区,比如hda1,是以前的c盘,ntfs的,我们选中hda1以后,用tab键
移动到type,改变成ntfs/hpfs,就可以了,好像是05,记住这个就可以了,
其他的盘,hda5,hda6 ,hda7,以前都是fat32的,所以只要改成win95 fat32(LBA)就可以
了,
然后就是重新启动了,

本来以为fdisk以后,硬盘里面的数据都丢光了的,不过我还是用livecd看了看,
结果发现数据居然都还在,
我用的是gentoo的livecd,启动参数是smp,
进入以后,
mkdir win1
mount /dev/hda5 win1 -t vfat
进入一看,原来数据还在,我把其他的分区都挂起来一看,数据都还在,
后来想看看c盘,c盘是ntfs的,我怕不支持,试了一下,发现是可以的
mkdir winc
mount /dev/hda1 winc -t ntfs
c盘的数据居然也还在,这个盘现在的数据是以前的两个盘合并来的
后来我想,系统是不是能启动起来呢,重新启动以后,发现原来系统也还是可以启动的


真是手里捏了一把汗,同学的数据备份了也没有用上:)
不过最好还是先备份数据,我以前丢过数据,心疼死了,所以现在每次动分区表都小心翼
翼的

------------------------------------------------------------------------
总结一下,就是用fdisk改分区表信息,修改盘的起始和结束柱面,
然后用cfdisk改分区的类型,比如fat32(LBA)
然后重新启动就可以了

另外大家也可以尝试diskgen,可以修复分区表,不过要好长的时间来扫描
发表于 2005-2-23 21:01:10 | 显示全部楼层
这样也行!强!
我到是愿意重写分区表
回复 支持 反对

使用道具 举报

发表于 2005-2-23 21:25:23 | 显示全部楼层
这样也可以。。。。

有机会在虚拟机里试验一下。

感谢楼主共享 ! :thank

想收录到我的blog里,不知可行否
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 21:30:00 | 显示全部楼层
呵呵,愿意和大家共享,大家可以任意转载,
只要注明出处的链接就可以了
回复 支持 反对

使用道具 举报

发表于 2005-2-23 22:47:45 | 显示全部楼层
无语,这也行?看来和windows 下的fdisk是两码事儿。
回复 支持 反对

使用道具 举报

发表于 2005-2-24 11:05:32 | 显示全部楼层
楼主真是强!!!

刚刚试了。。
我也是将两个区合并成一个区,一个区里面什么也没有。。合并后用df查看,
发现里面分区里面还是占用85%。。。。为什么??
回复 支持 反对

使用道具 举报

发表于 2005-2-24 16:24:57 | 显示全部楼层
有重要数据时,还是不推荐这样做。
回复 支持 反对

使用道具 举报

发表于 2005-2-25 09:35:59 | 显示全部楼层
PQ就能搞定,把SWAP分区删除,然后创建分区,这时选择主分区,然后再删除此分区,然后再删除LINUX分区,这时未划分的区就到一起了.然后再建主分区,就搞定.
回复 支持 反对

使用道具 举报

发表于 2005-4-25 17:02:21 | 显示全部楼层
Post by flyps
楼主真是强!!!

刚刚试了。。
我也是将两个区合并成一个区,一个区里面什么也没有。。合并后用df查看,
发现里面分区里面还是占用85%。。。。为什么??




以前看到那个地方说是, 合并之后的分区仍然使用的是第一个分区的超级块,里面的信息没有变化。。。所以计算的仍然是第一个分区的使用状况。。
回复 支持 反对

使用道具 举报

发表于 2005-4-25 19:30:10 | 显示全部楼层
长见识了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表