diff options
-rw-r--r-- | usr.sbin/sade/label.c | 22 | ||||
-rw-r--r-- | usr.sbin/sysinstall/label.c | 22 |
2 files changed, 44 insertions, 0 deletions
diff --git a/usr.sbin/sade/label.c b/usr.sbin/sade/label.c index cbee57a..c752f73 100644 --- a/usr.sbin/sade/label.c +++ b/usr.sbin/sade/label.c @@ -1387,6 +1387,9 @@ try_auto_label(Device **devs, Device *dev, int perc, int *req) daddr_t sz; Chunk *AutoHome, *AutoRoot, *AutoSwap; Chunk *AutoTmp, *AutoUsr, *AutoVar; +#ifdef __ia64__ + Chunk *AutoEfi; +#endif int mib[2]; unsigned long physmem; size_t size; @@ -1399,6 +1402,25 @@ try_auto_label(Device **devs, Device *dev, int perc, int *req) (void)checkLabels(FALSE); AutoHome = AutoRoot = AutoSwap = NULL; AutoTmp = AutoUsr = AutoVar = NULL; + +#ifdef __ia64__ + AutoEfi = NULL; + if (EfiChunk == NULL) { + sz = 100 * ONE_MEG; + AutoEfi = Create_Chunk_DWIM(label_chunk_info[here].c->disk, + label_chunk_info[here].c, sz, efi, 0, 0); + if (AutoEfi == NULL) { + *req = 1; + msg = "Unable to create the EFI system partition. Too big?"; + goto done; + } + AutoEfi->private_data = new_part(PART_EFI, "/efi", TRUE); + AutoEfi->private_free = safe_free; + AutoEfi->flags |= CHUNK_NEWFS; + record_label_chunks(devs, dev); + } +#endif + if (RootChunk == NULL) { sz = requested_part_size(VAR_ROOT_SIZE, ROOT_NOMINAL_SIZE, ROOT_DEFAULT_SIZE, perc); diff --git a/usr.sbin/sysinstall/label.c b/usr.sbin/sysinstall/label.c index cbee57a..c752f73 100644 --- a/usr.sbin/sysinstall/label.c +++ b/usr.sbin/sysinstall/label.c @@ -1387,6 +1387,9 @@ try_auto_label(Device **devs, Device *dev, int perc, int *req) daddr_t sz; Chunk *AutoHome, *AutoRoot, *AutoSwap; Chunk *AutoTmp, *AutoUsr, *AutoVar; +#ifdef __ia64__ + Chunk *AutoEfi; +#endif int mib[2]; unsigned long physmem; size_t size; @@ -1399,6 +1402,25 @@ try_auto_label(Device **devs, Device *dev, int perc, int *req) (void)checkLabels(FALSE); AutoHome = AutoRoot = AutoSwap = NULL; AutoTmp = AutoUsr = AutoVar = NULL; + +#ifdef __ia64__ + AutoEfi = NULL; + if (EfiChunk == NULL) { + sz = 100 * ONE_MEG; + AutoEfi = Create_Chunk_DWIM(label_chunk_info[here].c->disk, + label_chunk_info[here].c, sz, efi, 0, 0); + if (AutoEfi == NULL) { + *req = 1; + msg = "Unable to create the EFI system partition. Too big?"; + goto done; + } + AutoEfi->private_data = new_part(PART_EFI, "/efi", TRUE); + AutoEfi->private_free = safe_free; + AutoEfi->flags |= CHUNK_NEWFS; + record_label_chunks(devs, dev); + } +#endif + if (RootChunk == NULL) { sz = requested_part_size(VAR_ROOT_SIZE, ROOT_NOMINAL_SIZE, ROOT_DEFAULT_SIZE, perc); |