linux已经分区,想增大一个分区的容量怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux已经分区,想增大一个分区的容量怎么办相关的知识,希望对你有一定的参考价值。

我的分区如下:

[root@srv1459 wwwroot]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_srv1459-lv_root
50G 2.8G 44G 6% /
tmpfs 5.9G 1.7G 4.2G 29% /dev/shm
/dev/sda1 485M 58M 402M 13% /boot
/dev/mapper/vg_srv1459-lv_home
55G 54G 0 100% /home

请问怎么在不重装系统的情况下,增大/home目录的容量?谢谢

你这个系统是基于lvm的配置的,可以不重装调整分区大小。但是有个预置条件要先弄清楚:
你要增大的home分区的空间从哪里来?增加了新的硬盘还是从别的分区里抠出来。

1)如果是前者的话,很好操作
a 把新的硬盘分区加入到lvm的卷组(vg_srv1459)中
b 然后用lvresize命令扩展你的分区也即逻辑卷/dev/mapper/vg_srv1459-lv_home 即可,然后再扩展你的文件系统
(注意:扩展分区和扩展文件系统是要分开做的),针对不同格式文件系统用的命令不同如ext2的resize2fs。

2)如果是后者就复杂些,因为没有额外的分区加入卷组,你要从root分区抠空间出来。
a 类似1b(逆序操作),先先减少root分区的文件系统大小,然后再减少分区大小,抠出来的空间会回到卷组里。
b 操作同1b
参考技术A 你从那个根里面分点出来啊要+到/HOME 那个文件夹里面吗
你那个不是有LVM啊 你就 vgdisplay 看看那个/home的VG
因该是 vg-srv1459-吧 你的/和/home是同一个VG

很好弄啊
先吧/ 里面50G分10G出来
lvresize -L -10G /dev/mapper/vg_srv1459-lv_root
然后把这10G+到/home里面
lvresize -L +10G /dev/mapper/vg_srv1459-lv_home
然后投入使用不音响你现在的文件
resize2fs /dev/mapper/vg_srv1459-lv_home
就OK了 你再DF一下就看到了啊 我不喜欢讲一大套理论和复制别人的追问

请问确实不会影响到系统的运行吗和正常文件系统吗?

追答

lvm 本来就是在线+ - 容量的机制所以不会影响

参考技术B 分区工具,扩容 参考技术C 重新分区就行了,百度肯定能找到办法,有专门的命令。 参考技术D lvextend....

linux系统如何在原来的分区上扩大分区??

在截图中,硬盘总容量是40G,通过df -h 发现hda1分区容量只有3.9G,使用率已经达到91%,想给这个分区扩展一下容量可以吗?应该怎么做呢?

  这里以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
参考技术A LVM是逻辑盘卷管理(Logical Volume Manager),它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。看你这个截图应该是没有划分lvm分区的。如果想实现这种方法的,需要从新安装下linux,再安装的时候建立分区会自带一个分区(lvm,这个和你的内核版本有关,centos5.0以上都自带)。这种划分区域也还好,只是刚开始接触的时候不了解,可能需要理解下lv,pv,vl之间的关系。搜搜资料,推荐在虚拟机上尝试。你这样的话是没法自动扩展的。本回答被提问者采纳 参考技术B 你好,
如果说你使用了LVM的话,那么扩大分区就是小事一桩,如果没有。那是基本没可能。重装系统,重新设置分区。
参考技术C 不是lvm的话,没法进行自动扩展的,你只能挂载空闲的 参考技术D 参考我发给你的方法试试

以上是关于linux已经分区,想增大一个分区的容量怎么办的主要内容,如果未能解决你的问题,请参考以下文章

为虚拟机下的linux扩容了硬盘的容量,怎么分区啊?

为虚拟机下的linux扩容了硬盘的容量,怎么分区啊?

给windows已分区添加容量 硬盘 技术 硬件 台式电脑

linux系统如何在原来的分区上扩大分区??

ubuntu tmp容量不够用怎么扩大

linux扩容磁盘分区容量