Class: Bootloader::Stage1Device

Inherits:
Object
  • Object
show all
Includes:
Yast::Logger
Defined in:
src/lib/bootloader/stage1_device.rb

Overview

Purpose of this class is provide mapping between intentioned stage1 location and real one as many virtual devices cannot be used for stage1 like md devices or lvm

Examples:

# system with lvm, /boot lives on /dev/system/root. /dev/system is
# created from /dev/sda1 and /dev/sdb1
dev = Stage1Device.new("/dev/system/boot")
puts dev.real_devices # => ["/dev/sda1", "/dev/sdb1"]

Instance Method Summary (collapse)

Constructor Details

- (Stage1Device) initialize(device)

Returns a new instance of Stage1Device

Parameters:

  • device (String)

    intended location of stage1. Device here means any name under /dev like “/dev/sda”, “/dev/system/root” or “/dev/md-15”. Such device have to be in kernel name, so no udev links.



22
23
24
# File 'src/lib/bootloader/stage1_device.rb', line 22

def initialize(device)
  @intended_device = device
end

Instance Method Details

- (Object) real_devices

to fit the best intended device. Devices used kernel device names, so no udev names



29
30
31
32
33
34
35
36
37
# File 'src/lib/bootloader/stage1_device.rb', line 29

def real_devices
  return @real_devices if @real_devices

  @real_devices = underlaying_devices_for(@intended_device)

  log.info "Stage1 real devices for #{@intended_device} is #{@real_devices}"

  @real_devices
end