Disk Management

Use fdisk to manage partitions and logical volume management.

SATA controller versionc

$ sudo dmesg |grep SATA
$ sudo smartctl -a /dev/sda | grep SATA

lsblk

$ lsblk				# list block devices.
$ lsblk	-d -o name,rota		# "0" Solid State Drives. "1" Hard Disk Drive.
$ lsblk --output NAME,FSTYPE,ROTA,PARTTYPE,TYPE,RAND,TRAN
  • NAME - device name (nicely arranged in a tree)
  • FSTYPE - filesystem type
  • ROTA - is this a “rotational device” (spinning rust, DVD etc.)
  • PARTTYPE - partition type UUID (values one sets in fdisk)
  • TYPE - device type
  • RAND - “adds randomness”
  • TRAN - device transport type

fdisk

$ sudo fdisk -l		# Commands lists the partitions on your system.
$ lsblk
$ sudo fdisk /dev/sda	# Entering command mode.

Type m and press Enter to see a list of the commands you can use.

Use p to print the current partition table to the terminal from within command mode.

Use the n command to create a new partition.

If I want to change its type, I can use the t command and specify the partition’s number.

Use the d command to delete a partition.

Use w to write the changes you’ve made to disk.

Use q if you want to quit without saving changes.

$ sudo mkfs -t ext4 /dev/sda3	# Formatting a partition. 
$ sudo mkswap /dev/sda5		# Format a partition as a swap partition.
$ sudo mount /dev/sda3 /test
$ sudo umount /dev/sda6
$ sudo umonnt /test
$ df -h
$ sudo blkid /dev/sda1
$ sudo vim /etc/fstab
$ sudo systemctl daemon-reload
$ sudo mount -a
$ sudo umount -a

parted

# parted -l
# parted /dev/sdc
(parted) print
(parted) select /dev/sdb
(parted) mklabel msdos
(parted) mkpart
(parted) quit

# mkfs.ext4 /dev/sdb1

Logical Volume Manager(LVM)

$ sudo fdisk -l
$ lsblk

Create physical volume

$ sudo pvcreate /dev/sdb
$ sudo pvcreate /dev/sdc
$ sudo pvdisplay
$ sudo pvs

Remove physical volume

$ sudo pvscan
$ sudo pvremove /dev/sdc
$ sudo pvscan
$ lsblk

Create volume group

$ sudo vgcreate vgpool /dev/sdb
$ sudo vgextend vgpool /dev/sdc
$ sudo vgdisplay
$ sudo vgs

Extend physical volume to volume group

$ sudo vgdisplay
$ sudo vgextend vgpool /dev/sdc
$ sudo vgs

Remove physical volume from volume group

$ sudo vgdisplay
$ sudo pvdisplay
$ sudo vgreduce /dev/sdc
$ sudo vgs

Remove volume group

$ sudo vgremove vgpool
$ sudo vgdisplay

Rename volume group

$ sudo vgs
$ sudo vgrename /dev/vgpool /dev/vgpool-new
$ sudo vgs

Create logical volume

$ sudo lvcreate -n mackay -l 100%free vgpool
$ sudo lvdisplay
$ sudo lvs
$ sudo mkfs.ext4 /dev/vgpool/mackay
$ sudo resize2fs /dev/mapper/vgpool-mackay
$ lsblk
$ sudo blkid /dev/mapper/vgpool-mackay
$ sudo vim /etc/fstab
UUID=af88d797-5f9a-406e-b2d0-27b37bff169f /data ext4 defaults 0 0
$ sudo mount /dev/mapper/vgpool-mackay /data
$ df -h
$ sudo umount /data

Extend logical volume

$ sudo lvextend -L 110G /dev/vgpool/mackay	# Logical volume expand to 110GB.
$ sudo lvscan
$ sudo lvextend -L +5G /dev/vgpool/mackay	# Add 5GB to logical volumes.
$ sudo lvscan
$ sudo lvextend -l +100%free /dev/mapper/vgpool-mackay
$ sudo lvscan
$ sudo vgdisplay
$ sudo resize2fs /dev/vgpool/mackay

Shrink logical volume

$ sudo e2fsck -f /dev/vgpool/mackay
$ sudo resize2fs dev/vgpool/mackay -20G		# File system reduced by 20GB.
$ sudo lvreduce -L -20G /dev/vgpool/mackay	# Logical volume reduced by 20GB.
$ sduo lvscan
$ sudo e2fsck -f /dev/vgpool/mackay
$ sudo resize2fs /dev/vgpool/mackay 90G		# File system reduced to 90GB.
$ sudo lvreduce -L 90G /dev/vgpool/mackay	# Logical volume reduced to 90GB.
$ sduo lvscan

Remove logical volume

$ sudo lvdisplay
$ sudo lvremove /dev/vgpool/mackay

Rename logical volumes

$ sudo vgs
$ sudo lvs
$ sudo lvrename /dev/vgpool/mackay /dev/vgpool/data

Also remember to change the name in the /etc/fstab

Notes

reboot and enter rescue mode

$ vi /etc/lvm/lvm.conf
locking_type = 1
comments powered by Disqus