<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article 
        PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
        "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article>
<para>A chinese translation is (currently) located here:
<ulink url="http://my.opera.com/hxf_prc/homes/gnu/win2linstall-cn.html">http://my.opera.com/hxf_prc/homes/gnu/win2linstall-cn.html</ulink></para><variablelist>
<varlistentry>
<term>
<varname>The challenge</varname></term>
<listitem>
<para>You are in front of a working, networked machine and want to install
your favorite GNU/Linux distribution on it. <emphasis role="strong">Unfortunately, you don't
have any CD, floppy, USB-key, no nothing at hand. Fortunately, you don't
need any one of them.</emphasis></para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>The trick</varname></term>
<listitem>
<para>Copy the (small) Linux installer on a hard disk and run it from your
previous operating system. Finish using the network. That's all.
In some cases you can substitute the network by a (big) hard disk if
your network is not good.</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>The even better trick</varname></term>
<listitem>
<para>Jordi Massaguer i Pla is developing <ulink url="http://sourceforge.net/projects/instlux">instlux</ulink> , a sofware
automating most of the steps below. Instead of hunting all across
the internet for a bunch of files, now you just have to download
<literal>instlux</literal>, run it and reboot. It's currently working for OpenSUSE 10
and Ubuntu breezy 5.X. Since you are now rushing to <literal>instlux</literal> to
escape the reading of this boring document, let me just remind you
to <emphasis role="strong">backup your data</emphasis> before doing <emphasis>anything</emphasis>!</para></listitem>
</varlistentry>
</variablelist>
<variablelist id="instlux">
<varlistentry>
<term>
<varname>Note:</varname></term>
<listitem>
<para>This document is focused on <emphasis role="strong">Microsoft Windows</emphasis> as the pre-existing
operating system, but many things still apply if you start from
something else. You'll just have to &quot;translate&quot; a bit. As a bonus, the
&quot;translation&quot; will probably be shorter and easier. You may even find
some bits of this document useful if you start with no pre-existing 
operating system at all and want to <ulink url="http://syslinux.zytor.com/pxe.php">boot your machine from the
network</ulink>.</para></listitem>
</varlistentry>
</variablelist>
<variablelist id="boot-your-machine-from-the-network">
<varlistentry>
<term>
<varname>Note 2:</varname></term>
<listitem>
<para>This document is (too) long because it covers many different
cases/configurations/linux distributions. But most people will only
need to read not even 1/3 of it to get the job done. Intensive use
of hyper-links and tables of contents is recommended.</para></listitem>
</varlistentry>
</variablelist>
<para>Official location:
<ulink url="http://marc.herbert.free.fr/linux/win2linstall.html">http://marc.herbert.free.fr/linux/win2linstall.html</ulink></para><itemizedlist>
<listitem>
<para><link linkend="life-of-a-linux-installer">Life of a Linux installer</link></para></listitem>
<listitem>
<para><link linkend="why-do-this">Why do this ?</link></para></listitem>
<listitem>
<para><link linkend="preparing-downloading">Preparing &amp; downloading</link></para></listitem>
<listitem>
<para><link linkend="loadlin-or-grub-for-nt">Loadlin or GRUB for NT?</link></para></listitem>
<listitem>
<para><link linkend="distribution-specifics">Distribution specifics</link></para></listitem>
<listitem>
<para><link linkend="miscellaneous-links">Miscellaneous links</link></para></listitem>
</itemizedlist>
<section id="life-of-a-linux-installer">
<title>Life of a Linux installer</title>
<para>Almost all Linux installers I know work the same. They use one of the
numerous ways your PC has available to boot to load in memory two files:
a Linux kernel, and an initial (root) filesystem containing the
minimal files needed for a tiny GNU/Linux system and the
actual installer program.  This very first filesystem is also
located in memory (RAM) thanks to a technique called... &quot;ramdisk&quot;.</para><para>The Linux kernel and the INITial RamDisk (initrd) are typically pulled
from the CD or the floppys used to boot. <emphasis>But they are also two
relatively small files easy to download</emphasis> and save on the hard disk
of your networked PC.</para><para>After booting, the task of the distribution installer is basically to put
a whole lot of software packages on your hard disk.  These packages
are also typically pulled from a CD or DVD, but if you have a high
speed network connection, <emphasis>it is much more convenient and sometimes
even faster to download them directly from the network</emphasis>.  Moreover,
this way you download only the packages you need, as opposed to
downloading a whole CD image (so it may be even faster).</para><para>So, if your machine is running Windows and connected to the some
GNU/Linux distribution mirror, and thanks to a tool called <link linkend="loadlin">Loadlin</link> or
<link linkend="grub-for-nt">GRUB for NT</link> <emphasis role="strong">you don't need any removable media to install Linux;
you can do it without moving your hands off the keyboard</emphasis>. Why did
not you hear this before? Because the procedure detailed below is a
bit more complex than &quot;stick the CD in and press the button&quot;, so it's
too complex for basic users. But faster and more convenient in many
cases. There is absolutely nothing revolutionary below, actually many
hackers know this already. It is even documented in the dark corners
of the installation manual of some distributions.  But since you
absolutely <emphasis>not</emphasis> need to be a hacker to achieve this, I wrote this
document to help any sysadmin or advanced user do it <emphasis>quickly</emphasis> and
<emphasis>easily</emphasis>.</para></section>
<section id="why-do-this">
<title>Why do this ?</title>
<itemizedlist>
<listitem>
<para>your laptop doesn't have a CD or a floppy drive.</para></listitem>
<listitem>
<para>your floppy drive has died (buried in dust) and you do not have a CD-burner/blank CD-ROM at hand</para></listitem>
<listitem>
<para>burning a CD or writing floppies is boring and takes time. Moreover,
floppies are too small (you usually need at least two of them) and
unreliable. And you keep losing this *%$&amp; install CD every time.</para></listitem>
<listitem>
<para>you frequenly install Linux, and want the latest installer each
time, without wasting a blank CD each time.</para></listitem>
<listitem>
<para>you can customize and test the Linux installers quickly and easily</para></listitem>
<listitem>
<para>for some people, the network is faster than a CD-ROM. Especially considering
the &quot;medium swapping&quot; time. And since you'll have
to use the network anyway (to download security updates) why not get completely
rid of all these CDs and their obsolete packages?</para></listitem>
<listitem>
<para>you need a lot of different kernels/installers (for different machines)
and do not want to burn a CD for each combination</para></listitem>
<listitem>
<para>your installer image can be as big as your hard disk allows it</para></listitem>
<listitem>
<para>of course your old PC does not boot from USB. It does not even have
an USB port.</para></listitem>
<listitem>
<para>Come on, transfering CDs through a network is ugly. Be serious, simply transfer the
files inside.</para></listitem>
<listitem>
<para>you want to show off</para></listitem>
<listitem>
<para>it's fun</para></listitem>
</itemizedlist>
</section>
<section id="preparing-downloading">
<title>Preparing &amp; downloading</title>
<para>The installers of some distributions provide nice graphical disk
partitioning utilities, but you may prefer to prepare your disk
earlier using some Windows-based disk manager. It's up to you and <ulink url="http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html#distro">your
distro</ulink>.</para><variablelist id="your-distro">
<varlistentry>
<term>
<varname>Warning:</varname></term>
<listitem>
<para>Partitioning is really a risky operation.
You <emphasis>really</emphasis> should backup all your data off your hard disk before that.
This warning is off-topic (you have to re-partition your disk
whatever your install media is), but was added because of its
importance and by &quot;popular demand&quot;. In particular, there has been
recently an infamous partitioning bug making the partition table incorrect and
thus preventing you to boot Windows afterwards. This bug is due to
an incompatibility between the linux kernel version 2.6 and the
partitioning tool &quot;parted&quot; or similar, versions less than 1.6.12.
Have a look at <ulink url="http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html#troubleshoot">this FAQ</ulink> for more information. From there:
&quot;Known major distributions having this problem are but not limited to
Mandrake 10, SUSE 9.1, Fedora 2.&quot;</para></listitem>
</varlistentry>
</variablelist>
<para id="this-faq">Now the very first thing you need to look for and download are the
Linux <literal>kernel</literal> and <literal>initrd</literal> (INITial RamDisk) files of the target
distribution.  Finding these files may take a while, since the
documentation usually insists that you use a CD or floppy image
instead (that's one of the reason I wrote this page).
I have compiled this information for most major distributions below.</para><para>Then you need to find out the distribution-specific, <emphasis>tuning options</emphasis>
that the bootloader (GRUB or Loadlin, see next section) will pass to
the kernel at boot time. These options are needed to tune the kernel
or the installation process to your machine or to your
taste. Sometimes none is required, sometimes the kernel will not boot
your machine or the installer will not run without some of them. There
is usually some <literal>isolinux.cfg</literal> text file located next
to the <literal>kernel</literal> and <literal>initrd</literal> files. Open it: the tuning
options are inside. If you have some odd hardware that linux has
a hard time to detect/initialize, you may need to add a few tuning
options specific to your machine (whether you install with a
removable or not). Check the <ulink url="http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html">BootPrompt HOWTO</ulink> about these issues.</para><para id="bootprompt-howto">Now have a look at the <link linkend="distribution-specifics">distribution specifics</link> section below to
gather the relevant information and come back here.</para></section>
<section id="loadlin-or-grub-for-nt">
<title>Loadlin or GRUB for NT?</title>
<para>The main technical issue is booting the first Linux kernel and its
initial ramdisk filesystem. This section is mostly oriented towards
Windows users, but can be easily simplified for other operating systems.</para><para>If you use <emphasis role="strong">Windows95 or 98</emphasis> you are lucky because you can run DOS, and 
there is a simple
DOS tool able to boot Linux and the installer without even rebooting
the hardware. This tool is Loadlin, and you should now move to the
<link linkend="loadlin">Loadlin section</link>.</para><para id="loadlin-section">If you use <emphasis role="strong">Windows NT/2000/XP</emphasis>, Loadlin will not work because you don't
have DOS, and Windows will not let Loadlin take full control of the
system. One possibility was to make a <ulink url="freedos_no_removable.html">quick installation of FreeDOS</ulink>
and launch Loadlin from there. It has been displaced by the brand new
and much more convenient <link linkend="grub-for-nt">GRUB for NT</link>.</para><para id="quick-installation-of-freedos"><emphasis role="strong">Windows ME</emphasis> is unfortunately a very special case. It has DOS and
thus the ability to run 
Loadlin (in the so-called &quot;real-mode&quot;), but Microsoft has decided to hide it to
&quot;motivate&quot; programmers to give it up. So you can either try to adapt the
Windows NT/2000/XP instructions (using GRUB for DOS instead of GRUB
for NT), or you can first <ulink url="freedos_no_removable.html">install FreeDOS</ulink> to run <citetitle>Loadlin</citetitle>, but the
easiest way is probably to &quot;unhide&quot; DOS and get
access to real-mode again thanks to some unofficial
patch like <ulink url="http://www.geocities.com/mfd4life_2000/">the one from MFD</ulink>, <ulink url="http://www.overclockers.com.au/techstuff/a_dos_me/">Dosfix</ulink> or <ulink url="http://www.dewassoc.com/support/winme/real_dos.htm">Dew associates</ulink>.
<ulink url="http://www.google.com/search?q=windows+me+real+mode">Search google</ulink> for more.
Disclaimer: I know absolutely nothing about these patches.</para><section id="grub-for-nt">
<title>GRUB for NT</title>
<para>The new GRUB for NTLDR (NT LoaDeR)
allows you to run the powerful <ulink url="http://www.gnu.org/software/grub/">GNU GRUB</ulink> bootloader directly from
Windows NT/2000/XP in just two easy steps. Thanks to <ulink url="http://www.blogbus.com/blogbus/blog/diary.php?diaryid=317185">Wang Kebo</ulink> for
the tip, and congratulations to &quot;Tinybit&quot; for making GRUB runnable
directly from NT/2000/XP. This software is currently under development
so be careful, make backups <footnote id="b" label="b">
<para>since you are installing a new system, you should do that anyway.</para></footnote>, and keep in mind that some
documentations (including this one) may be slightly out-of-date. If
GRUB for NT does not work with your hardware, you can try the old (and
long) <ulink url="freedos_no_removable.html">FreeDOS technique</ulink>, then follow the <link linkend="loadlin">Loadlin</link> instructions.</para><para id="freedos-technique">Actually GRUB for NTLDR can be found inside the larger <ulink url="http://grub4dos.freespaces.com/">GRUB_for_DOS</ulink>
software package, so download it and unzip it.  There are only two
files relevant to Windows NT/2000/XP inside the package: <literal>grldr</literal> and
a sample <literal>boot\grub\menu.lst</literal>; the rest of the files is for DOS and
useless for us. If the server is not responding (quite often),
you can try to go the (not much more responsive) <ulink url="http://grub.linuxeden.com/">GRUB for DOS scratchpad</ulink>.
This one usually holds a recent, bare <literal>grldr</literal> file.</para><para id="grub-for-dos-scratchpad">A last alternative is to connect to sourceforge servers to
download <ulink url="http://grub4dos.sourceforge.net/">WINGRUB</ulink>, a graphical interface for GRUB for DOS. You don't
<emphasis>have to</emphasis> use this WINGRUB graphical interface, you can just extract
and use the <literal>grub\grldr_pNN</literal> file found inside its package.</para><para id="wingrub">To run GRUB from Windows' bootloader, copy <literal>grldr</literal> to the directory
<literal>C:\</literal>. Append the following line to your <literal>C:\boot.ini</literal> file:</para><programlisting>
C:\grldr=&quot;Start GRUB&quot;</programlisting>
<para>Oh wait, by default this file is hidden, read-only, system and
fireproof. To remove all that, run: <literal>attrib c:\BOOT.INI -s -h -r</literal>
beforehand. Afterwards the following command may help you sleep
better: <literal>attrib c:\boot.ini +s +h +r</literal>. Check that the timeout option
is not set to a too low number of seconds. Back up this file before
fiddling more with it; making your machine un-bootable is really
not a pleasant experience. Depending on your version of Windows, there
may also be some tools available to help you edit more safely the
<literal>boot.ini</literal> file. Try for instance <literal>msconfig</literal> or
<literal>bootcfg</literal>. Maybe even the experimental <ulink url="http://grub4dos.sourceforge.net/">WINGRUB</ulink>. Google can help you
a lot here.</para><para>Then you have to find out which is the <emphasis>first primary partition</emphasis> of
your hard drive (this may probably be simply <literal>C:</literal> for you). Use the
Windows Disk Administrator or any other disk partitioning tool to find
that. That's because by default, <literal>grldr</literal> is configured to look for
its configuration file <literal>\boot\grub\menu.lst</literal> on the first primary
partition of your disk.  Let me call this partition <literal>F:</literal> (like
&quot;First&quot;), please substitute by the drive letter appropriate for
you. To get a correctly located <literal>menu.lst</literal> template, you can just
copy the whole <literal>boot\</literal> directory provided in the GRUB for DOS
package to <literal>F:\boot</literal>. Or you can create an empty
<literal>F:\boot\grub\menu.lst</literal> by hand. Now also put a copy of the <link linkend="distribution-specifics">two
Linux installer files of your choice</link> inside this <literal>F:\boot</literal>
directory. Finally to enable your Linux installer in GRUB's menu, edit
the file <literal>F:\boot\grub\menu.lst</literal> adding a paragraph similar to this
one:</para><programlisting>
title My Linux installer of choice
kernel   (hd0,0)/boot/your_linux_kernel_filename   distribution_specific_options
initrd   (hd0,0)/boot/your_ramdisk_filename</programlisting>
<para>You have to replace <literal>your_linux_kernel_filename</literal>,
<literal>your_ramdisk_filename</literal> and 
<literal>distribution_specific_options</literal> according the <link linkend="distribution-specifics">Distribution
specifics</link> section. Do <emphasis>not</emphasis> include the
<literal>initrd=your_ramdisk_filename</literal> part in 
<literal>distribution_specific_options</literal> (cause it's already in the last of the
3 lines just above).</para><para id="two-linux-installer-files-of-your-choice">Update: starting from version 0.4.0pre4, <literal>grldr</literal> will now only look
for <literal>F:\menu.lst</literal> and not for <literal>F:\boot\grub\menu.lst</literal> anymore.</para><para>Now just reboot and <link linkend="game-over">install your favorite Linux distribution</link>!</para><para>If GRUB does not display the menu, or complains it cannot mount the
partition or find the linux kernel file, it's probably just a partition
numbering bug/issue. To solve it, use GRUB's command-line (enter 'c' if
you are in GRUB's menu), and type: <literal>find /boot/your_linux_kernel_name</literal>.</para><para>If GRUB does not work at all, you can try a different version of
<literal>grldr</literal> from <ulink url="http://grub4dos.freespaces.com/">GRUB_for_DOS</ulink> server. Or <ulink url="http://www.geocities.com/lode_leroy/grubinstall/">Lode Leroy's version of GRUB
for NT</ulink>, which is slightly more complex to install, but better
documented. Or try to <ulink url="freedos_no_removable.html">install FreeDOS</ulink>. 
Finally <link linkend="feedback">send me an email</link> telling me how it went.</para></section>
<section id="loadlin">
<title>Loadlin</title>
<para>Loadlin is a great, old tool able to boot a Linux kernel from DOS
without rebooting the hardware. It can be downloaded from <ulink url="http://elserv.ffm.fgan.de/~lermen/">here</ulink>. Use
the latest version (1.6c at this time). Download it in the same directory as your
Linux files (it will make you life easier). There are a lot of files to
download from the Loadlin web site but you really just
need <ulink url="ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/update-1.6c/">loadlin.exe</ulink> (which is unconveniently compressed in
<ulink url="ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/update-1.6c/loadlin.exe.gz">loadlin.exe.gz</ulink> for some unknown reason <footnote id="z" label="z">
<para>If you have some trouble decompressing <literal>.gz</literal> files, check
<ulink url="http://www.gzip.org/">http://www.gzip.org/</ulink>. To extract <literal>.tar</literal> files (<literal>.tgz</literal> is a shortcut for <literal>.tar.gz</literal>),
you will probably need WinZip or PowerZip or similar.</para></footnote>). You can also find
uncompressed versions by poking around most distributions (but be careful,
they may be outdated).</para><variablelist id="one-copy-here-by-debian">
<varlistentry>
<term>
<varname>Windows 95/98</varname></term>
<listitem>
<para>Choose &quot;Reboot in MS-DOS mode&quot; in the shutdown menu. You can also
use the startup menu, pressing F8 at boot (Press Ctrl for 98/ME),
and choose &quot;command prompt only&quot;.</para></listitem>
</varlistentry>
<varlistentry>
<term>
<varname>Windows ME</varname></term>
<listitem>
<para>See <link linkend="loadlin-or-grub-for-nt">above</link>.</para></listitem>
</varlistentry>
</variablelist>
<para id="above">Now <literal>cd</literal> in the directory where you downloaded <literal>LOADLIN.EXE</literal>, the Linux
kernel and initrd files, and finally start the magic command:</para><programlisting>
loadlin  name_of_kernel  initrd=name_of_initrd  distribution_specific_options</programlisting>
<para>This may range from the simple: <literal>loadlin linux.bin initrd=root.bin</literal>
to the more complex: <literal>loadlin vmlinuz initrd=initrd.gz root=/dev/ram
ramdisk_size=10000 devfs=mount,dall</literal>. Extra options at the end of the
command are passed from Loadlin to the Linux kernel. Unfortunately,
every distribution has its specific tuning options. Find the one you
need in the <link linkend="distribution-specifics">distribution specifics</link> section.</para><para>Loadlin is not maintained anymore. If it fails for some reason, you
can try <ulink url="http://grub4dos.freespaces.com/">GRUB_for_DOS</ulink> instead. The only usage difference is that you
have to put the loadlin command line arguments above in a <literal>menu.lst</literal>
configuration file instead, then run a bare <literal>GRUB.EXE</literal>.  Write this
<literal>menu.lst</literal> GRUB configuration file the same way described in the
<link linkend="grub-for-nt">GRUB for NT</link> paragraph (skip the <literal>grldr</literal> related
instructions). Also have a look at the example <literal>menu.lst</literal> file
shipped.</para></section>
</section>
<section id="game-over">
<title>Game over ?</title>
<para>At this point you should see the greetings of the installer. From now
on, just follow the regular documentation of your
distribution. Obviously the very first thing you need to do now is to
configure and make the net work, in order to connect to the nearest
mirror for your distribution. The only remaining issue you may
encounter is making work this brand new network interface (yes, the
one you bought without checking its Linux compatibility first). Most
installers allow you to load additional drivers before going on. Use
this feature to try to find and load the appropriate driver in case
your network interface does not appear in the installer.</para><para>If the installer is not able to make your network interface work, an
alternative is to download the ISO image of the first CD, because some
installers are also able to get their stuff from a CD image on the
hard disk (check the installation manual of your distribution). You
don't get the benefit of <emphasis>not</emphasis> downloading the first CD, but you still
don't need any removable media nor drive.</para><para>You should now move to the regular installation manual provided by
your distribution. In particular, you will have to decide how you boot
your new GNU/Linux system (as opposed to boot its installer). If you
used <link linkend="grub-for-nt">GRUB for NT</link> to boot the installer, you perfectly can re-use it
to permanently boot the installed system. When your installer asks if
you want to &quot;make your system bootable&quot;, just answer no, and carefully
write down instead the location of the kernel and (optional) initrd
image it would have configured, as well as the location of your boot
partition. Go back to Windows, and use these informations to
re-configure GRUB for NT. You are done. I don't want to make this
document too long and off topic by providing more details about this;
all you need you know should be in the installation manual of your
distribution and in <ulink url="http://www.gnu.org/software/grub/">GRUB's documentation</ulink>. There are countless ways
to &quot;chainload&quot; bootloaders. To decide which is the best one for you,
also have a look at <ulink url="http://www.xs4all.nl/~lennartb/bootloaders/">Linux Boot Loaders Compared</ulink> and
at this nice <ulink url="http://www.winntmag.com/Articles/Index.cfm?IssueID=62&amp;ArticleID=3952">NT boot process article</ulink>. Don't forget to google too!</para></section>
<section id="distribution-specifics">
<title>Distribution specifics</title>
<para>You will find in this section the informations specific to each distribution:</para><orderedlist>
<listitem>
<para>where you can get the two installer files needed, that is: a
Linux kernel and  its <literal>initrd</literal> initial ramdisk.</para></listitem>
<listitem>
<para>the distribution-specific options you will have to give to
<link linkend="loadlin">Loadlin</link> or <link linkend="grub-for-nt">GRUB for NT</link>  to tune the kernel and installer. Some
distributions do not need any options at all. So unless some are
mentioned do assume there are none.</para></listitem>
<listitem>
<para>A direct link to the installation manual (when I could find it online).</para></listitem>
</orderedlist>
<itemizedlist>
<listitem>
<para><link linkend="debian-sarge">Debian Sarge</link></para></listitem>
<listitem>
<para><link linkend="mandriva">Mandriva</link></para></listitem>
<listitem>
<para><link linkend="red-hat-fedora-core">Red Hat Fedora Core</link></para></listitem>
<listitem>
<para><link linkend="slackware">Slackware</link></para></listitem>
<listitem>
<para><link linkend="suse-linux">SuSE Linux</link></para></listitem>
<listitem>
<para><link linkend="ubuntu">Ubuntu</link></para></listitem>
<listitem>
<para><link linkend="gentoo">Gentoo</link></para></listitem>
</itemizedlist>
<section id="debian-woody">
<title>Debian woody</title>
<blockquote>
<para>The kernel binary is called here <literal>linux.bin</literal> and the initrd is called <literal>root.bin</literal>.
There are a couple of different flavours to choose from, just follow
the instructions in the <ulink url="http://www.debian.org/releases/woody/i386/ch-install-methods.html#s-kernel-choice">Debian Installation Manual</ulink>.</para></blockquote>
<blockquote id="debian-installation-manual">
<para>If you have some uncommon hardware, also download and extract
<literal>drivers.tgz</literal> <footnoteref linkend="z"/>, it contains many Linux drivers.</para></blockquote>
<!-- http://ftp.fr.debian.org/debian/dists/woody/main/disks-i386/current/ est proposé automatiquement en woody -->
</section>
<section id="debian-sarge">
<title>Debian Sarge</title>
<blockquote>
<para>From the <ulink url="http://www.debian.org/releases/sarge/debian-installer/">debian installer web site</ulink> click on &quot;other boot images&quot;
at the bottom of the list.  Then choose either &quot;netboot&quot; or
&quot;hd-media&quot;. You need at least one <literal>vmlinuz</literal> (or <literal>linux</literal>) kernel
and one <literal>initrd.gz</literal> file from the same subdirectory. If you intend
to install everything from the network, prefer the &quot;netboot&quot;
image. For more information concerning the different debian initrd
images, check this page of the <ulink url="http://www.debian.org/releases/sarge/i386/ch05s01.html#boot-initrd">Debian Installation Guide</ulink>.</para><para>You can also give a try to a 2.6 kernel if you have recent
hardware and suspect you need cutting edge drivers (especially check
your network interface).</para></blockquote>
<blockquote id="debian-installation-guide-newer">
<para>The tuning options for Loadlin or GRUB can be found in the <literal>netboot/pxelinux.cfg/default</literal>
text file. Don't trust the outdated ones from the <ulink url="http://www.debian.org/releases/sarge/i386/ch05s01.html#boot-initrd">Debian Installation Guide</ulink>.
They look like this:
<literal>ramdisk_size=10934 root=/dev/rd/0 devfs=mount,dall rw  --</literal></para></blockquote>
<!-- des tonnes de mirroirs sont proposés par sarge en menu -->
</section>
<section id="mandriva">
<title>Mandriva</title>
<section id="tested-with-versions-9-2-and-10-0">
<title>Tested with versions 9.2 and 10.0</title>
<blockquote>
<para>Go to the <ulink url="http://www.mandriva.com/downloads/mirrors/">Mandriva download page</ulink>, and pick up from the list a mirror
close to you. Once you are browsing your mirror of choice, try to find
a directory similar to this one:</para><programlisting>
ftp://ftp.mymirror.mycountry/blablabla/MandrivaLinux/official/10.0/i586/</programlisting>
<para>Please note there is <emphasis>no</emphasis> <literal>iso</literal> subdirectory in the path above.
Carefully write down this exact network location (protocol://server/direc/to/ries)
because you will need it later.
The Linux kernel (<literal>vmlinuz</literal>) and initrd (<literal>all.rdz</literal>) files you
need are hidden in the subdirectroy <literal>isolinux/alt0/</literal> <footnote id="m" label="m">
<para>alt0 is the default kernel. For Mandriva 10.0 this is Linux
2.6.xx (and alt1 is 2.4.xx). Thanks to Offer Kaye for the tip.</para></footnote>.</para><para>The installer will ask you the exact network location of
your mirror (server + directory), so keep this information at hand.
The directory should end like this:
<literal>___/MandrivaLinux/devel/community/i586</literal>. If you leave login and
password blank the installer will figure out you want to access an
<emphasis>anonymous</emphasis> FTP server.</para><para>The tuning options can be
found in the file <literal>___/i586/isolinux/isolinux.cfg</literal>. If you have no
clue just pick up the first, default &quot;append&quot; line. The
<literal>ramdisk_size=xxx</literal> part is especially required. On the other hand,
remove the <literal>automatic=method:cdrom</literal> part if you want to install
from the network.</para><para>To help you complete the installation, you can find online most
<ulink url="http://www.mandriva.com/community/users/documentation/">Mandriva's documentations</ulink>. They feature the &quot;Installing
Mandrakelinux&quot; chapter.</para></blockquote>
<!-- my_mirror ftp://ftp.free.fr/mirrors/ftp.mandrake-linux.com/MandrivaLinux/official/10.0/i586/
my_mirror ftp://linux.ups-tlse.fr/MandrivaLinux/official/iso/10.0/i586 
BUG: if the DNS server returns a not FQDN the installer crashes
``install exited abnormally, :-( - - received signal 11``) -->
</section>
<section id="mandriva-10-1-and-2006-0">
<title>Mandriva 10.1 and 2006.0</title>
<para>The good thing that comes with version 10.1 is that you don't need
anymore to write down the mirror address, because you can select it
from a list! (Thanks to John Keller for the tip). Even better with
2006.0: the directory is now set automagically.</para></section>
</section>
<section id="red-hat-fedora-core">
<title>Red Hat Fedora Core</title>
<blockquote>
<para>Choose a mirror from the <ulink url="http://fedora.redhat.com/download/mirrors.html">list of Fedora mirrors</ulink>. Then try to locate
a directory similar to this one:</para><programlisting>
ftp://ftp.mymirror.mycountry/blabla/fedora/linux/core/3/i386/os/</programlisting>
<para>From here, download the two files <literal>isolinux/vmlinuz</literal> and <literal>isolinux/initrd.img</literal>
Same warning as for <link linkend="mandriva">Mandriva</link>: keep the exact network location of your
mirror (server + directory) at hand. You will need something ending with:
<literal>___/fedora/linux/core/3/i386/os</literal></para><para>For upcoming Fedora versions, simply substitute <literal>___/core/3/i386/os</literal> by
<literal>___/core/test/X.Y/i386/os</literal> or alike.</para><para>Tuning options can be found in the <literal>isolinux/isolinux.cfg</literal> text
file.</para><para><ulink url="http://fedora.redhat.com/projects/docs/">Fedora's installation manual</ulink> is currently under works. Meanwhile,
it is recommended to use the previous <ulink url="http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/install-guide/">Red Hat 9 Installation Guide</ulink></para></blockquote>
<!-- my_mirror ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/core/3/i386/os -->
<!-- 0.962814 192.168.0.105 -> ftp.proxad.net FTP Request: USER anonymous
1.027397 ftp.proxad.net -> 192.168.0.105 FTP Response: 230 Login successful.
1.027507 192.168.0.105 -> ftp.proxad.net FTP Request: PASS rhinstall@
1.087954 ftp.proxad.net -> 192.168.0.105 FTP Response: 500 Unknown command. -->
<!-- my_mirror ftp://ftp.crihan.fr/mirrors/fedora.redhat.com/fedora/linux/core/ -->
</section>
<section id="slackware">
<title>Slackware</title>
<para>Installing the Slackware distribution without any removable media is
less convenient than the other distributions mentioned here, because
it features no package management tool able to get and install
packages directly from the network. Packages have to be found on some
file-system.  Nevertheless, it's possible (and somewhat
<ulink url="http://www.slackware.com/faq/do_faq.php?faq=installation">documented</ulink>); you just have to find some additional free space, for
instance in some existing windows FAT partition, and pre-download
there a minimal set of packages to give to the installer when it will
ask for it. The minimal set of packages to get a working and networked
Slackware system weighs just less than 50Mo (small is beautiful,
isn't it?)</para><!-- variante un peu différente, bizarre... plus ancienne ? -->
<!-- http://mirror.switch.ch/ftp/mirror/slackware/slackware-10.0/FAQ.TXT, Q2 et Q3 -->
<para>First pick up a <ulink url="http://www.slackware.com/getslack/">Slackware mirror</ulink> close to you. There is a kernel in
each one of the subdirectories of
<literal>path/to/your/mirror/slackware-10.0/kernels/</literal>. To choose the more
appropriate for your machine, get a clue from the excellent
<ulink url="http://www.slackware.com/install/bootdisk.php">Installation Help</ulink>. Most PCs will be fine with the basic kernel
<literal>slackware-10.0/kernels/bare.i/bzImage</literal>.  Then download the
<literal>initrd</literal> image of the installer from here:
<literal>slackware-10.0/isolinux/initrd.img</literal></para><para id="installation-help">Finally you need to get the minimal set of Slackware packages; this is
the so-called <emphasis>A series</emphasis>: all the files located in the directory
<literal>slackware-10.0/slackware/a/</literal>. You also need a couple of packages
from the <emphasis>N series</emphasis> (in <literal>slackware/n</literal>, you guessed it) in order to
use the network immediatly after the installation. From the N series
you need at least
the TCP/IP package (i.e., the 3 <literal>tcpip-0.17-*</literal> files) and some user
application like for instance <literal>lynx</literal>. You may also need the <literal>ppp</literal>
and <literal>rp-pppoe</literal> packages depending on how you connect to the network.
You obviously won't be able to download those 200 files one by one
with your web browser; you need some more advanced application like
for instance a specialized FTP client. An alternative is to download
the whole first CD ISO image on your hard disk as explained in the
<ulink url="http://www.slackware.com/faq/do_faq.php?faq=installation">Installation FAQ</ulink>, but that does mean a long 600Mo download
(including some packages you may not need) instead of just 45Mo for
the whole mandatory A series plus the 2-3 packages of the N series.
Moreover, mounting the CD image from the hard disk during the
installation requires <ulink url="http://www.slackware.com/faq/do_faq.php?faq=installation">a bit more technical skills</ulink>.</para><para id="a-bit-more-technical-skills">The tuning options for Loadlin or GRUB found in the FAQ are:
<literal>rw root=/dev/ram load_ramdisk=1</literal>. No tuning at all was ok for me.</para><para>So far everything is fine, but I stumbled on (only) one potential
issue: at some point the installer asks you which kernel you want to
install on your machine. You probably want to install the one you
carefully picked up for the install and that you are successfully
running right now, but you can't: you have to feed the installer with
some floppy or CD. Else it will install the &quot;default&quot; kernel. If the
default kernel was not able to boot your machine at installation time,
then of course it won't be able to boot it after. This issue is known
and documented again in the <ulink url="http://www.slackware.com/faq/do_faq.php?faq=installation">Installation FAQ</ulink>, but it becomes more
painful in the case of our &quot;non-removable media&quot; scenario.  I suspect
you can fix it by installing your kernel of choice thanks to some
wizardry while the installation is still running (before
rebooting). Or you can try to re-configure <literal>Loadlin</literal> or <literal>Grub</literal> to
boot your new system from Windows/DOS with your particular
kernel. Since Slackware is rumoured to be a hackers' distribution, I
am sure you will quickly find out a solution to this ;-) Don't forget
to dig into its exhaustive documentation.</para></section>
<section id="suse-linux">
<title>SuSE Linux</title>
<blockquote>
<para>Tested with versions 9.1 and 9.2.
Pick up a close mirror from <ulink url="http://www.novell.com/products/suselinux/downloads/ftp/int_mirrors.html">the list</ulink>. Locate a directory similar
to this one:</para><programlisting>
ftp://ftp.mymirror.com/blabla/suse/i386/9.2</programlisting>
<para>Write this (case-sensitive) location down, but instead of
the hostname <literal>ftp.mymirror.com</literal> of the mirror write 
its IP address, cause the installer will not able
to resolve DNS names later (really?). To find out the IP address, just run <literal>ping
ftp.mymirror.com</literal> in a command shell. Finally download these two files:
<literal>boot/loader/linux</literal> and <literal>boot/loader/initrd</literal>.
Another information you have to prepare is the name of the Linux driver for
your network interface, because the SuSE installer will not probe your
hardware. First find out the exact manufacturer and model name of
your networking hardware (for instance using Windows' device
manager), then find the corresponding Linux driver name, using for
instance the big manufacturer list in the <ulink url="http://www.tldp.org/HOWTO/Ethernet-HOWTO.html">Linux Ethernet HOWTO</ulink>.</para></blockquote>
<blockquote id="linux-ethernet-howto">
<para>Ignore the harmless error message about the missing CD. Before configuring
the network, first manually load the drivers you need using &quot;Kernel
modules (hardware drivers)&quot; in the menu. Don't forget the initial
slash &quot;/&quot; in the mirror directory name.</para><para>You can find the tuning options inside the file
<literal>boot/loader/isolinux.cfg</literal>.</para><para>There don't seem to be a freely available installation manual online.</para></blockquote>
<!-- my_mirror http://fr2.rpmfind.net/linux/SuSE-Linux/i386/9.1/ -->
<section id="updates-for-opensuse-10-x">
<title>Updates for openSUSE 10.X</title>
<para>Do not waste your time searching in the 10.X directories found next to
the 9.X directories pointed above but rather reach the new <ulink url="http://en.opensuse.org/Mirrors_Released_Version">openSUSE</ulink>
mirrors. Then click on &quot;Internet Installation Repository&quot;, and follow
the same instructions as above.
You do not have to look for the IP address of your mirror, giving a
hostname is OK. You still need to carefully write down the directory
name, which now looks like this:</para><programlisting>
/opensuse/distribution/SL-10.0-OSS/inst-source</programlisting>
</section>
</section>
<section id="ubuntu">
<title>Ubuntu</title>
<blockquote>
<para>Ubuntu is based on <link linkend="debian-woody">Debian</link> and thus very similar to it.
Choose one of the <ulink url="http://www.ubuntulinux.org/wiki/Archive">Ubuntu mirrors</ulink>. Of course, you do <emphasis>not</emphasis> want a
&quot;release-CD-only&quot; mirror.Then find a directory similar to this one:</para></blockquote>
<blockquote id="ubuntu-mirrors">
<programlisting>
ubuntu/dists/hoary/main/installer-i386/current/images/netboot/ubuntu-installer/i386/</programlisting>
<para>Download the linux kernel <literal>linux</literal> and the ramdisk image <literal>initrd.gz</literal>.</para><para>The tuning options are
in the file <literal>pxeconfig.cfg/default</literal>. They always include:</para><programlisting>
vga=normal ramdisk_size=14972 root=/dev/rd/0 rw --</programlisting>
<para>For expert mode (more
configuration choices), prefix with <literal>DEBCONF_PRIORITY=low</literal>.</para><para>You can find <ulink url="http://www.ubuntulinux.org/wiki/UserDocumentation">installation manuals here</ulink>, as well as a lot of other
documentations.</para></blockquote>
<blockquote id="installation-manuals-here">
<para>Successfully tested with Hoary, Breezy and Dapper.
Mirror layout for the previous &quot;Warty&quot; release was slightly
different but if you want to stay out-of-date you can, it also
tested and works.</para></blockquote>
</section>
<section id="gentoo">
<title>Gentoo</title>
<blockquote>
<para>I finally gave one more shot at Gentoo and it looks like I
succeeded. The dirty trick is simply to fake the CD with some
partition. It's successfully tested with releases 2004.3 and 2005.0.
Gentoo does not <emphasis>directly</emphasis> provide the files needed, so
the following procedure is awkward but is reported to work. It could be a
zillion times simpler if Gentoo made a small packaging (or <emphasis>un-</emphasis> packaging?)
effort. Please do complain to Gentoo maintainers about that, cause I
won't do it myself. I won't either clutter this document with long
instructions dedicated to Gentoo, so only minimum information is
provided below. Sorry but you have to be somewhat familiar with
linux to understand this procedure (since you are installing Gentoo
you are supposed to be anyway :-).
Thanks a lot in advance for <link linkend="feedback">sending me</link> any report,
preferably detailed. Enough disclaimers, time for the real stuff.</para></blockquote>
<blockquote id="sending-me">
<para>Download a release of the minimal LiveCD ISO image (50Mo)
from one of the <ulink url="http://www.gentoo.org/main/en/mirrors.xml">Gentoo mirrors</ulink>. The location looks like this:
<literal>___/releases/x86/2004.3/livecd/install-x86-minimal-2004.3.iso</literal>.
Mount/open this image. If you are using Windows, I suggest the
excellent <ulink url="http://www.daemon-tools.cc/">Daemon Tools</ulink> to do this. Some CD burning software may
also fit. Copy the <literal>isolinux</literal> directory and <literal>livecd.squashfs</literal>
file to the root of some partition used to fake the CD. This partition
does not even have to be empty. You have to know/guess how linux
will name it (e.g.: /dev/hdb5). Do a similar guess for GRUB
(e.g.: (hd0,4)). Do <emphasis>not</emphasis> choose an NTFS partition, unless gentoo ships a
kernel that reads NTFS someday.</para></blockquote>
<blockquote id="daemon-tools">
<para>The kernel is <literal>isolinux/gentoo</literal> and the initrd image is
<literal>isolinux/gentoo.igz</literal>. Get the tuning options from the file
<literal>isolinux/isolinux.cfg</literal>, except you have to change the option
<literal>cdroot</literal> into <literal>cdroot=/dev/hdb5</literal>.</para><para>This trick did not work before the 2004.3 release. Faking the CD with
2004.2 was not possible cause the <literal>cdroot</literal>
option was only a 0/1 toggle at that time (check /linuxrc inside
gentoo.igz). Moreover the 2004.2 kernel was not able to read a FAT
partition.</para><para>Type Ctrl-D to ignore the <literal>fsck /dev/BOOT</literal> failure (it seems the
installer is trying here to check the filesystem of the missing
install CD)
then finish the installation according to the regular
<ulink url="http://www.gentoo.org/doc/en/handbook/">Gentoo installation manual</ulink>. Thanks to Anthony Sheetz for
testing, reporting and explaining some Gentoo tricks to me. Please
send me your report too!</para></blockquote>
<!-- /boot -> mnt/livecd/boot -->
<!-- my_mirror http://gentoo.mirror.sdv.fr/releases/x86/2004.3/livecd/install-x86-minimal-2004.3.iso -->
<section id="updates-for-release-2005-0">
<title>Updates for release 2005.0</title>
<blockquote>
<para>The mirror directory of interest is now called <literal>installcd</literal> instead of
<literal>livecd</literal>. And there is now and additional file to copy:
there must also be an empty <literal>livecd</literal> file at the root of the faked CD.
Thanks to Kristijan Lenac for this 2005.0 fix.</para></blockquote>
</section>
</section>
<section id="unsupported">
<title>Unsupported</title>
<blockquote>
<para>On the 15th of July, I had <ulink url="http://lists.progeny.com/archive/cl-workers/200407/msg00018.html">confirmation</ulink> from a developer of Progeny
that you cannot yet install Progeny this way, but they would like to
in the future.</para></blockquote>
</section>
<section id="others-distributions">
<title>Others distributions?</title>
<blockquote>
<para>Please <ulink url="mailto:Marc.Herbert@free.fr">contribute</ulink>!</para></blockquote>
<!-- comments -->
<!-- grub>kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=10000 devfs=mount,dall -->
</section>
</section>
<section id="miscellaneous-links">
<title>Miscellaneous links</title>
<para>Besides the numerous inline links above, you may find these ones also
interesting.</para><itemizedlist>
<listitem>
<para><ulink url="http://www.control-escape.com/">Control-Escape</ulink>. A gentle introduction to migrating to Linux for newcomers.</para></listitem>
<listitem>
<para><ulink url="http://www.xs4all.nl/~lennartb/bootloaders/">Linux Boot Loaders Compared</ulink></para></listitem>
<listitem>
<para><ulink url="http://www.distrowatch.com/">DistroWatch.com</ulink></para></listitem>
<listitem>
<para><ulink url="http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html">The ntfsresize Frequently Asked Questions</ulink></para></listitem>
</itemizedlist>
</section>
<section id="feedback">
<title>Feedback</title>
<para>Please send any kind of feedback (including english mistakes) to
<ulink url="mailto:Marc.Herbert@free.fr">Marc.Herbert@free.fr</ulink> . I am sure this procedure can be extended,
optimized, automated, etc., so thanks in advance for your
contribution. Since I have not tested this in <emphasis>every</emphasis> configuration
possible, I also welcome simple success reports with your detailed
configuration. Thanks a lot to all the people who already kindly sent
me their feedback and thus helped improve this document.</para><para>Copyright (c) Marc Herbert.
Permission is granted to copy, distribute and/or modify this document
under the terms of the BY-SA 2.0 <ulink url="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons License</ulink>, or
under the terms of <ulink url="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</ulink> Version 1.2,
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.
I would greatly appreciate that you notice me in case you make anything beyond
a personal use of this document.</para><para id="creative-commons-license">$Revision: 4.23 $. Last modified: $Date: 2006/04/22 09:24:08 $.
HTML generated from <ulink url="http://www-106.ibm.com/developerworks/library/x-matters24/">reStructuredText</ulink>.</para><para>There also is an (<ulink url="http://docutils.sourceforge.net/#the-sandbox">experimental</ulink>) <ulink url="win2linstall.docbook">Docbook translation</ulink>. It's
unverified, don't trust it too much.</para><!-- old link reStructuredText: http://docutils.sourceforge.net/docs/user/rst/quickref.html -->
</section>
</article>
