[oi-dev] [developer] Install into existing zfs pool on a GPT partition
Atiq Rahman
atiqcx at gmail.com
Mon Aug 18 08:36:17 UTC 2025
Hi,
Thanks so much for explaining the bits.
> However, the system goes into maintenance mode after booting. the root
password I specified during installation wasn't set. It sets the root user
with the default maintenance password.
How to make it run the remaining parts of the installer and complete it so
I can at least get OI on text mode?
Best!
Atiq
On Sun, Aug 17, 2025 at 2:50 AM Toomas Soome via oi-dev <
oi-dev at openindiana.org> wrote:
> On 16. Aug 2025, at 08:31, Atiq Rahman <atiqcx at gmail.com> wrote:
> > bootadm update-archive -R /mntpointfor_rootfs will create it.
> This indeed created it. Now, I am able to boot into it without the USB
> stick.
>
> > the finalization steps are likely missing.
> Yep, more of the final steps were missed by the installer.
>
> Regarding the Install log (bottom of the email after this section).
> 1. set_partition_active: is it running stuffs for legacy MBR even though
> it is UEFI system?
>
> it is likely the installer logic may need some updating.
>
> 2. is /usr/sbin/installboot a script? If yes, I plan to run it manually
> next time.
>
>
> no. you still can run it manually, or use bootadm install-bootloader
> (which does run installboot). Note that installboot is assuming that
> existing boot programs are from illumos, if not, you will see some error
> (in this case, the multiboot data structure is not found and therefore the
> program is not “ours”).
>
> 3. EFI/Boot/bootia32.efi: why is it installing 32 bit boot file? Mine is
> amd64 system.
>
>
> Because bootia32.efi (loader32.efi) implements support of system which
> starts with 32-bit UEFI firmware, but cpu can be switched to 64-bit mode.
> Granted, most systems do not need it, but also, one might want to transfer
> this boot disk, so it would be nice to have it prepared. And since ESP does
> have spare space, it does not really hurt to have it installed. Same way we
> do install both UEFI boot programs in ESP and BIOS boot programs into pmbr
> and os partition start - this way it really does not matter if you use CSM
> or not, you still can boot.
>
> 4. Finally, why did _curses.error: endwin() returned ERR ?
>
>
> from man endwin:
>
> • *endwin* returns an error if
>
>
> • the terminal was not initialized, or
>
>
> • *endwin* is called more than once without updating the
> screen, or
>
>
> • *reset_shell_mode*(3X) returns an error.
>
>
> So some debugging is needed there.
>
>
> rgds,
>
> toomas
>
>
>
> Install log is attached here
> ------------------------
> 2025-08-15 16:00:35,533 - INFO : text-install:120 **** START ****
> 2025-08-15 16:00:36,166 - ERROR : ti_install_utils.py:428 Error occured
> during zpool call: no pools available to import
>
> 2025-08-15 16:00:38,146 - ERROR : ti_install_utils.py:428 Error occured
> during zpool call: no pools available to import
>
> 2025-08-15 16:01:02,353 - INFO : network_type.py:174 Configuring NIC
> as: none
> 2025-08-15 09:11:38,695 - ERROR : install_utils.py:411 Traceback (most
> recent call last):
> 2025-08-15 09:11:38,696 - ERROR : install_utils.py:411 File
> "/sbin/install-finish", line 256, in <module>
> 2025-08-15 09:11:38,696 - ERROR : install_utils.py:411
> SA.append(ICTO.set_partition_active())
> 2025-08-15 09:11:38,696 - ERROR : install_utils.py:411 File
> "/usr/lib/python3.9/vendor-packages/osol_install/ict.py", line 1869, in
> set_partition_active
> 2025-08-15 09:11:38,696 - ERROR : install_utils.py:411 return_status
> = self.set_partition_active_x86()
> 2025-08-15 09:11:38,696 - ERROR : install_utils.py:411 File
> "/usr/lib/python3.9/vendor-packages/osol_install/ict.py", line 1851, in
> set_partition_active_x86
> 2025-08-15 09:11:38,697 - ERROR : install_utils.py:411 status =
> self.bootadm_update_menu(rootdev)
> 2025-08-15 09:11:38,697 - ERROR : install_utils.py:411 File
> "/usr/lib/python3.9/vendor-packages/osol_install/ict.py", line 862, in
> bootadm_update_menu
> 2025-08-15 09:11:38,697 - ERROR : install_utils.py:411 ' exit
> status=%d' % (cmd, status))
> 2025-08-15 09:11:38,697 - ERROR : install_utils.py:411 TypeError: %d
> format: a number is required, not str
> 2025-08-15 09:11:38,718 - ERROR : ti_install.py:163 Failed to execute
> INSTALL_FINISH_PROG
> 2025-08-15 09:11:38,777 - ERROR : install_utils.py:411
> be_do_installboot_walk: child 0 of 1 device c2t00A075014881A463d0s6
> 2025-08-15 09:11:38,927 - ERROR : install_utils.py:411 Command:
> "/usr/sbin/installboot -F -m -f -b /a/boot
> /dev/rdsk/c2t00A075014881A463d0s6"
> 2025-08-15 09:11:38,927 - ERROR : install_utils.py:411 Output:
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 bootblock written
> for /dev/rdsk/c2t00A075014881A463d0s6, 280 sectors starting at 1024 (abs
> 1500001280)
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 /a/boot/pmbr is
> newer than one in /dev/rdsk/c2t00A075014881A463d0s6
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 stage1 written to
> slice 6 sector 0 (abs 1500000256)
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 bootblock written
> to /tmp/ibootBxW1oa/EFI/Boot/bootx64.efi
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 bootblock written
> to /tmp/ibootBxW1oa/EFI/Boot/bootia32.efi
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 /a/boot/pmbr is
> newer than one in /dev/rdsk/c2t00A075014881A463d0p0
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 stage1 written to
> slice 0 sector 0 (abs 0)
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 Errors:
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 Error reading
> bootblock from /tmp/ibootBxW1oa/EFI/Boot/bootia32.efi
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 Unable to find
> multiboot header
> 2025-08-15 09:11:38,928 - ERROR : install_utils.py:411 Error reading
> bootblock from /tmp/ibootBxW1oa/EFI/Boot/bootx64.efi
> 2025-08-15 09:11:38,967 - ERROR : ti_install.py:680 One or more ICTs
> failed. See previous log messages
> 2025-08-15 09:12:54,907 - ERROR : text-install:254 Install Profile:
> Pool: rpool
> BE name: solaris
> Overwrite boot configuration: True
> NIC None:
> Type: none
> System Info:
> Hostname: solaris
> TZ: America - US - America/Los_Angeles
> Time Offset: 0:00:17.242116
> Keyboard: None
> Locale: en_US.UTF-8
> User Info(root):
> Real name: None
> Login name: root
> Is Role: False
> User Info():
> Real name:
> Login name:
> Is Role: False
> None
> 2025-08-15 09:12:54,910 - ERROR : text-install:255 Traceback (most
> recent call last):
> File "/usr/bin/text-install", line 247, in <module>
> cleanup_curses()
> File "/usr/bin/text-install", line 93, in cleanup_curses
> curses.endwin()
> _curses.error: endwin() returned ERR
>
> 2025-08-15 09:12:54,911 - INFO : text-install:99 **** END ****
>
>
>
> Thanks,
>
> Atiq
>
>
> On Thu, Aug 14, 2025 at 1:54 AM Toomas Soome via oi-dev <
> oi-dev at openindiana.org> wrote:
>
>>
>>
>> On 14. Aug 2025, at 11:26, Atiq Rahman <atiqcx at gmail.com> wrote:
>>
>> So my disk name came out to be a long one: "c2t00A075014881A463d0" and I
>> am creating a fresh new pool in s6 (7th slice).
>> I am trying to get away with my mid week sorcery!
>>
>> Don't judge me. I barely concocted a majestic `zpool create` command
>> doing few searches online (been a while, I don't remember any of the
>> arguments)
>>
>> $ sudo zpool create -o ashift=12 -O compression=lz4 -O atime=off -O
>> normalization=formD -O mountpoint=none -O canmount=off rpool
>> /dev/dsk/c2t00A075014881A463d0s6
>>
>> I had a tiny bit of hesitation on putting in the mount restriction
>> switches, thinking whether it will prevent the *BSD Loader* from looking
>> up inside the pool.
>>
>> Then before running the text-installer (PS: no GUI yet for me, iGPU:
>> radeon not supported, dGPU: Nvidia RTX 4060, driver does modeset unloading)
>> I take the zfs pool off,
>>
>> $ sudo zpool export rpool
>>
>> pondered though if that would be a good idea before running the
>> installer. And then, I traveled to light blue OpenIndiana land.
>>
>> $ sudo /usr/bin/text-install
>>
>> I got away with a lot of firsts today probably in a decade (zpool create
>> worked, was able to treasure hunt the partition/slice that I created from
>> another FOSS OS with help) so while that installer is running I am almost
>> getting overconfident.
>>
>> An error in the end on /tmp/install_log put a dent on that just a tiny
>> bit. Screenshot attached: one of the py scripts invoked by
>> /sbin/install-finish: osol_install/ict.py has a TypeError which might have
>> caused due to NIC not being supported. I thought for a second whether
>> installer missing anything important by terminating after that TypeError.
>>
>> Life goes on: I created an entry on EFI boot manager pointing to
>> /Boot/bootx64.efi
>> As I try to boot BSD Loader is complaining that rootfs module not found.
>>
>>
>> As your install did end up with errors, the finalization steps are likely
>> missing.
>>
>> bootadm update-archive -R /mntpointfor_rootfs will create it.
>>
>>
>> While running some beadm command from OI live image I also noticed it
>> said few times that
>> Boot menu config missing. I guess I need to mount /boot/efi
>>
>>
>> no, beadm does manage boot environments and one step there is to maintain
>> BE menu list for bootloader boot environments menu. beadm
>> create/destroy/activate will update this menu (its located in <pool
>> dataset>/boot/menu.lst
>>
>>
>> As I am still learning how to make this work, any comment / suggestion is
>> greatly appreciated.
>>
>> Next, I will follow this after above is resolved,
>>
>> per
>> https://docs.openindiana.org/handbook/getting-started/#install-openindiana-to-existing-zfs-pool
>> ,
>> > As there's possibly already another OS instance installed to the
>> selected ZFS pool, no additional users or filesystems (like `rpool/export`)
>> are created during installation. Swap and dump ZFS volumes also are not
>> created and should be added manually after installation. Only root user
>> will be available in created boot environment.
>>
>>
>> using existing pool implies you need to take care of many things
>> yourself; IMO it is leaving just a bit too many things not done, but the
>> thing is, because it is ending up with things to be done by the operator,
>> it is definitely not the best option for someone trying to do its first
>> install. It really is for “advanced mode”, when you know what and how to do
>> to get setup completed.
>>
>> I have not used OI installer for some time, but I do believe you should
>> be able to point the installer to create pool on existing slice (not to
>> reuse existing pool). Or as I have suggested before, just use VM to get the
>> first setup to learn from.
>>
>> rgds,
>> toomas
>>
>> which means our installation process (into existing zfs pool) missed a
>> few steps of usual installation even though we started with a fresh new zfs
>> pool, no other OS instance.
>>
>> Appreciate the help of everyone who chimed in: Joshua, Toomas, John and
>> others to help me discover the magic to install into specific partition
>> instead of using the whole disk.
>>
>>
>> Cheers!
>>
>> Atiq
>>
>>
>> On Wed, Aug 13, 2025 at 5:53 PM Atiq Rahman <atiqcx at gmail.com> wrote:
>>
>>> Hi,
>>> > You can create your single illumos partition on OI as well, it does
>>> not have to be a whole disk setup.
>>>
>>> Yep, I would prefer to create the pool using an OI live image. So, I
>>> created a new partition from mkpart using latest parted from a linux system
>>> for this purpose,
>>>
>>> parted > mkpart illumos 767GB 100%
>>>
>>> and then set the partition type to solaris launching,
>>>
>>> $ sudo gdisk /dev/nvme0n1
>>>
>>> (set the GUID to "6A85CF4D-1DD2-11B2-99A6-080020736631" )
>>>
>>> I booted using OI live gui image (flashed / created it using 07-23 live
>>> usb image from test dir under hipster),
>>> Time to kill the switch!
>>> I see that parted can list all the partitions and format can list some.
>>> However, not all of them were listed under /dev/dsk or /dev/rdsk I could
>>> only see p0 to p4 (I guess illumos skipped the linux partitions).
>>>
>>> However, when I applied 'zpool create zfs_main
>>> /dev/rdsk/c2t0xxxxxxxxxxd0p4 it reported no such file or directory! Tried
>>> various versions of `zpool create`, nothing would succeed!
>>>
>>> Wondering if this is some nvme storage support / enumeration issue.
>>>
>>> Atiq
>>>
>>>
>>> On Wed, Aug 13, 2025 at 12:18 AM Toomas Soome via illumos-discuss <
>>> discuss at lists.illumos.org> wrote:
>>>
>>>>
>>>>
>>>> On 13. Aug 2025, at 09:29, Stephan Althaus via illumos-discuss <
>>>> discuss at lists.illumos.org> wrote:
>>>>
>>>> On 8/13/25 04:17, Atiq Rahman wrote:
>>>>
>>>> Copying this to illumos discussion as well if anyone else knows.
>>>>
>>>> ---------- Forwarded message ---------
>>>> From: Atiq Rahman <atiqcx at gmail.com>
>>>> Date: Tue, Aug 12, 2025 at 6:23 PM
>>>> Subject: Re: [OpenIndiana-discuss] Installation on a partition (UEFI
>>>> System)
>>>> To: Discussion list for OpenIndiana <
>>>> openindiana-discuss at openindiana.org>
>>>> Cc: John D Groenveld <groenveld at acm.org>
>>>>
>>>> Hi,
>>>> I tried a live usb text installer again. Right after the launch text
>>>> installer shows following as second option on the bottom of the screen,
>>>> *F5_InstallToExistingPool*
>>>>
>>>> Screenshot is below. If you zoom in, you will see the option at the top
>>>> of the blue background in the bottom part of the image.
>>>>
>>>> <text_install_screen.jpg>
>>>>
>>>> Can I partition and create a pool using FreeBSD as you mentioned. And,
>>>> then use this option to install on that pool.
>>>>
>>>> *Note that my system is EFI Only (no legacy / no CSM).*
>>>>
>>>> Sincerely,
>>>>
>>>> Atiq
>>>>
>>>>
>>>> On Tue, Aug 12, 2025 at 2:27 PM Atiq Rahman <atiqcx at gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>> Following up again to request confirmation regarding the "partition
>>>>> the disk" option in the installer.
>>>>>
>>>>> At present, it’s impractical for me to carry an external storage
>>>>> device solely for OpenIndiana. With other operating systems, I can safely
>>>>> install and test them on my internal SSD without risking my existing setup.
>>>>> Unfortunately, with OI, this specific limitation and uncertainty are
>>>>> creating unnecessary friction and confusion.
>>>>>
>>>>>
>>>>
>>>> You can create your single illumos partition on OI as well, it does not
>>>> have to be whole disk setup.
>>>>
>>>>
>>>> Could you please confirm the current state of EFI support —
>>>>> specifically, whether it is possible to safely perform a custom-partition
>>>>> installation on an EFI-only system, using a FreeBSD live USB image with the
>>>>> -d option.
>>>>>
>>>>> Thank you,
>>>>> Atiq
>>>>>
>>>>
>>>>
>>>> yes, it is possible. However, if you intend to share pool with illumos,
>>>> you need to know the specifics. illumos GPT partition type in FreeBSD is
>>>> named apple-zfs (its actually the uuid of illumos usr slice from vtoc).
>>>> FreeBSD boot loader is searching for partition freebsd-zfs to boot the
>>>> FreeBSD system.
>>>>
>>>> In general, I’d suggest to use virtualization to get first glimpse of
>>>> the OS, to learn its details and facts and then attempt to build
>>>> complicated multi-os/multi boot setups.
>>>>
>>>> rgds,
>>>> toomas
>>>>
>>>>
>>>>>
>>>>> On Mon, Aug 4, 2025 at 3:54 PM Atiq Rahman <atiqcx at gmail.com> wrote:
>>>>>
>>>>>> Hi John,
>>>>>> That's very helpful..
>>>>>>
>>>>>> So, even though I choose "Partition the disk (MBR)" on the text
>>>>>> installer, it should work fine on my UEFI System after I set up the pool
>>>>>> using FreeBSD live image.
>>>>>> Right? I get confused since it mentions "MBR" next to it and my
>>>>>> System is entirely GPT, no support for legacy / MBR booting at all (no CSM).
>>>>>>
>>>>>> Have a smooth Monday,
>>>>>>
>>>>>> Atiq
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 15, 2025 at 5:56 AM John D Groenveld via
>>>>>> openindiana-discuss <openindiana-discuss at openindiana.org> wrote:
>>>>>>
>>>>>>> In message <CABC65rOmBY6YmMSB=HQdXq=
>>>>>>> TDN7d1XR+K8m9-__RQPBzhJZeMQ at mail.gmail.com>
>>>>>>> , Atiq Rahman writes:
>>>>>>> >Most likely, I am gonna go with this. It's been a while since I
>>>>>>> last had a
>>>>>>> >Solaris machine. I have to figure out the zpool stuff.
>>>>>>>
>>>>>>> If you create the pool for OI under FreeBSD, you'll likely need to
>>>>>>> disable features with the -d option as FreeBSD's ZFS is more feature
>>>>>>> rich.
>>>>>>> <URL:
>>>>>>> https://man.freebsd.org/cgi/man.cgi?query=zpool-create&apropos=0&sektion=0&manpath=FreeBSD+14.3-RELEASE+and+Ports&arch=default&format=html
>>>>>>> >
>>>>>>>
>>>>>>> Once you get OI installed on your OI pool, you can enable features:
>>>>>>> <URL:https://illumos.org/man/7/zpool-features>
>>>>>>>
>>>>>>> John
>>>>>>> groenveld at acm.org
>>>>>>>
>>>>>> Hello!
>>>>
>>>> You can install to an existing pool created with FreeBSD, be shure to
>>>> use the option "-d" as "zpool create -d <newpool> <partition> " to disable
>>>> additional ZFS features, see Details here:
>>>>
>>>>
>>>> https://man.freebsd.org/cgi/man.cgi?query=zpool-create&sektion=8&apropos=0&manpath=FreeBSD+14.3-RELEASE+and+Ports
>>>>
>>>> And an EFI partition should be there, too.
>>>>
>>>> HTH,
>>>>
>>>> Stephan
>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openindiana.org/pipermail/oi-dev/attachments/20250818/e4fbcdee/attachment-0001.html>
More information about the oi-dev
mailing list