How to create and remove a linux logical volume and filesystem


Gather information

In this example we would like to add a 10G filesystem to the system volume group, so we need to determine if the volume group (system) has enough free space.

Check the status of the mounted filesystems

df -h

Filesystem            		Size  Used Avail Use% Mounted on
/dev/mapper/system-root		10G  3.2G  6.9G  32% /                       	
udev                  		474M  184K  474M   1% /dev
/dev/sda1             		102M   40M   63M  39% /boot
/dev/mapper/system-home_lv	2.0G  872M  1.2G  43% /home

Use the vgdisplay command to list the volume groups (VGs) and check the available space in the chosen VG.


  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  16
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               233.66 GB
  PE Size               4.00 MB
  Total PE              59816
  Alloc PE / Size       5428 / 21.20 GB
  Free  PE / Size       54388 / 212.45 GB
  VG UUID               efvr7g-grgf5g-V0SP-45gdf-Xber-VKzj-fg5hf

The "Free PE / Size 54388 / 212.45 GB" line shows that we have 212.45 GB free in this volume group.


Create the logical volume

To create the logical volume use the lvcreate command as follows.

lvcreate -L 10G -n optlv system

Logical volume "optlv" created

This creates a 10GB logical volume named optlv in the volume group called system.


Create a reiserfs filesystem

If you require a reiserfs filesystem then follow this step else skip to the next step to create a ext3 filesystem.
(Reiser filesystems are often used on Suse linux).

mkfs.reiserfs /dev/system/optlv

mkfs.reiserfs 3.6.19 (2003

A pair of credits:
BigStorage  (  contributes to our general fund  every month,
and has done so for quite a long time.

The  Defense  Advanced  Research  Projects Agency (DARPA, is the
primary sponsor of Reiser4.  DARPA  does  not  endorse  this project; it merely
sponsors it.

Guessing about desired format.. Kernel is running.
Format 3.6 with standard journal
Count of blocks on the device: 2621440
Number of blocks consumed by mkreiserfs formatting process: 8291
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 571e5090-af78-4732-a058-c96596d829bc
        ALL DATA WILL BE LOST ON '/dev/system/optlv'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
ReiserFS is successfully created on /dev/system/optlv.


Create an ext3 filesystem

Use the mkfs.ext3 command to make an ext3 filesystem.

mkfs.ext3 /dev/system/optlv

mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
80 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


Mounting the filesystem

Create the directory to mount the new filesystem.

mkdir /opt

Then mount the directory onto the new mount point.

mount /dev/system/optlv /opt

Check the status of the new filesystem.

df -h

Filesystem            		Size  Used Avail Use% Mounted on
/dev/mapper/system-root		10G  3.2G  6.9G  32% /                       		
udev                  		474M  188K  474M   1% /dev
/dev/sda1             		102M   40M   63M  39% /boot
/dev/mapper/system-home_lv	2.0G  872M  1.2G  43% /home                      		
/dev/mapper/system-optlv	10G   33M   10G   1% /opt

Edit /etc/fstab to ensure that the new filesystem mounted on /opt is mounted at system boot.

This example is for a reiserfs. Change reiserfs in the table below to ext3 for an ext3 filesystem.

/dev/system/root     /                    reiserfs   acl,user_xattr        1 1
/dev/sda1            /boot                reiserfs   acl,user_xattr        1 2
/dev/system/swap     swap                 swap       defaults              0 0
/dev/system/home_lv /home                 reiserfs   acl,user_xattr        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/system/optlv    /opt	          reiserfs   acl,user_xattr        1 2


Removing a filesystem and logical volume

Unmount the filesystem.

umount /opt

Then remove the logical volume. Removing the logical volume will also remove the filesystem

lvremove /dev/system/optlv

Do you really want to remove active logical volume "optlv"? [y/n]: y
  Logical volume "optlv" successfully removed

Then edit and remove the entry from /etc/fstab.

Then remove the mount directory.

rmdir /opt