28
28
from redhat_upgrade_tool .util import call , check_call , rm_f , mkdir_p , rlistdir
29
29
from redhat_upgrade_tool .download import UpgradeDownloader , YumBaseError , yum_plugin_for_exc , URLGrabError
30
30
from redhat_upgrade_tool .sysprep import prep_upgrade , prep_boot , setup_media_mount , setup_cleanup_post , disable_old_repos , Config
31
- from redhat_upgrade_tool .sysprep import modify_repos , remove_cache
31
+ from redhat_upgrade_tool .sysprep import modify_repos , remove_cache , reset_boot
32
32
from redhat_upgrade_tool .boot import upgrade_boot_args
33
33
from redhat_upgrade_tool .upgrade import RPMUpgrade , TransactionError
34
34
38
38
from redhat_upgrade_tool import rhel_gpgkey_path
39
39
from redhat_upgrade_tool import preupgrade_script_path
40
40
from redhat_upgrade_tool import release_version_file
41
+ from redhat_upgrade_tool import _ , kernelpath , initrdpath
42
+ from redhat_upgrade_tool import MIN_AVAIL_BYTES_FOR_BOOT
41
43
42
44
import redhat_upgrade_tool .logutils as logutils
43
45
import redhat_upgrade_tool .media as media
@@ -51,7 +53,6 @@ def message(m):
51
53
print m
52
54
log .info (m )
53
55
54
- from redhat_upgrade_tool import _ , kernelpath , initrdpath
55
56
56
57
def setup_downloader (version , instrepo = None , cacheonly = False , repos = [],
57
58
enable_plugins = [], disable_plugins = [], noverifyssl = False ):
@@ -365,6 +366,18 @@ def handle_sigwinch(signum, frame):
365
366
upgrade_boot_args ()
366
367
prep_boot (kernel , initrd )
367
368
369
+ # Check for available space in /boot/ needed for kernel and grub
370
+ # installation during the upgrade.
371
+ statvfs = os .statvfs ("/boot" )
372
+ avail_bytes = statvfs .f_frsize * statvfs .f_bavail
373
+ if avail_bytes < MIN_AVAIL_BYTES_FOR_BOOT :
374
+ reset_boot ()
375
+ additional_mib_needed = \
376
+ (MIN_AVAIL_BYTES_FOR_BOOT - avail_bytes ) / 2 ** 20
377
+ sys .stderr .write (_ ("Not enough space. /boot/ needs additional %d MiB"
378
+ ".\n " ) % additional_mib_needed )
379
+ raise SystemExit (1 )
380
+
368
381
# Replace temporary media paths
369
382
modify_repos (args )
370
383
0 commit comments