红联Linux门户
Linux帮助

Linux下面增加磁盘空间

发布时间:2007-07-26 00:49:32来源:红联作者:mendation
  我的linux虚拟机分的2G空间不够用了,在网上查找相关资料,工具倒是挺多的,现学现用,一知半解,摸索着搞了好久,最后终于加载上了。

  1.先看看情况
  [root@localhost tmp]# fdisk -l
  Disk /dev/sda: 3221 MB, 3221225472 bytes
  255 heads, 63 sectors/track, 391 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot Start End Blocks Id System
  /dev/sda1 * 1 261 2096451 83 Linux
  /dev/sda2 262 391 1044225 82 Linux swap

  看到我原先给linux分了两个区,一个是linux(2G),一个是linux swap(竟然有1G)这个swap的空间那么大呢,可是好像用不上,那就只能从它开刀了。得修改分区表。

  2.分区工具parted
  [root@localhost tmp]# parted

  然后就进入parted的命令环境了(parted) print

  --打印当前分区信息
  Disk geometry for /dev/sda: 0.000-3072.000 megabytes
  Disk label type: msdos
  Minor Start End Type Filesystem Flags
  1 0.031 2047.346 primary ext3 boot
  2 2047.346 3067.097 primary linux-swap

  根据帮助的指示,觉得resize命令可能就是我要找的,先把分区2变小

  (parted) resize 2 3000 3067.097

  执行完了,再看看结果如何
  (parted) print
  Disk geometry for /dev/sda: 0.000-3072.000 megabytes
  Disk label type: msdos
  Minor Start End Type Filesystem Flags
  1 0.031 2047.346 primary ext3 boot
  2 2996.499 3067.097 primary linux-swap

  果然改变了,那么把分区1变大吧

  (parted) resize 1 0.031 2996.499
  Warning: Filesystem was not cleanly unmounted! You should e2fsck.
  Ignore/Cancel? c

  好像这么弄不行,那就算了,另想个办法,把空出的空间单独作为一个分区吧。

  (parted) mkpartfs primary ext2 2047.346 2996.499
  (parted) print
  Disk geometry for /dev/sda: 0.000-3072.000 megabytes
  Disk label type: msdos
  Minor Start End Type Filesystem Flags
  1 0.031 2047.346 primary ext3 boot
  3 2047.346 2996.499 primary ext2
  2 2996.499 3067.097 primary linux-swap

  这个方法奏效了

  退出再看看
  [root@localhost tmp]# fdisk -l
  Disk /dev/sda: 3221 MB, 3221225472 bytes
  255 heads, 63 sectors/track, 391 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot Start End Blocks Id System
  /dev/sda1 * 1 261 2096451 83 Linux
  /dev/sda2 383 391 72292+ 82 Linux swap
  /dev/sda3 262 382 971932+ 83 Linux

  3、对分区进行格式化,以及加载;
  先提示一下;用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令来格式化分区,比如我想格式化 sda3为ext3文件系统,则输入;

  [root@localhost tmp]# mkfs.ext3 /dev/sda3

  如果我想加载 sda3到目前系统来存取文件,应该有mount 命令,但首先您得建一个挂载目录;比如 /mnt/sda3 ;

  [root@localhost tmp]# mkdir /mnt/sda3
  [root@localhost tmp]# mount /dev/sda3 /mnt/sda3

  方法难度较大,仅供学习参考。
文章评论

共有 2 条评论

  1. zhuhehz 于 2007-07-26 18:43:30发表:

    LVM(Logicl Volume Manager),逻辑卷管理器,通过使用逻辑卷管理器对硬盘存储设备进行管理,可以实现硬盘空间的动态划分和调整。

    一、 基本概念

    1、 物理卷-----PV(Physical Volume)
    物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

    2、 卷组--------VG(Volumne Group)
    卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

    3、 逻辑卷-----LV(Logical Volume)
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

    4、 物理区域--PE(Physical Extent)
    物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

    5、 逻辑区域--LE(Logical Extent)
    逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

    6、 卷组描述区域-----(Volume Group Descriptor Area)
    卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

    二、 LVM的一般操作过程

    1、 在磁盘分区上建立物理卷
    #fdisk /dev/hdb
    #pvdisplay /dev/hdb1 //在已经建立好的分区或硬盘上建立物理卷
    #pvcreate /dev/hdb1

    2、 使用物理卷建立卷组
    #vgcreate myVG /dev/hdb1 //建立卷组,日后可以根据需要添加新的物理卷到已有卷组中


    3、 在卷组中建立逻辑卷
    #lvcreate -L 10M -n myLV1 myVG //从已有卷组建立逻辑卷,通常只分配部分空间给该逻//辑卷

    4、 在逻辑卷上建立文件系统
    5、 将文件系统挂载到Linux系统的目录树中
    6、 在卷组中添加新的物理卷
    当卷组中没有足够的空间分配给逻辑卷时,可以使用vgextend命令添加新的物理卷到该卷组中,来扩充卷组容量。在一引起特殊的情况下也可以把卷组中现有的物理卷移出卷组。
    #vgextend myVG /dev/hdb2

    7、 扩充逻辑卷的容量
    当逻辑卷的空间不能满足需要时,可以使用lvextend命令把卷组中的空闲空间分配到该逻辑卷以扩展逻辑卷的容量。在逻辑卷的空闲空间过大时,也可以使用lvreduce命令缩减逻辑卷的容量。这样就实现了逻辑卷容量的动态调整。
    #lvextend -L +4M /dev/myVG/myLV

    8、 调整逻辑卷中文件系统的大小


    三、 常用命令

    1、 物理卷命令
    一般维护命令:
    #pvscan //在系统的所有磁盘中搜索已存在的物理卷
    #pvdisplay 物理卷全路径名称 //用于显示指定物理卷的属性。
    #pvdata 物理卷全路径名称 //用于显示物理卷的卷组描述区域信息,用于调试目的。
    #pvchange -x|--allocation {y|n} 物理卷全路径名 //用于改变物理卷的分配许可设置

    物理卷的创建与删除命令
    #pvcreate 设备全路径名 //用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对
    //该物理卷进行逻辑卷管理。
    #pvmove 源物理卷全路径我[目的物理卷全路径名] //用于把某物理卷中的数据转
    //移到同卷组中其他的特刊卷中。

    2、 卷组命令
    一般维护命令
    #vgscan //检测系统中所有磁盘
    #vgck [卷组名] //用于检查卷组中卷组描述区域信息的一致性。
    #vgdisplay [卷组名] //显示卷组的属性信息
    #vgrename 原卷组名 新卷组名
    #vgchange -a y|n [卷组名] //改变卷组的相应属性。是否可分配
    #vgchange -l 最大逻辑卷数 //卷组可容纳最大逻辑卷数
    #vgchange -x y|n [卷组名] //卷是否有效
    #vgmknodes [卷组名|卷组路径] //用于建立(重新建立)已有卷组目录和其中的设备文
    //件

    卷组配置的备份与恢复命令
    #vgcfgbackup [卷组名] //把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
    #vgcfgrestore -n 卷组名 物理卷全路命名 //从备份文件中必得指定物理卷的信息

    卷组的建立与删除命令
    #vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
    #vgmove 卷组名

    卷组的扩充与缩小命令
    #vgextend 卷组名 物理卷全路径名[物理卷全路径名]
    #vgreduce 卷组名 物理卷全路径名[物理卷全路径名]

    卷组的合并与拆分
    #vgmerge 目的卷组名 源卷组名 //合并两个已经存在的卷组,要求两个卷组的物理
    //区域大小相等且源卷组是非活动的。
    #vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]

    卷组的输入与输出命令
    #vgexport 卷组名
    #vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]


    3、 逻辑卷命令
    一般命令
    #lvscan
    #lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
    #lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
    #lvrename 卷组名 旧逻辑卷名 新逻辑卷名
    #lvchange
    #e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名

    逻辑卷的创建与删除命令
    #lvcreate
    #lvremove

    逻辑卷的扩充与缩小命令
    #lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
    #lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名

    4、 逻辑卷管理命令
    #lvmdiskscan //检测所有的SCSI、IDE等存储设备
    #lvmchange -R|--reset //复位逻辑卷管理器
    #lvmsadc [日志文件全路径名] //收信逻辑卷管理器读写统计信息,保存到日志文
    //件中。
    #lvmsar 日志文件全路径名 //从lvmsadc命令生成的日志文件中读取并报告逻辑卷
    //管理器的读写统计信息。

  2. karon_fedora 于 2007-07-26 18:37:57发表:

    lvm不都解决了么