Oh the "Cancel and boot from hard disk" could be on the main menu I suppose!

On 4 July 2017 at 22:45, David Quintana (gigaherz) <gigah...@gmail.com>
wrote:

> I feel like the boot menu is going to be far too busy for the end user.
> I'd go with something closer to
>
> blah blah:
>
>    - Install Now
>    - Try without installing
>    - Show advanced options...
>
> where:
>
>    - Install now -- boots into the graphical installer (no desktop unless
>    you cancel or something)
>    - Try without installing -- boots into livecd desktop (backed by RAM,
>    I guess)
>    - Show advanced options... -- opens a second-level menu with
>    - Text-mode installer
>       - Live boot without Ramdisk
>       - etc.
>
>
>
> On 4 July 2017 at 21:45, Hermès BÉLUSCA-MAÏTO <hermes.belu...@sfr.fr>
> wrote:
>
>> Hello everyone,
>>
>>
>>
>> One of the long-term plan for ReactOS was to have a graphical user-mode
>> interface for the 1st-stage setup, similar to e.g. what may be found in
>> newer versions of Windows (Vista+), as an alternative to our current 
>> 1st-stage
>> setup in text-mode
>>
>> (note that I say “alternative”, not “replacement”, because both of them
>> can live together without fundamental changes to either ReactOS or our ISO
>> images, both of them can share core functionality, and finally because some
>> people may prefer the text-mode either for unattended installations or for
>> low-memory conditions).
>>
>>
>>
>> You can find some information about the 1st-stage GUI setup here:
>> https://reactos.org/wiki/First_Stage_GUI_Setup . In our source code, it
>> can be found in base/setup/reactos/ . Currently only most of the screens
>> have been implemented, while the core functionality is not present. However
>> this functionality can somehow be taken by reusing the source code of
>> USETUP (see my branch https://svn.reactos.org/svn/re
>> actos/branches/setup_improvements/base/setup/ ).
>>
>>
>>
>>
>>
>> Abstract (aka. TL;DR): I explain below the needed changes introduced
>> experimentally in the “setup-improvements” branch, revision 75273, to
>> generate an all-in-one ReactOS bootcd, that includes both the 1st-stage
>> text-mode setup + 1st-stage GUI setup alternative + live-demo
>> functionality. This is meant to replace our currently separated “bootcd” /
>> “livecd” ISOs, where the latter currently do not offer the possibility to
>> install ReactOS. Some currently known potential problems are evoked.
>>
>>
>>
>> Images: Proposed BootCD contents : http://i.imgur.com/EBA6JHd.png ;
>> Proposed Boot Menu : http://i.imgur.com/14n5Ryi.png .
>>
>>
>>
>>
>>
>> Having a 1st-stage GUI setup also means that it’ll also use the
>> already-existing functionality that we offer in our “Live-CD” ISOs.
>> Currently, the “Live-CD” ISOs we provide only allow for demonstration
>> purposes, while the ReactOS installation proper is found in our so-called
>> “Boot-CD” ISOs (which currently only contain text-mode setup). Thus, the 1
>> st-stage GUI setup, as an alternative to the 1st-stage setup in
>> text-mode, means that both ISOs can be merged all in one, and we won’t have
>> to make a distinction between both: they will be able to offer both the 1
>> st-stage in text mode AND a graphical mode (à la “Live-CD”) where it is
>> possible to choose whether to test ReactOS in demo mode, or to install it
>> via the GUI setup.
>>
>> Such an all-in-one ISO capability was already present in the trunk under
>> the name “hybridcd”, but was used only when we built ISO images for the
>> public events where ReactOS participated (FOSDEM, CLT, …). But now, having
>> the setup process both in text mode and in graphics mode, in addition to
>> the Live-CD demonstration capability, really suggests just using the
>> all-in-one ISO and stop doing the “Boot-CD” (aka. only setup) vs. “Live-CD”
>> (aka. only demo) separation. We would just generate only one type of ISO
>> that contains everything.
>>
>>
>>
>> With that in mind, I have committed in my branch “setup_improvements”, in
>> revision 75273 : https://svn.reactos.org/svn/re
>> actos?view=revision&revision=75273 such changes to be able to only build
>> an ISO that contains everything. These changes are minimal, in the sense
>> that I haven’t purposelessly changed the names of the build targets just to
>> be fancy. Such changes may be done later, but not now.
>>
>>
>>
>> The needed changes are the following: First, the build target that will
>> generate the all-in-one CD is called “bootcd”, because this also was the
>> main build target for ISOs before the change. Second, I completely remove
>> the “hybridcd” build target, because its functionality are now absorbed by
>> “bootcd”. Third, the build target “livecd” is reduced to its strict
>> minimum. For the sake of building a RAMDISK boot drive (see comments
>> after), I continue to generate an ISO for “livecd”. But I’ve changed the
>> generated name to “liveimage.iso”, to emphasize the point that it has to be
>> understood as a (virtual) disk image for RAMDISK purposes, not just as a
>> ISO image. Note that I haven’t renamed the build target “livecd” to, say,
>> “liveimage” to reduce my commit changes (such a renaming may be done
>> later). The “livecd” target builds a list of files that need to be present
>> in the image. The generated liveimage.iso is no-more a bootable ISO, I’ve
>> removed inclusion of freeloader + El-Torito boot-sector + the
>> USB-ISO-Hybrid functionality for it.
>>
>> The “bootcd” target has been slightly changed in order to include the
>> liveimage.iso as a file (for RAMDISK), and to also add the contents of this
>> image in a flattened tree within the bootcd iso: the two directories
>> “Profiles” and “reactos”.
>>
>> The 1st-stage text-mode setup is kept, as said before, but its
>> corresponding files + the installation CAB source + the 1st-stage GUI
>> setup application proper goes into a (renamed) directory called “i386”,
>> corresponding to installation files for an i386 installation (technically,
>> 1 per architecture when we’ll have a ReactOS ported to other archs). These
>> files cannot be present in the same “reactos” directory as the ones from
>> the flattened LiveImage, because some of the files are different (smss.exe,
>> registry, etc…) Our FreeLdr knows from where to boot the 1st-stage
>> text-mode (from i386), as well as the Live-demo in graphics mode (from
>> reactos).
>>
>> I need to adjust the code of few setup components for them to stop
>> relying on hardcoded “reactos/” path, and instead use a more “dynamic”
>> (determined at runtime) path.
>>
>>
>>
>> NOTE FOR DEVS/SYSADMINS: The “bootcdregtest” build target, generating the
>> special ISO that is fed to our test bots, remains exactly the same, and the
>> files contained in the generated ISO have not changed.
>>
>>
>>
>> NOTE about the RAMDISK feature: I enabled it so that a user can remove
>> the demo media (CD, …) and reuse the drive for other purposes, while still
>> being able to use ReactOS. Of course this requires a large amount of RAM
>> available. And that’s also why I include the flattened liveimage files so
>> that one can use the demo without the RAMDISK (when few memory is
>> available).
>>
>> As is currently implemented, this makes the ReactOS all-in-one bootcd
>> large (it gains a good 100 MB) due to duplicated space (the flattened
>> files, plus the same inside “liveimage.iso”). I cannot do better (unless
>> ditching either the RAMDISK, or keeping it but not include the flattened
>> files) because ReactOS currently doesn’t have a way to boot from disk
>> images **that are not meant to be a RAMDISK**. The day when this
>> difficulty is removed, a single disk image could be used either as the
>> RAMDISK or the (non-removable) installation.
>>
>> A second remark is that I don’t plan to have the 1st-stage GUI setup
>> available when booting ReactOS in RAMDISK mode because, as a consequence of
>> its current implementation, I would otherwise need to duplicate the
>> installation CAB source in the RAMDISK image too, making it again larger.
>>
>>
>>
>> NOTE about the FreeLdr Boot Menu: Since ReactOS is not that stable
>> currently, we like to boot it in debug mode, and redirect the output to a
>> serial port (usually COM1). However some people don’t have serial ports on
>> real hardware, so we propose to boot with debug output redirected to
>> screen. However this may slow ReactOS down, so we also like to boot ReactOS
>> with debug mode disabled. That’s why I proposed the declination of these
>> boot modes for each ReactOS installation contained in the BootCD
>> (Live+Setup, with or without RAMDISK, and with debug enabled or not). The
>> problem is that it clutters a lot the boot menu. A remedy would be to
>> implement in FreeLdr the functionality of editing **existing** boot
>> entries to change their associated boot options, so that one could add by
>> hand the options to enable (or disable) debugging. This is currently
>> unimplemented. The only implemented feature is to set up a new boot entry
>> on the fly to boot ReactOS afterwards.
>>
>>
>>
>> NOTE for regress-testers: Possible remark that I may hear: “I only care
>> about installing ReactOS (perhaps just in unattended mode) and I don’t care
>> at all about the GUI setup nor about the Live-demo thingie, and your new
>> BootCD is too large. I want to be able to download & use the good-old
>> bootcd for regress-testing.” . So what to do? Since we currently build and
>> store the “bootcdregtest” ISOs, but are not publicly available through our
>> www.reactos.org/getbuilds interface, I would suggest here to make them
>> available to people, so that those who want to quickly DL and/or
>> install/regress-test ReactOS could use these ISOs instead (which are really
>> just the good old BootCDs, but with unattended installation enabled *
>> *and** with our test-suite included). They are not that much large, just
>> a bit more than the old regular bootcd.
>>
>>
>>
>> Please let me know whether you have other 
>> remarks/comments/questions/suggestions/etc…
>> to make the new BootCDs better.
>>
>>
>>
>>
>>
>> Best,
>>
>>
>>
>> Hermès
>>
>> _______________________________________________
>> Ros-dev mailing list
>> Ros-dev@reactos.org
>> http://www.reactos.org/mailman/listinfo/ros-dev
>>
>
>
_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to