linux lvm 磁盘管理

it2022-05-05  152

附加:lvm这是一个新系统,依然debian 6.0.6,走起

我在装系统的时候手动进行了分区(之前都是自动分区并配置lvm,感觉不怎么合适),三个主分区:/boot,/,/swap

预留了30G的空间,其实是我以一个20G的debian系统原版为backingfile(qemu)创建的一个50G的磁盘,所以会有30G空余

通过fdisk创建一个扩展分区,在创建一个逻辑分区,然后通过t命令将其id设置为8e(标准lvm分区)

必须要说明一下的是本文只是介绍一下lvm的基本操作,也是自己的备忘。并不涉及与raid的配合,因为本人木有环境,大神莫怪,权当学习。并且本文并不涉及fdisk等命令,若您想对此进行了解,小弟还有一篇文章http://www.cnblogs.com/fangfangmian/archive/2013/01/10/2855373.html感兴趣的可以去瞧瞧看看,呵呵p命令查看如下:

Command (m for help): p Disk /dev/sda: 53.7 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005982d Device Boot Start End Blocks Id System /dev/sda1 * 1 31 242688 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 31 2341 18554880 83 Linux /dev/sda3 2341 2611 2171904 82 Linux swap / Solaris /dev/sda4 2611 6527 31457631+ 5 Extended /dev/sda5 2611 6527 31457600 8e Linux LVM

总感觉把extend分区留给后面新创建磁盘时用来折腾很正确,不然总感觉有点奇葩

好,w保存退出提示can't什么东西,大概意思就是你这样修改后,磁盘中的管理分区的一个地方(暂时先这样理解,其实是super block/boot之类的)不能更新,需要重起或者运行partprobe命令,这个命令在另一个强大的磁盘管理工具parted中。好,安装个parted先,安装完毕后运行partprobe,没有任何提示,嘛,我认为他正常工作了。

反正fdisk -l可以看到已经有了刚才的分区。

下面开始lvm操作

我们要处理的是那30G的磁盘空间,首先,我们将它初始化以下,先是物理卷,然后是逻辑卷,然后就可以对其操作了

初始化物理卷:

$ sudo pvcreate /dev/sda5 Physical volume "/dev/sda5" successfully created

貌似工作很正常

创建卷组:(嘛,卷组是为了创建逻辑卷准备的,感觉跟扩展分区的地位比较像)

$ sudo vgcreate jcklvm /dev/sda5 Volume group "jcklvm" successfully created

起了个名字,叫jcklvm,貌似工作的也很正常,很顺利么...

然后可以通过vgdisplay查看一下,可以看到比较详细的信息,关于卷组的

然后就可以在卷组上创建逻辑卷了:

$ sudo lvcreate -L 20G -n jckhome jcklvm Logical volume "jckhome" created

我创建了一个大小为20G,名字叫jckhome,并且在jcklvm这个卷组上的逻辑卷,成功与否你懂得

接着我们应该在逻辑卷上创建文件系统:mkfs啦

然后将它挂载到某个目录/mnt/jckhome上,df查看一下

$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 3.3G 14G 20% / tmpfs 2.0G 0 2.0G 0% /lib/init/rw udev 2.0G 128K 2.0G 1% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm /dev/sda1 230M 22M 197M 10% /boot /dev/mapper/jcklvm-jckhome 20G 172M 19G 1% /mnt/jckhome

似乎已经成功了撒,至少现在已经可以使用这块空间了

然后你可以做得就是将你想要的东西复制到这里,我是准备将我的家目录放到这个地方的,不然20G空间实在不够用,复制过来,别忘了-r

$ sudo cp /home/jck/* /mnt/jckhome/ -r -a

再将原来的家目录删掉,换个名字吧先,免得悲剧了

$ sudo mv jck/ jck.old

重新挂载一下

$ sudo umount /mnt/jckhome/ $ sudo mkdir /home/jck $ sudo mount -t ext4 /dev/jcklvm/jckhome /home/jck

这时就应该能够正常使用了,如果你的权限没问题的话,但是还没完,因为重启以后这些就都没有了...

还需要配置一下。这步就像前一篇文章一样操作就可以了,修改/etc/fstab文件

/dev/jcklvm/jckhome /home/jck ext4 defaults 1 1

修改好后,重启,查看结果

我的结果是系统可以正常使用,使用df 查看结果与之前的结果一样。这样基本就结束了,但可能有人会有疑问,因为这些工作fdisk完全能做的,比如搞个分区挂载到/home,为啥要用lvm

lvm的强大并不在这,而在于你可以动态分配磁盘空间的大小,刚才我只分配了20G的空间吧,但实际上空余的空间有30G哦,好,现在我的家目录空间不够了,怎么办?

两条命令解决全家老小的吃穿问题:

$ sudo lvextend -L+10G /dev/jcklvm/jckhome [sudo] password for jck: Extending logical volume jckhome to 30.00 GiB Logical volume jckhome successfully resized $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 3.3G 14G 20% / tmpfs 2.0G 0 2.0G 0% /lib/init/rw udev 2.0G 128K 2.0G 1% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm /dev/sda1 230M 22M 197M 10% /boot /dev/mapper/jcklvm-jckhome 20G 175M 19G 1% /home/jck $ sudo resize2fs /dev/jcklvm/jckhome resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/jcklvm/jckhome is mounted on /home; on-line resizing required old desc_blocks = 2, new_desc_blocks = 2 Performing an on-line resize of /dev/jcklvm/jckhome to 7864320 (4k) blocks. The filesystem on /dev/jcklvm/jckhome is now 7864320 blocks long. $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 3.3G 14G 20% / tmpfs 2.0G 0 2.0G 0% /lib/init/rw udev 2.0G 128K 2.0G 1% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm /dev/sda1 230M 22M 197M 10% /boot /dev/mapper/jcklvm-jckhome 30G 175M 28G 1% /home

是不是很轻松撒,如果是传统分区手段可能就要悲剧一段时间了,呵呵

再一个圣经一样的东西:http://www.ibm.com/developerworks/cn/linux/filesystem/lvm/lvm-1/index.htmlhttp://www.ibm.com/developerworks/cn/linux/filesystem/lvm/lvm-2/

谢谢

转载于:https://www.cnblogs.com/sarshes/archive/2013/01/10/2855374.html


最新回复(0)