How do I make sure I'm utilizing all of my hard drive?
Solution 1:
If reinstall is an option for you, probably the easiest way would be to reinstall the system without using LVM.
If you can't reinstall, the the following commands may help you investigate what's going on.
LVM operates on three "layers" of objects. The bottom layer are the physical volumes (probably you have only one, as you have only one usable partition). Physical volumes are - in short - partitions or whole disks that will be used for LVM. The command sudo pvs
will list the physical volumes defined on your system. Here is a sample output:
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_xymon lvm2 a-- 135.97g 0
/dev/sdb2 vg_xymon lvm2 a-- 136.17g 0
We can see there are two physical volumes (partitions), on two different disks - /dev/sda1
and /dev/sdb2
. Their sizes are shown and the "VG" column indicates that they are both assigned to a volume group called vg_xymon
.
Volume groups are an intermediate layer between physical and logical volumes, which allow eg. for a logical volume to span multiple physical volumes. There is usually only one volume group in the system. You can display information about volume groups with the command sudo vgs
. Again, sample of the output:
VG #PV #LV #SN Attr VSize VFree
vg_xymon 2 3 0 wz--n- 272.14g 0
We can see that the volume group spans two physical volumes (shown previously), so the volume group size is equal to sum of their sizes (In your case, both the physical volume size and the volume group size should be equal to the size of your partition - if not, then something is really, really wrong). We can also see that there are 3 logical volumes defined within this volume group.
Logical volumes are the top layer - these are places where your filesystems are actually located. Your /dev/mapper/ubuntu--vg-ubuntu--lv
device is a logical volume. The last component of the path is a combination of the volume grup name, dash, and a logical volume name. So your logical volume is called ubuntu--lv
and belongs to volume group ubuntu--vg
.
And one more command, sudo lvs
, displays information about logical volumes:
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv_home vg_xymon -wi-ao--- 218.28g
lv_root vg_xymon -wi-ao--- 50.00g
lv_swap vg_xymon -wi-ao--- 3.86g
(so the first one in this example will be visible as device /dev/mapper/vg_xymon-lv_home
). Probably your problem lies here, ie. the logical volume is smaller than your volume group and the rest of the space in the volume group is unallocated.
In that case, you can extend it to fill the entire volume group with the command:
sudo lvextend -r /dev/mapper/ubuntu--vg-ubuntu--lv
However, because your root filesystem is mounted on that logical volume, extending it from the installed system may be impossible and you may need to boot from the install media to do it. In that case maybe it will be better to create an additional logical volume that uses the rest of the space on the volume group and mount it onto your media directory, while keeping your root filesystem unchanged:
sudo lvcreate -l 100%FREE -n media ubuntu--vg
This will create a new logical volume media
in existing volume group ubuntu--vg
(so the device path will be /dev/mapper/ubuntu--vg-media
), using 100% free space in the volume group.
Then you have to format the newly created logical volume:
sudo mkfs /dev/mapper/ubuntu--vg-media
and finally mount it onto your /media
directory (or whatever it is called, you must create the empty directory first):
sudo mount /dev/mapper/ubuntu--vg-media /media
If you want this mount to be persistent ie. that you don't need to repeat the above sudo mount
command everytime you boot your system, you need to edit your /etc/fstab
file (sudo gedit /etc/fstab
) and add the following line to it:
/dev/mapper/ubuntu--vg-media /home ext4 defaults 0 2
(assuming your filesystem is ext4
, use the same value that is used in the line specifying your /
filesystem).