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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


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