Windows based installation of Fedora Linux?

Ago agostino.russo at gmail.com
Thu Sep 13 13:56:34 UTC 2007


Douglas McClendon <dmc.fedora <at> filteredperception.org> writes:

> First, you can pretty much ignore the message you replied to.  Those 
> were rather esoteric issues that would not get in the way of porting wubi.

Yeah, to summarize the hardreboot issues in one sentence: there is not much 
that we can do! If anything, ntfs-3g might be improved, but ntfs-3g author does 
not think there is anything to be done there either (other than fschk...).
 
> But the installers for ubuntu and fedora are quite different.  Nothing 
> that would preclude the porting, but certainly a fair amount of work.

I would encourage to split the backend work from the windows frontend. The 
frontend has to do +/- the same stuff whatever distro you use, so cooperation 
should be more straightforward. I'd be pleased if the wubi frontend code had to 
be used by other distros (feel free to rebrand as you like). Some common tasks 
include:

* Detect all windows settings that may be useful during installation
* Show user interface for the few settings left
* Detect a physical CD and if found copy it to the HD
* If no appropriate physical CD is found, look for an ISO on the HD
* Run the checksum
* Download the ISO if one is not found or checksum is wrong
* Install grub4dos
* Extract initrd/kernel from the ISO and copy it to the HD
* Write preseed/kickseed/younameit
* Add an entry to the windows bootloader
* Create the uninstaller

The only distro-specific piece is the one that writes the preseed/kickseed. It 
should not be too difficulto to make it easy to "swap". The ISOs information is 
embedded in a single text file, so adding/changing ISOs is fairly 
straightforward. Rebranding involves replacing a few bitmap files and editing 
version.nsh. 

As mentioned, if anyone is interested in helping with the frontend code and 
make it distro-neutral, I'd be highly receptive... If instead of nsis you'd 
rather use some cross platform framework (within resaonable size constraints) 
I'd be also quite keen to jump ship.

The backend though is distro-specific, you can have a look at the work involved 
in Ubuntu, and implement something similar within Fedora. I provided the links 
to the relevant Ubuntu files, it might save you some time and at the very least 
should give you a better understanding of the work involved.

> I'm not exactly sure how wubi works.  One way it might work would be to 
> copy the iso of the install cd/dvd to ntfs, then setup a very custom 
> initramfs.  Then setup a bootloader (native windows bootloader, or grub 
> that talks ntfs?) to boot the install-cd-iso-on-ntfs with the custom 
> initramfs.  The custom initramfs would handle the cd-iso-on-ntfs issue, 
> then with an append string, or something more complicated, cause the 
> resulting boot to launch a kickstart installation, that using the above 
> install-to-loop file support, installs to a file on the ntfs.

Something like that, see above. Note that we do not use anymore a custom 
initrd, instead the kernel/initrd is extracted from the ISO and saved to disk. 
Such initrd must accept 2 optional arguments: find_iso and find_preseed, so 
that the initrd can in turn load the ISO (as opposed to load the CD) and the 
preseed file. Then grub4dos is installed, this grub4dos tries first to load an 
installed version of the distro (/distroname/disks/boot), otherwise it tries to 
launch the installer (/distroname/install/boot). 
 
> Though given the differences between ubuntu livecd installer, and fedora 
> livecd installer (slow flexible file based copy from squashfs versus 
> fast less-flexible block based copy from squashed ext3 image), there may 
> be other ways (still using the wubi win32 front end) to install.  I 
> sortof alluded to them in a recent thread prior to this one.  I.e. how 
> my mods to anaconda to support rebootless installation from livecd, 
> could be used for a win32 installer.

I'd be interested to know more about it.

> But independent of that, I'd still recommend that the starting point 
> being (re)adding support to install-to-loop files (on ntfs) to anaconda. 

The equivalent Ubuntu file you really want to look at is partman-auto-loop.
That adds the capabilities of targeting a loopfile to the old-school Ubuntu 
installer. You'd have to implement something similar within anaconda.

Regards,

Ago




More information about the fedora-devel-list mailing list