Gavin Romig-Koch wrote:
Please consider the following patch for koan.
Looks good ...
I'm getting a "malformed patch" error, if you can send me this as an
attachment (off-list is ok) I'll apply this.
This can probably make the next koan release too.
--Michael
* Fri Feb 8 2008 Gavin Romig-Koch <gavin@xxxxxxxxxx>
Get koan working on ia64
The following changes are needed to get koan working on ia64. Elilo
expects the kernel and initrd to be on the EFI storage device, and
grubby expects them to be within /boot/efi/EFI/redhat.
Grubby's --bootloader-probe option only exists on x86 and x86_64, on
other arches grubby errors out when given it, so grubby
--bootloader-probe
never returns "elilo".
This patch changes koan to just let grubby figure out the appropriate
bootloader to use (which it does correctly), and only after that checks
to see if the boot loader is lilo, and if necessary runs lilo.
-gavin...
diff --git a/koan/app.py b/koan/app.py
index 6d116de..3410b26 100755
--- a/koan/app.py
+++ b/koan/app.py
@@ -542,10 +542,15 @@ class Koan:
# find the correct file download location if not
self.is_virt:
- download = "/boot"
if self.live_cd:
download = "/tmp/boot/boot"
+ elif os.path.exists("/boot/efi/EFI/redhat/elilo.conf"):
+ download = "/boot/efi/EFI/redhat"
+
+ else:
+ download = "/boot"
+
else:
# ensure we have a good virt type choice and know where
# to download the kernel/initrd
@@ -711,19 +716,7 @@ class Koan:
k_args = k_args.replace("lang ","lang= ")
- cmd = [ "/sbin/grubby", -
"--bootloader-probe" ]
-
- which_loader = sub_process.Popen(cmd,
stdout=sub_process.PIPE).communicate()[0]
- - loader = "--grub"
- if which_loader.find("elilo") != -1:
- loader = "--elilo"
- elif which_loader.find("lilo") != -1:
- loader = "--lilo"
-
cmd = [ "/sbin/grubby",
- loader,
"--add-kernel",
self.safe_load(profile_data,'kernel_local'),
"--initrd",
self.safe_load(profile_data,'initrd_local'),
"--make-default",
@@ -737,7 +730,14 @@ class Koan:
cmd.append("--config-file=/tmp/boot/boot/grub/grub.conf")
self.subprocess_call(cmd)
- if loader == "--lilo":
+
+ # if grubby --bootloader-probe returns lilo,
+ # apply lilo changes
+ cmd = [ "/sbin/grubby", "--bootloader-probe" ]
+ probe_process = sub_process.Popen(cmd,
stdout=sub_process.PIPE)
+ which_loader = probe_process.communicate()[0]
+ if probe_process.returncode == 0 and \
+ which_loader.find("lilo") != -1:
print "- applying lilo changes"
cmd = [ "/sbin/lilo" ]
sub_process.Popen(cmd,
stdout=sub_process.PIPE).communicate()[0]
_______________________________________________
et-mgmt-tools mailing list
et-mgmt-tools@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/et-mgmt-tools
_______________________________________________
et-mgmt-tools mailing list
et-mgmt-tools@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/et-mgmt-tools