Skip to content

Instantly share code, notes, and snippets.

@egodigitus
Last active March 18, 2023 17:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save egodigitus/26b97e1bad217b1a77a3338fa0b0ea5e to your computer and use it in GitHub Desktop.
Save egodigitus/26b97e1bad217b1a77a3338fa0b0ea5e to your computer and use it in GitHub Desktop.
Add new disk Ubuntu 20 Proxmox
# Add hard disk in UI, under VM -> Hardware -> Click on Add -> Hard Disk

# Non-interactive parted command
# sudo parted /dev/sdb mklabel gpt mkpart primary ext4 0% 100%

# The following shows the interactive mode of parted
# Confirm that a new disk is available (sdb with 3TB in my case)
$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                         8:0    0    1T  0 disk
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0    1G  0 part /boot
└─sda3                      8:3    0    1T  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0   31G  0 lvm  /
sdb                         8:16   0    3T  0 disk 

# Create a GPT partition spanning the whole disk
# Might need to do mklabel gpt in between

$ sudo parted /dev/sdb
GNU Parted 3.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sdb: 3221GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) mklabel
New disk label type? gpt

(parted) mkpart
Partition name?  []? primary
parted: invalid token: partition
File system type?  [ext2]? ext4                                           
Start? 0%                                                                 
End? 100% 

(parted) print                                                            
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sdb: 3221GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3221GB  3221GB  ext4         primary

(parted) quit                                                             
Information: You may need to update /etc/fstab.

# Create physical volume
$ sudo pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
  
# Confirm it worked
$ sudo pvs
  PV         VG        Fmt  Attr PSize  PFree 
  /dev/sda3  ubuntu-vg lvm2 a--  <2.96t     0 
  /dev/sdb1            lvm2 ---  <2.93t <2.93t

# Create a volume group "data" with sdb1
$ sudo vgcreate data /dev/sdb1
  Volume group "data" successfully created

# Create a logical volume "data-lv" in the data volume group with 100% of the space available
$ sudo lvcreate -l 100%FREE -n data-lv data
  Logical volume "data-lv" created.

# Create ext4 filesystem on logical volume
$ sudo mkfs.ext4 /dev/data/data-lv 
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done                            
Creating filesystem with 786430976 4k blocks and 196608000 inodes
Filesystem UUID: cf87eb6b-b238-4807-a749-b39d6b146eee
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done 

# Find out the blkid of the lv - sudo is important here
$ sudo blkid /dev/data/data-lv
/dev/data/data-lv: UUID="cf87eb6b-b238-4807-a749-b39d6b146eee" TYPE="ext4"

# Auto-mount the disk to /etc/fstab
$ sudo vi /etc/fstab
# Add this line
# mount data disk to /data
/dev/disk/by-uuid/cf87eb6b-b238-4807-a749-b39d6b146eee /data ext4 defaults 0 1

# Make sure the /data dir exists
$ sudo mkdir /data

# Reboot in order to check that the auto-mount works
$ sudo reboot

# Confirm that everything works 
$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                         8:0    0    1T  0 disk
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0    1G  0 part /boot
└─sda3                      8:3    0    1T  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0    1T  0 lvm  /
sdb                         8:16   0    3T  0 disk 
└─sdb1                      8:17   0    3T  0 part 
  └─data-data--lv         253:0    0    3T  0 lvm  /data
  
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment