当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 调整Linux磁盘分区的大小的方法

Unix/Linux
如何在linux下面运行招商银行专业版
Windows和Linux系统共存 完美解决方案
Linux 和对称多处理应用程序介绍
Red Hat Linux 附加引导和内核引导选项
Linux 2.6.11内核文件IO系统调用详解
走向高手之路 Linux系统内核技术解读
菜鸟乐园 Linux系统内核代码特色一览
Linux内核和传统Unix内核的比较
内核中的物理内存分配函数kernel api
使用 Linux 系统调用的内核命令
详细解析 Linux内核的主要配置选项
内核操作 Linux2.6内核驱动移植参考
Linux内存中Swap和Buffer Cache机制
高手进阶 更换Fedora Core 6的内核
高手风范 Linux操作系统内核编码风格
Linux操作系统内核中工作队列的操作
揭开Linux系统内核调试器的神秘面纱
系统“大挪移” Linux服务器迁移大法
高手进阶 重新编译Linux操作系统的内核
Ubuntu系统关于驱动模块命令的一些使用

Unix/Linux 中的 调整Linux磁盘分区的大小的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 139 ::
收藏到网摘: n/a

               

在使用linux的过程中, 有时会出现因为安装系统时分区不当导致有的分区空间不足,而有的分区空间过剩的情况.比如: 我在安装系统时给/usr/local分配器了5G的空间,但使用一段过程后发现, /usr/local最多只用到了1G.这样可以将/usr/local大小调整为1G. 空出4G留作他用.本文归纳了在不破快文件系统数据的前提下对文件系统大小进行调整的方法.这里采用的是"拆东墙, 补西墙"的方法. 当然, 如果你的磁盘中有未分区的空闲空间, 你就不用减小某个分区的空间了.

 

准备工作

 

(一) 备份

 

首先组好备份要更改的分区中的文件. 对磁盘的操作也许会导致数据的丢失. 开始工作之前最好将重要的数据保存到别的分区.

 

(二) 获取相关信息.

 

1, 运行 $ df , 查看文件系统信息. 记下你想要调整的分区对应的挂载点和设备文件.

 

这一步是为了查看/usr/local对应/dev/中的哪个设备文件. 本文以/dev/hda7为例.

 

2, 运行 # sudo fdisk /dev/sda . 进入fdisk , 按下p, 查看磁盘分区信息. 记下/dev/sda8的起始柱面号, 终止柱面号. 设他们分别为start, end. 并记下一个"Unit"包含多少字节.

 

注意, 文件系统大小和磁盘分区大小是不能等同的: 起码他们的计量单位不同. 在文件系统中, 一般用KB, MB, GB为单位. 但在fdisk中, 是以磁盘的"unit"值(即一个柱面中包含的字节数)来计算的. 我们运行 # fdisk /dev/sda后, fdisk显示如下信息:

 

Disk /dev/sda: 163.9 GB, 163928604672 bytes

255 heads, 63 sectors/track, 19929 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

(三)计算终止柱面号

 

e.g: 原先/usr/local的大小为5000 MB, 起始柱面号为2550, 终止柱面号为3157. 那么我现在要将它的大小改为1000MB, 应该这样计算终止柱面号( [3.2] = 4 ):

 

终止柱面号 = 2550 + [(1000 * 1024 * 1024 ) / 8225280] = 2678

 

使用fdisk删除原来的分区(以前分区的数据不会丢失!). 然后新建一个分区, 新分区于旧分区唯一的区别就在于分区大小不一样, 这表现在他们终止柱面号不同.

 

增加分区大小: 终止柱面号设置为空闲空间的最后一个柱面号.减小分区大小: 终止柱面号由计算得出.

 

开始调整

在开始调整之前, 最好拿一张纸记下要调整的分区的下列信息:

 

调整前大小, 调整后大小. 它挂载在哪个目录, 对应于/dev/中的哪个设备. 起始, 终止柱面.

 

e.g: 调整前: 5G, 调整后: 1G, 挂载点: /usr/local, 对应于/dev/hda7. 起始,终止柱面分别为2550, 3157.

 

1, 卸载分区

最好在runlevel = 1的情况下卸载.

# umount /dev/

 

2, 检查文件系统的一致性

# fsck -n /dev/

 

3, 如够是ext3系统, 还要去除日志

# tune2fs -O ^has_journal /dev/

 

注意: 取出日志后的ext3系统是无法挂载的, 使用

# tune2fs -j /dev/重建日志.

 

4, 调整文件系统大小

# resize_reiserfs -s 1000M /dev/hda7

 

调整完文件系统的大小以后,再使用以下命令以文件系统进行全面的检查:

# reiserfsck --check --fix-fixable /dev/hda7

 

5, 进入fdisk, 调整分区大小.

# fdisk /dev/hda

 

由于内核仍然使用旧的分区表, 重启之后再进行后面的步骤.

 

 

# umount /home/

# resize_reiserfs /dev/hda6

 

这样, 就将/usr/local的大小调整为1G, 留下了4G的空闲磁盘空间。