CentOS/RHEL 6在虚拟化环境中扩展 /boot 分区的大小

这篇文章的范围是解释当没有足够的空间来安装新的内核包时增加 /boot 文件系统所涉及的步骤。
虽然我们有标准方法来减小 /boot 的大小,例如:从引导中删除未使用的内核和镜像文件,但作为替代方法,这篇文章说明了扩展引导分区大小的步骤。

以下应该是可以应用的场景,

  • OVM/Vmware 来宾机器。
  • 来宾备份应从 OVM/Vmware 获取。
  • /boot 不在 LVM 中,而其他操作系统文件系统使用 LVM。

注意:此处列出的步骤仅使用 EXT4 文件系统进行了测试。

查看更多教程 https://on  itroad.com

步骤

  1. 添加新磁盘(新磁盘的大小必须等于或者大于现有卷组的大小)并使用'fdisk -l' 来检查新添加的磁盘。例如/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
  1. 对新添加的磁盘进行分区,将类型更改为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.
  1. 在分区磁盘上创建一个物理卷,例如/dev/sdb1:
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
  1. 检查卷组名称。
    将物理卷添加到现有卷组。
# 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
  1. 将物理卷从现有磁盘 (/dev/sda2) 迁移到新创建的 (/dev/sdb1)。
    然后减少现有的卷组。
# 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"
  1. 删除分区/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.
  1. 卸载/boot:
# umount /boot
  1. 检查/dev/sda1 的开始和结束块。
    然后删除分区 /dev/sda1 并创建一个具有相同起始块的新分区 /dev/sda1 并根据需要扩展大小。
# 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.
  1. 检查/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
  1. 调整文件系统大小:
# 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.
  1. 挂载 /boot。
# mount /boot
  1. 在所有这些步骤之后,/boot 文件系统的大小将被扩展。
    我们可以使用“df -h”命令进行检查。
# df -h /boot
日期:2020-09-17 00:14:20 来源:oir作者:oir