当前位置: > Linux教程 > 系统运维 >

使用linux中的fdisk无损坏合并分区

时间:2016-12-09 19:02来源:linux.it.net.cn 作者:IT
linux的fdisk功能还真是强大,还可以做到无损坏合并分区。
看看LinuxSir ailantian兄的使用心得吧。
fdisk这个功能还是头次听说,有时间在qemu中试试。 ^_^ 
注意:在做实际操作前,请备份重要数据,硬盘有价,数据无价。
原文链接:
http://bbs.linuxsir.org/showthread.php?p=1040419#post1040419
作者: LinuxSir: ailantian

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
我把所有的分区都删除了,然后重建
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,可以修复分区表,不过要好长的时间来扫描

注:HPFS/NTFS分区标号是07


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容