• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

Extend the size of /boot partition on virtualized environment (CentOS/RHEL 6)

by admin

The scope of this post is to explain the steps involved in increasing the /boot filesystem, when no sufficient space available to install new kernel package. Though we have standard methods to reduce the size of /boot i.e. removing unused kernel and image files from boot, as an alternate approach, this post illustrate the steps to expand size of boot partition.

The following should be the scenario were this can be applied,

  • OVM/Vmware guest machine.
  • Guest Backup should be taken from OVM/Vmware.
  • /boot not in LVM, whereas other OS filesystem using LVM.
Note: The steps listed here are tested with EXT4 filesystem only.

The Steps

1. Add a new disk (size of the new disk must be equal or greater than size of the existing volume group) and use ‘fdisk -l’ to check for the newly added disk. e.g. /dev/sdb

# fdisk -l

Disk /dev/sda: 55.3 GB, 55278469120 bytes
255 heads, 63 sectors/track, 6720 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: 0x00068fe8

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 6721 53878784 8e Linux LVM

Disk /dev/sdb: 60.7 GB, 60673785856 bytes
255 heads, 63 sectors/track, 7376 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: 0x00000000

2. Partition the newly added disk and change the type to Linux LVM.

# fdisk /dev/sdb

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-7376, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-7376, default 7376): +56G

Command (m for help): l

0 Empty            24 NEC DOS          81 Minix / old Lin  bf Solaris
1 FAT12            39 Plan 9           82 Linux swap / So  c1 DRDOS/sec (FAT-
2 XENIX root       3c PartitionMagic   83 Linux            c4 DRDOS/sec (FAT-
3 XENIX usr        40 Venix 80286      84 OS/2 hidden C:   c6 DRDOS/sec (FAT-
4 FAT16 <32M       41 PPC PReP Boot    85 Linux extended   c7 Syrinx
5 Extended         42 SFS              86 NTFS volume set  da Non-FS data
6 FAT16            4d QNX4.x           87 NTFS volume set  db CP/M / CTOS / .
7 HPFS/NTFS        4e QNX4.x 2nd part  88 Linux plaintext  de Dell Utility
8 AIX              4f QNX4.x 3rd part  8e Linux LVM        df BootIt
9 AIX bootable     50 OnTrack DM       93 Amoeba           e1 DOS access
a OS/2 Boot Manag  51 OnTrack DM6 Aux  94 Amoeba BBT       e3 DOS R/O
b W95 FAT32        52 CP/M             9f BSD/OS           e4 SpeedStor
c W95 FAT32 (LBA)  53 OnTrack DM6 Aux  a0 IBM Thinkpad hi  eb BeOS fs
e W95 FAT16 (LBA)  54 OnTrackDM6       a5 FreeBSD          ee GPT
f W95 Ext'd (LBA)  55 EZ-Drive         a6 OpenBSD          ef EFI (FAT-12/16/
10 OPUS            56 Golden Bow       a7 NeXTSTEP         f0 Linux/PA-RISC b
11 Hidden FAT12    5c Priam Edisk      a8 Darwin UFS       f1 SpeedStor
12 Compaq diagnost 61 SpeedStor        a9 NetBSD           f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys  ab Darwin boot      f2 DOS secondary
16 Hidden FAT16    64 Novell Netware   af HFS / HFS+       fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware   b7 BSDI fs          fc VMware VMKCORE
18 AST SmartSleep  70 DiskSecure Mult  b8 BSDI swap        fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX            bb Boot Wizard hid  fe LANstep
1c Hidden W95 FAT3 80 Old Minix        be Solaris boot     ff BBT
1e Hidden W95 FAT1

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 60.7 GB, 60673785856 bytes
255 heads, 63 sectors/track, 7376 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: 0xbd30352b

Device Boot Start End Blocks Id System
/dev/sdb1 1 7311 58725576 8e Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

3. Create a physical volume on the partitioned disk e.g. /dev/sdb1:

# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

4. Check for the volume group name. Add the physical volume to the existing volume group.

# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 1 4 0 wz--n- 51.38g 42.98g
# vgextend VolGroup /dev/sdb1
Volume group "VolGroup" successfully extended

5. Migrate the physical volume from existing disk (/dev/sda2) to newly created (/dev/sdb1). Then reduce the existing volume group.

# pvmove /dev/sda2 /dev/sdb1
/dev/sda2: Moved: 0.2%
/dev/sda2: Moved: 11.6%
/dev/sda2: Moved: 15.2%
/dev/sda2: Moved: 17.4%
/dev/sda2: Moved: 19.9%
/dev/sda2: Moved: 22.1%
/dev/sda2: Moved: 24.5%
/dev/sda2: Moved: 26.6%
/dev/sda2: Moved: 28.9%
/dev/sda2: Moved: 31.2%
/dev/sda2: Moved: 35.6%
/dev/sda2: Moved: 38.9%
/dev/sda2: Moved: 41.3%
/dev/sda2: Moved: 46.5%
/dev/sda2: Moved: 52.3%
/dev/sda2: Moved: 100.0%
# vgreduce VolGroup /dev/sda2
Removed "/dev/sda2" from volume group "VolGroup"

6. Delete the partition /dev/sda2:

# fdisk -cu /dev/sda

Command (m for help): d
Partition number (1-4): 2

Command (m for help): p

Disk /dev/sda: 55.3 GB, 55278469120 bytes
255 heads, 63 sectors/track, 6720 cylinders, total 107965760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00068fe8

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 206847 102400 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

7. Unmount /boot:

# umount /boot

8. Check the start and end blocks of /dev/sda1. Then delete the partition /dev/sda1 and create a new partition /dev/sda1 with same start block and extend the size as much required.

# fdisk -cu /dev/sda

Command (m for help): p

Disk /dev/sda: 55.3 GB, 55278469120 bytes
224 heads, 19 sectors/track, 25367 cylinders, total 107965760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00068fe8

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 206847 102400 83 Linux

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-107965759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-107965759, default 107965759): +1000M

Command (m for help): p

Disk /dev/sda: 55.3 GB, 55278469120 bytes
224 heads, 19 sectors/track, 25367 cylinders, total 107965760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00068fe8

Device Boot Start End Blocks Id System
/dev/sda1 2048 2050047 1024000 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

9.Check the file system of /dev/sda1:

# e2fsck -f /dev/sda1
e2fsck 1.43-WIP (20-Jun-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: 45/25688 files (6.7% non-contiguous), 88803/102400 blocks

10. Resize the file system:

# resize2fs /dev/sda1
resize2fs 1.43-WIP (20-Jun-2013)
Resizing the filesystem on /dev/sda1 to 1024000 (1k) blocks.
The filesystem on /dev/sda1 is now 1024000 blocks long.

11. Mount /boot.

# mount /boot

12. After all these steps, size of the /boot filesystem will be extended. You can check this using 'df -h' command.

# df -h /boot

Filed Under: CentOS/RHEL 6, Linux, OEL 6

Some more articles you might also be interested in …

  1. Understanding SELinux Booleans
  2. wc Command Examples in Linux
  3. What are DNS Nameserver Types in Linux
  4. How to manage File and Directory Permissions/Ownerships in Linux
  5. unlink: command not found
  6. daemonize Command Examples in Linux
  7. ping: command not found
  8. logrotate: command not found
  9. How To Enforce Password Complexity For All Users, Including “root”, By Using the “passwdqc” PAM Module CentOS/RHEL
  10. flatpak-builder: command not found

You May Also Like

Primary Sidebar

Recent Posts

  • protonvpn-cli Command Examples in Linux
  • protonvpn-cli connect Command Examples
  • procs Command Examples in Linux
  • prlimit: command not found

© 2023 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright