| Class | BoxGrinder::LinuxHelper |
| In: |
lib/boxgrinder-build/helpers/linux-helper.rb
lib/boxgrinder-build/helpers/linux-helper.rb |
| Parent: | Object |
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 23
23: def initialize( options = {} )
24: @log = options[:log] || LogHelper.new
25: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 23
23: def initialize( options = {} )
24: @log = options[:log] || LogHelper.new
25: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 43
43: def kernel_image_name( guestfs )
44: guestfs.sh("ls -1 /boot | grep initramfs | wc -l").chomp.strip.to_i > 0 ? "initramfs" : "initrd"
45: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 43
43: def kernel_image_name( guestfs )
44: guestfs.sh("ls -1 /boot | grep initramfs | wc -l").chomp.strip.to_i > 0 ? "initramfs" : "initrd"
45: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 27
27: def kernel_version( guestfs )
28: kernel_versions = guestfs.ls("/lib/modules")
29: version = kernel_versions.last
30:
31: if kernel_versions.size > 1
32: kernel_versions.each do |v|
33: if v.match(/PAE$/)
34: version = v
35: break
36: end
37: end
38: end
39:
40: version
41: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 27
27: def kernel_version( guestfs )
28: kernel_versions = guestfs.ls("/lib/modules")
29: version = kernel_versions.last
30:
31: if kernel_versions.size > 1
32: kernel_versions.each do |v|
33: if v.match(/PAE$/)
34: version = v
35: break
36: end
37: end
38: end
39:
40: version
41: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 47
47: def recreate_kernel_image( guestfs, modules = [] )
48: kernel_version = kernel_version( guestfs )
49: kernel_image_name = kernel_image_name( guestfs )
50:
51: if guestfs.exists("/sbin/dracut") != 0
52: command = "/sbin/dracut -f -v --add-drivers #{modules.join(' ')}"
53: else
54: drivers_argument = ""
55: modules.each { |mod| drivers_argument << " --preload=#{mod}" }
56:
57: command = "/sbin/mkinitrd -f -v#{drivers_argument}"
58: end
59:
60: @log.trace "Additional modules to preload in kernel: #{modules.join(', ')}"
61:
62: @log.debug "Recreating kernel image for #{kernel_version} kernel..."
63: guestfs.sh( "#{command} /boot/#{kernel_image_name}-#{kernel_version}.img #{kernel_version}" )
64: @log.debug "Kernel image recreated."
65: end
# File lib/boxgrinder-build/helpers/linux-helper.rb, line 47
47: def recreate_kernel_image( guestfs, modules = [] )
48: kernel_version = kernel_version( guestfs )
49: kernel_image_name = kernel_image_name( guestfs )
50:
51: if guestfs.exists("/sbin/dracut") != 0
52: command = "/sbin/dracut -f -v --add-drivers #{modules.join(' ')}"
53: else
54: drivers_argument = ""
55: modules.each { |mod| drivers_argument << " --preload=#{mod}" }
56:
57: command = "/sbin/mkinitrd -f -v#{drivers_argument}"
58: end
59:
60: @log.trace "Additional modules to preload in kernel: #{modules.join(', ')}"
61:
62: @log.debug "Recreating kernel image for #{kernel_version} kernel..."
63: guestfs.sh( "#{command} /boot/#{kernel_image_name}-#{kernel_version}.img #{kernel_version}" )
64: @log.debug "Kernel image recreated."
65: end