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

Unix/Linux
linux 操作技巧收集_
linux下如何读取使用iso 镜像文件的方法
Linux平台下文件的压缩与解压参数说明
Linux下常用压缩格式的压缩与解压方法
Linux JDK,TOMCAT安装及环境设置
Linux sleep命令使用参数
Linux cat命令参数
nfs 配置的简单例子
linux kill 关闭进程命令
linux ultrasphinx Anonymous modules have no name to be referenced by
Linux oracle 9i图文安装方法一
Linux oracle 9i图文安装教程二
Linux oracle 9i图文安装教程三
Linux oracle 9i图文安装教程四
Linux oracle 9i图文安装教程五
Linux oracle 9i图文安装教程六 完结篇
linux AS3 oracle9i 安装指南
Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
RedHat 9.0下Apache+PHP+MySQL服务器安装配置
Linux 下用 Python 连接 MSSql Server 2008

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 108 ::
收藏到网摘: 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的空闲磁盘空间。