日期:2014-05-16  浏览次数:20619 次

使用Linux Fdisk命令调整磁盘的分区结构

我的硬盘上已经划分了好多分区,每个分区上都装了不同发行版的Linux。今天想再从剩下的空间中划出分区来安装Fedora Core,却失败了。察看了一下分区表的结构:

?

?

?

Disk /dev/hda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/hda2 1276 6374 40957717+ 7 HPFS/NTFS
/dev/hda3 6375 7139 6144862+ 83 Linux
/dev/hda4 7140 8663 12241530 f Win95 Ext'd (LBA)
/dev/hda5 7140 7204 522081 82 Linux swap
/dev/hda6 7205 7690 3903763+ 83 Linux
/dev/hda7 7691 8177 3911796 83 Linux
/dev/hda8 8178 8663 3903763+ 83 Linux

?

从硬盘的分区结构来看,hda5-8已经占用了扩展分区hda4的全部空间,而硬盘上的剩余空间位于hda4之后。所以要想使用硬盘上最后的剩余空间,就必须要在hda的分区表上添加一个分区,而hda的分区表已经全部被占用(hda1-4),所以当然就不能添加更多分区了。

?

解决办法就只有扩大hda4的大小,让它能占用整个硬盘上的剩余空间,然后将新的分区划分到hda4中。

?

看了一下fdisk的帮助,好像没有能够直接修改分区大小的命令,没办法只好把分区删除再重建了。为了以防万一,首先执行 # dd if=/dev/hda of=/root/mbr bs=1 count=512 备份了一下MBR,然后将备份出的/root/mbr文件放到一个安全的地方。然后记下各个分区的起始地址和结束地址以备以后恢复分区时使用。用d命令删除hda4,这样位于hda4上的hda5-8就全部被删除了。然后用 n 命令新建分区,选择 e 表示建立扩展分区,分区的起始和结束地址就使用默认值也就是让它充满剩余的所有空间。然后用 t 命令将hda4的格式修改为W95 Ext'd (LBA),编号为f。然后根据以前记下的分区起始和结束地址信息,依次建立hda5-8。最后用p命令查看分区表结构如下:

?

?

Disk /dev/hda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/hda2 1276 6374 40957717+ 7 HPFS/NTFS
/dev/hda3 6375 7139 6144862+ 83 Linux
/dev/hda4 7140 9729 20804175 f Win95 Ext'd (LBA)
/dev/hda5 7140 7204 522081 82 Linux swap
/dev/hda6 7205 7690 3903763+ 83 Linux
/dev/hda7 7691 8177 3911796 83 Linux
/dev/hda8 8178 8663 3903763+ 83 Linux

?

可以看出修改后的分区表除了hda4之外,其他的所有分区的结构都没有改变。这样位于hda9之后的8664-9729就可以拿出来划分新的分区了。

?

然后就是用 w 命令保存。为了保险起见,使用 fsck.ext3 命令检查了一下 hda6-8,保证没有出现错误。

?

?