Class: Bootloader::BootRecordBackup
- Inherits:
-
Object
- Object
- Bootloader::BootRecordBackup
- Includes:
- Yast::Logger
- Defined in:
- src/lib/bootloader/boot_record_backup.rb
Overview
Responsibility of class is to manage backup of MBR, respective PBR of disk, respective partition.
Defined Under Namespace
Constant Summary collapse
- BASH_PATH =
Yast::Path.new(".target.bash")
- BASH_OUTPUT_PATH =
Yast::Path.new(".target.bash_output")
- TARGET_SIZE =
Yast::Path.new(".target.size")
- MAIN_BACKUP_DIR =
"/var/lib/YaST2/backup_boot_sectors/"
- KEPT_BACKUPS =
10
Instance Attribute Summary collapse
-
#device ⇒ Object
readonly
Returns the value of attribute device.
Instance Method Summary collapse
-
#initialize(device) ⇒ BootRecordBackup
constructor
Create backup handling class for given device.
-
#restore ⇒ Object
Restore backup.
-
#write ⇒ Object
Write fresh backup of MBR or PBR of given device.
Constructor Details
#initialize(device) ⇒ BootRecordBackup
Create backup handling class for given device
33 34 35 |
# File 'src/lib/bootloader/boot_record_backup.rb', line 33 def initialize(device) @device = device end |
Instance Attribute Details
#device ⇒ Object (readonly)
Returns the value of attribute device.
18 19 20 |
# File 'src/lib/bootloader/boot_record_backup.rb', line 18 def device @device end |
Instance Method Details
#restore ⇒ Object
Restore backup
58 59 60 61 62 63 64 |
# File 'src/lib/bootloader/boot_record_backup.rb', line 58 def restore raise Missing unless exists? # Copy only 440 bytes for Vista booting problem bnc #396444 # and also to not destroy partition table copy_br(device_file_path, device, block_size: 440) == 0 end |
#write ⇒ Object
Write fresh backup of MBR or PBR of given device. Backup is stored in /var/lib/YaST2/backup_boot_sectors, in logs directory and if it is MBR of primary disk, then also in /boot/backup_mbr
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'src/lib/bootloader/boot_record_backup.rb', line 40 def write Yast::SCR.Execute(BASH_PATH, "/usr/bin/mkdir -p #{MAIN_BACKUP_DIR.shellescape}") if exists? rotate reduce_backup_count end copy_br(device, device_file_path) # save MBR to yast2 log directory logs_path = "/var/log/YaST2/#{device_file}" copy_br(device, logs_path) end |