linux扩大分区
1. 怎么样扩大linux 分区
这里以Red hat AS4 为例。当磁盘分区发现不够用时,能想道的第一个做法就是增加分区大小。但是一般Linux如果没有采用逻辑卷管理,则动态增加分区大小很困难,一个能想道的办法就是,备份分区文件系统数据,删除分区,然后再重新创建分区,恢复备份的文件系统,这个做法比较玄,可能删除分区后导致系统无法启动。
第二个做法就是,创建一个新的逻辑分区(当然必须有未使用的磁盘空间能分配),将文件系统从老分区拷贝到新分区,然后修改fstab,使用新分区/文件系统替换老的分区/文件系统
第三种做法是,创建一个新的逻辑分区,将新的逻辑分区格式化ext3(或其他类型)的文件系统,mount到磁盘空间不够的文件系统,就跟原来的分区/文件系统一样的使用。
这里采用的是第三种方式:
sdb为第二个SCSI硬盘。
[root@hdp0 hadoop]# /sbin/fdisk /dev/sdb
The number of cylinders for this disk is set to 8942.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/sdb: 73.5 GB, 73557090304 bytes
255 heads, 63 sectors/track, 8942 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 130 1044193+ 83 Linux
/dev/sdb2 131 391 2096482+ 82 Linux swap
/dev/sdb3 392 521 1044225 83 Linux
/dev/sdb4 522 8942 67641682+ 5 Extended
/dev/sdb5 522 586 522081 83 Linux
/dev/sdb6 587 651 522081 83 Linux
/dev/sdb7 652 1173 4192933+ 83 Linux
可以看出sdb1,2,3为主分区,sdb4为扩展分区。后面的sdb5,6,7则为逻辑分区。柱面编号(Start,End)是连续的,sdb7只用道了1173,而从扩展分区看最大到8942,也就是说,还有7769个柱面是空闲的,一个柱面大小为8225280,约为8M大小。还剩7769*8225280bytes,约62G未使用。
新增加一个逻辑分区(注:若涉及到主分区和扩展分区,实际情况可能比这个复杂,这里4个主分区(包括扩展分区)都分过了,所以只能分逻辑分区)
Command (m for help): n
First cylinder (1174-8942, default 1174):
Using default value 1174
增加大小为10G
Last cylinder or +size or +sizeM or +sizeK (1174-8942, default 8942): +10240M
增加后看一下,多了一个逻辑分区/dev/sdb8
Command (m for help): p
Disk /dev/sdb: 73.5 GB, 73557090304 bytes
255 heads, 63 sectors/track, 8942 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 130 1044193+ 83 Linux
/dev/sdb2 131 391 2096482+ 82 Linux swap
/dev/sdb3 392 521 1044225 83 Linux
/dev/sdb4 522 8942 67641682+ 5 Extended
/dev/sdb5 522 586 522081 83 Linux
/dev/sdb6 587 651 522081 83 Linux
/dev/sdb7 652 1173 4192933+ 83 Linux
/dev/sdb8 1174 2419 10008463+ 83 Linux
可以看到,增加了一个sdb8的分区,柱面号从1174到2419.
写入分区表,执行分区操作
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
分区完后,是看不到文件系统的
[root@hdp0 hadoop]# df -m
Filesystem 1M-块 已用 可用 已用% 挂载点
/dev/sdb1 1004 582 372 62% /
none 1014 0 1014 0% /dev/shm
/dev/sdb3 1004 807 147 85% /home
/dev/sdb5 494 11 458 3% /opt
/dev/sdb7 4031 3272 554 86% /usr
/dev/sdb6 494 87 382 19% /var
重启机器
reboot
格式化文件系统
[root@hdp0 hadoop]#/sbin/mkfs.ext3 /dev/sdb8
mount文件系统,/home/develop 为/home下一目录
[root@hdp0 hadoop]#mount /dev/sdb8 /home/develop
查看文件系统,可以看到新建立的分区/文件系统已经挂载上,能够使用了。
[root@hdp0 hadoop]# df -m
Filesystem 1M-块 已用 可用 已用% 挂载点
/dev/sdb1 1004 582 372 62% /
none 1014 0 1014 0% /dev/shm
/dev/sdb3 1004 807 147 85% /home
/dev/sdb5 494 11 458 3% /opt
/dev/sdb7 4031 3272 554 86% /usr
/dev/sdb6 494 87 382 19% /var
/dev/sdb8 9621 54 9079 1% /home/develop
2. linux分区满了,如何进行扩容
有两种方法实现对linux分区的扩容。第一种方式是软链接(符号链接)。举个例子来说明下软链接,假如你的/b目录满了,不能存储文件。这时你把/a目录链接到/b目录,你在访问/b目录时实际是访问/a目录里面的空间。
假设新增的磁盘为xvdb1,首先对磁盘分区,具体方法参考网上教程分区完成后制作文件系统(顺序不可乱)。完成后先将原先目录已满的/b从原挂载点卸载,例如:umount
/dev/xvda1
/b。卸载掉挂载在/b目录下的分区xvda1。重新将新增的分区挂载到/b:mount
/dev/xvdb1
/b。将/etc/fstab内加入新挂载的分区和挂载点,这一点非常重要,否则重启后分区会丢失。至此,原来已满的/b被重新挂载到了新的硬盘分区,然后将原来备份的文件拷贝回来就可以了。
3. linux,如何扩展某个文件夹所在分区的大小
如果你使用的是手动分区的方式,可以先用分区工具(fdisk或者parted都可以)扩展文件夹所在的分区,如果是使用逻辑卷的方式,可以直接运行lvextend命令扩展逻辑卷
上一步扩展完成之后再扩展文件系统本身,如果是ext3文件系统可以使用ext2online命令扩展,如果是xfs文件系统,可以使用xfs_growfs命令扩展文件系统,如果是其它的可以参考网上其它扩展文件系统的办法,这两个命令都是可以在umount文件系统的情况下“在线”扩展文件系统的
4. Linux 已有四个主分区,怎么新增扩展分区
linux下一块硬盘最多有四个主分区,所以需要删除一个分区,才能新增扩展分区。
fdisk
命令:
如fdisk
/dev/sda
删除分区:command(m
for
help):
d
删除一个分区,删除请备份数据
新增分区:command(m
for
help):
n
p---检查是否生效
w---保存
q---离开
5. linux新增了磁盘空间,怎么增大原有的分区
楼下提供的是一种变相的方案, 将新增空间转变为分区挂载到文件系统中使用。
另一种方案是用fdisk 根据磁盘分区起始和终止柱面号,删除已有分区,重新新建分区。
具体方案参考以下网络文章(以下原文基本涵盖了主要技术点,如果未涉及其他具体细节,你可参考其他网络同分类文章):
##################
在使用linux的过程中, 有时会出现因为安装系统时分区不当导致有的分区空间不足,而有的分区空间过剩的情况.
比如: 我在安装系统时给/usr/local分配器了5G的空间,但使用一段过程后发现, /usr/local最多只用到了1G.这样可以将
/usr/local大小调整为1G. 空出4G留作他用.
本文归纳了在不破快文件系统数据的前提下对文件系统大小进行调整的方法.这里采用的是"拆东墙, 补西墙"的方法. 当然, 如果你的
磁盘中有未分区的空闲空间, 你就不用减小某个分区的空间了. 这实际上是一个特例.
减小一个分区的大小:
[ partition ]
[ partition | free space ]
增加一个分区的大小:
[ partition a1 | partition b | free space ]
[ partition a2 | | partition a2 ]
准备工作
(一) 备份
首先组好备份要更改的分区中的文件. 对磁盘的操作也许会导致数据的丢失. 开始工作之前最好将重要的数据保存到别的分区.
(二) 获取相关信息.
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/<partition to resize>
2, 检查文件系统的一致性
# fsck -n /dev/<partition to resize>
3, 如够是ext3系统, 还要去除日志
# tune2fs -O ^has_journal /dev/<partition to resize>
注意: 取出日志后的ext3系统是无法挂载的, 使用
# tune2fs -j /dev/<resized partition>重建日志.
4, 调整文件系统大小
# resize_reiserfs -s 1000M /dev/hda7
调整完文件系统的大小以后,再使用以下命令以文件系统进行全面的检查:
# reiserfsck --check --fix-fixable /dev/hda7
5, 进入fdisk, 调整分区大小.
# fdisk /dev/hda
由于内核仍然使用旧的分区表, 重启之后再进行后面的步骤.
通过以上步骤,我们已经完成了硬盘分区大小调整的操作,接下来回到重新调整文件系统大小的问题上来。 由于硬盘分区是按照柱面来计划的,我们要在 resize_reiserfs步骤上就一步到位调整文件系统大小与硬盘分区大小正好相等是比较困难的事情。所以一般是调硬盘分区比文件系统要大一点点,然后再通过以下命令进行同步(当然如果你不在意硬盘分区里面存在部分空间的话也可以忽略以下步骤):
# umount /home/
# resize_reiserfs /dev/hda6
这样, 就将/usr/local的大小调整为1G, 留下了4G的空闲磁盘空间.
#####################
6. Linux系统如何扩展分区容量
如果其中的数据不要了,可以直接用fdisk将相邻两个分区合并一下。
如果希望使用类似于Windows Partition Magic的图形化工具,建议使用gParted,这个工具也是非常强大的,可以进行Linux分区调整的方法,它比较适合个人计算机中的硬盘分区调整,同时也可避免数据丢失。
gParted有图形界面,很容易上手。网上教程有很多。即使自己摸索,应该也可以搞定的。
7. Linux 已有四个主分区,怎么新增扩展分区
您好,理论上是不可以再新建分区了,所以您可以使用一些分区编辑软件将一个主分区或更多主分区转化为逻辑分区。也可以通过删除一个分区来创造一个新的逻辑分区。同时您要注意,这样的话,linux有可能因为分区的变化而无法启动。为了防止在操作中出现意外情况,您还是使用一些dos,pe或者linux live cd来改动。之后重建grub。分区操作比较危险,数据无价,谨慎操作。如有其他问题,欢迎追问。