From 77b9eca156c091fd42cbd63803173a475725a3f9 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Mon, 22 Apr 2013 23:53:47 +0000 Subject: Run installgrub from CD, not from chroot. Device nodes can differ. If we get c1d0 on CD, same disk can be c0d0 in chroot --- install | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'install') diff --git a/install b/install index 2fa0c14..d6a9b68 100755 --- a/install +++ b/install @@ -642,7 +642,7 @@ def debootstrap(): os.execl('/usr/sbin/debootstrap', 'debootstrap', '--debian-installer', '--no-check-gpg', '--exclude=gawk,aptitude,aptitude-common,libboost-iostreams1.48.0,libboost-iostreams1.49.0,libcwidget3', - '--include=installgrub,illumos-grub,illumos-kernel,locales,bash-completion,vim', + '--include=illumos-grub,illumos-kernel,locales,bash-completion,vim', codename, rootdir, mirror) except EnvironmentError as e: sys.exit(e.errno) @@ -861,8 +861,7 @@ def configure_grub(): except: pass - # Zpool was not created during installation, trying - # to guess slice name: + # Zpool was not created during installation, trying to guess slice name: if not rslice: slices = get_zpool_slice(rpool) if len(slices) == 1 and re.match(r'^\w+s\d+$', slices[0]): @@ -878,7 +877,7 @@ def configure_grub(): items.append(('Install GRUB to MBR', 'mbr')) items.append(('Install GRUB to a partition only', 'partition')) items.append(('Only update GRUB menu', 'menu')) - if not solaris_partition: + if not solaris_partition: # installing on existing pool default = 'menu' elif solaris_partition.logical: default = 'mbr' @@ -906,11 +905,13 @@ def configure_grub(): else: progress.text = 'Installing GRUB to partition ...' - installgrub_cmd += ['/boot/grub/stage1', '/boot/grub/stage2', '/dev/rdsk/' + rslice] - rc, out, err = in_bootenv(installgrub_cmd) - if rc != 0: + installgrub_cmd += [rootdir+'/boot/grub/stage1', rootdir+'/boot/grub/stage2', + '/dev/rdsk/' + rslice] + installgrub = Popen(installgrub_cmd, stdout=PIPE, stderr=PIPE) + out, err = installgrub.communicate() + if installgrub.returncode != 0: ButtonChoiceWindow(screen, title='Error', - text='Installing of GRUB failed: ' + err, buttons=['Ok'], width=60) + text='Installing of GRUB failed: '+err, buttons=['Ok'], width=60) m = re.search(r'stage1 written to partition (\d)', out) if m: @@ -931,7 +932,7 @@ def configure_grub(): menu = open(rpool_path + '/boot/grub/menu.lst', 'w') print(grub_top, file=menu) menu.close() - re_bootfs = re.compile(r'^bootfs\s+' + bootenv) + re_bootfs = re.compile(r'^\s*bootfs\s+' + bootenv) have_this_bootenv = False menu = open(rpool_path + '/boot/grub/menu.lst', 'r+') for line in menu: -- cgit v1.2.3