/[gentoo]/xml/htdocs/doc/en/altinstall.xml
Gentoo

Diff of /xml/htdocs/doc/en/altinstall.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.4 Revision 1.52
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<?xml-stylesheet href="/xsl/guide.xsl" type="text/xsl"?> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/altinstall.xml,v 1.52 2005/04/06 09:39:59 neysx Exp $ -->
3
4<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
5 4
6<guide link="/doc/en/altinstall.xml"> 5<guide link="/doc/en/altinstall.xml">
6
7<title>The Gentoo Linux alternative installation method HOWTO</title> 7<title>The Gentoo Linux alternative installation method HOWTO</title>
8
9<author title="Contributor">
10 <mail link="gerrynjr@gentoo.org">Gerald Normandin Jr.</mail>
11</author>
12<author title="Contributor">
8<author title="Author"><mail link="lordviram@rebelpacket.net">Travis Tilley</mail></author> 13 <mail link="lordviram@rebelpacket.net">Travis Tilley</mail>
9<author title="Contributor"><mail link="davoid@gentoo.org">Faust A. 14</author>
10Tanasescu</mail></author> 15<author title="Contributor">
11<author title="Contributor"><mail link="aliz@gentoo.org">Daniel Ahlberg</mail></author> 16 <mail link="volontir@yahoo.com">Oleg Raisky</mail>
17</author>
18<author title="Contributor">
19 <mail link="luminousit@hotmail.com">Alex Garbutt</mail>
20</author>
21<author title="Contributor">
22 <mail link="alex@openvs.com">Alexandre Georges</mail>
23</author>
24<author title="Contributor">
25 <mail link="vargen@b0d.org">Magnus Backanda</mail>
26</author>
27<author title="Contributor">
28 <mail link="davoid@gentoo.org">Faust A. Tanasescu</mail>
29</author>
30<author title="Contributor">
31 <mail link="aliz@gentoo.org">Daniel Ahlberg</mail>
32</author>
33<author title="Editor">
34 <mail link="swift@gentoo.org">Sven Vermeulen</mail>
35</author>
36<author title="Reviewer">
37 Ken Nowack <!-- antifa@gentoo.org seems out -->
38</author>
39<author title="Editor">
40 <mail link="blubber@gentoo.org">Tiemo Kieft</mail>
41</author>
42<author title="Editor">
43 <mail link="bennyc@gentoo.org">Benny Chuang</mail>
44</author>
45
12<abstract> 46<abstract>
13This HOWTO is meant to be a repository of alternative Gentoo installation 47This HOWTO is meant to be a repository of alternative Gentoo installation
14methods, for those with special installation needs such as lack of a cdrom 48methods, for those with special installation needs such as lack of a cdrom
15or a computer that cant boot cds. 49or a computer that can't boot cds.
16</abstract> 50</abstract>
17 51
52<license/>
53
18<version>0.3</version> 54<version>0.59</version>
19<date>10 September 2002</date> 55<date>2005-02-19</date>
20 56
21<chapter> 57<chapter>
22<title>About this document</title> 58<title>About this document</title>
23<section> 59<section>
24<body> 60<body>
25 61
62<p>
26<p>If the standard boot-from-CD install method doesn't work for you 63If the standard boot-from-CD install method doesn't work for you (or you just
27(or you just don't like it), 64don't like it), help is now here. This document serves to provide a repository
28help is now here. This document serves to 65of alternative Gentoo Linux installation techniques to those who need them.
29provide a repository of alternative Gentoo Linux installation techniques 66Or, if you prefer, it serves as a place to put your wacky installation methods.
30to those who need them.
31Or, if you prefer, it serves as
32a place to put your wacky installation methods. If you have an
33installation method that you yourself find useful, or you have devised an 67If you have an installation method that you yourself find useful, or you have
34amusing way of installing gentoo, please dont hesitate to write something 68devised an amusing way of installing Gentoo, please don't hesitate to write
35up and <mail link="lordviram@rebelpacket.net">send it to me.</mail></p> 69something up and <mail link="antifa@gentoo.org">send it to me.</mail>
36 70</p>
37 71
38</body> 72</body>
39</section> 73</section>
40</chapter> 74</chapter>
41 75
42<chapter> 76<chapter>
43<title>Netboot install</title> 77<title>Booting the LiveCD with Smart BootManager</title>
78<section>
79<body>
80
81<p>
82Download Smart BootManager available from
83<uri>http://btmgr.sourceforge.net/download.html</uri>.
84Linux source or binary format and windows .exe versions are available as well
85as many language packs. However, at this time, the preferred method would be to
86use the binary format, as the source will not compile with newer versions of
87NASM.
88</p>
89
90<p>
91Either compile the package from source or just grab the binary. There are
92several options that can be utilized while creating your boot floppy, as seen
93below.
94</p>
95
96<pre caption="Smart BootManager Options">
97sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
98
99 -t theme select the theme to be used, in which the theme could be:
100 us = English theme de = German theme
101 hu = Hungarian theme zh = Chinese theme
102 ru = Russian theme cz = Czech theme
103 es = Spanish theme fr = French theme
104 pt = Portuguese theme
105
106
107 -d drv set the drive that you want to install Smart BootManager on;
108 for Linux:
109 /dev/fd0 is the first floppy driver,
110 /dev/hda is the first IDE harddisk driver.
111 /dev/sda is the first SCSI harddisk driver.
112 for DOS:
113 0 is the first floppy drive
114 128 is the first hard drive;
115
116 -c disable CD-ROM booting feature;
117
118 -b backup_file backup the data that will be overwritten for
119 future uninstallation;
120
121 -u backup_file uninstall Smart BootManager, should be used alone;
122
123 -y do not ask any question or warning.
124</pre>
125
126<pre caption="Using sbminst to build the boot floppy">
127# <i>sbminst -t us -d /dev/fd0</i>
128</pre>
129
130<note>
131Replace fd0 with your respective floppy device name if yours is different.
132</note>
133
134<p>
135Now simply place the floppy in the floppy drive of the computer you'd like to
136boot the LiveCD on, as well as placing the LiveCD in the CD-ROM and boot the
137computer.
138</p>
139
140<p>
141You'll be greeted with the Smart BootManager dialog. Select your CD-ROM and
142press ENTER to boot the LiveCD. Once booted proceed with the standard
143installation instructions.
144</p>
145
146<p>
147Further information on Smart BootManager may be found at
148<uri>http://btmgr.sourceforge.net/</uri>
149</p>
150
151</body>
152</section>
153</chapter>
154
155<chapter>
156<title>Knoppix Installation</title>
157<section>
158<body>
159
160<note>
161Knoppix is only available for x86 users.
162</note>
163
164<p>
165Booting from the <uri link="http://www.knoppix.org/">Knoppix</uri> LiveCD is a
166way to have a fully functional linux system while you're compiling Gentoo. Tux
167Racer will help you pass the time while you wait for bootstrap.
168</p>
169
170<p>
171Boot from the Knoppix CD. It generally does a really good job of hardware
172detection. Although, you may have to add some boot options.
173</p>
174
175<p>
176By default Knoppix boots into a KDE 3.0 desktop. The first thing I did was open
177a konsole and typed <c>sudo passwd root</c>. This lets you set the root
178password for Knoppix.
179</p>
180
181<p>
182Next, I <c>su</c> to root and typed <c>usermod -d /root -m root</c>. This sets
183user roots home directory to /root (the Gentoo way) from /home/root (the Knoppix
184way). If you do not do this, then you will receive errors when emerging about
185"/home/root: not found" or something to that effect.
186</p>
187
188<p>
189I then typed <c>exit</c> and then <c>su</c> back into root. This loads the
190change that was made with the usermod command. Now create the
191<path>/mnt/gentoo</path> mountpoint using <c>mkdir</c>:
192</p>
193
194<pre caption="Creating the /mnt/gentoo mountpoint">
195# <i>mkdir /mnt/gentoo</i>
196</pre>
197
198<p>
199At this point, you can pick up with the standard install documentation at <uri
200link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=4">part 4</uri>.
201However, when you're asked to mount the proc system, issue the following
202command instead:
203</p>
204
205<pre caption="Bind-mounting the proc pseudo filesystem">
206# <i>mount -o bind /proc /mnt/gentoo/proc</i>
207</pre>
208
209<!--
210 Commenting out due to #78716. If it needs to be restated again, note
211 that some will require to bind-mount it, others don't, and that you have
212 a 50-50 chance of winning the gold strike.
213
214
215<p>
216You will also need to bind-mount the device tree to resolve permission issues
217with various device files.
218</p>
219
220< ! - -
221 If this doesn't seem to work, #71901 mentions the following command:
222 mount -o remount,rw,nosuid /dev/hd* /mnt/hd*
223 before all. Looks weird to me, but if this doesn't work, we might want to try
224 that.
225- - >
226
227<pre caption="Bind-mounting the device tree">
228# <i>mount -o bind /dev /mnt/gentoo/dev</i>
229</pre>
230-->
231
232</body>
233</section>
234</chapter>
235
236<chapter>
237<title>Installing from Stage 1 without network access</title>
238<section>
239<body>
240
241<p>
242Burn a LiveCD iso.
243</p>
244
245<p>
246Get the latest portage snapshot from
247<uri>http://distro.ibiblio.org/pub/linux/distributions/gentoo/snapshots/</uri>
248(or your favorite <uri
249link="http://www.gentoo.org/main/en/mirrors.xml">mirror</uri>). Either place
250this tarball on an existing partition on the computer your are installing to,
251or burn it to a CD.
252</p>
253
254<p>
255Follow all instructions of the Gentoo Installation Handbook up to <c>chroot
256/mnt/gentoo</c> in Chapter 6. If you only have one CD-ROM remember to use the
257<c>docache</c> option while booting so you can unmount the LiveCD and mount
258your portage snapshot CD.
259</p>
260
261<p>
262Open a new console (Alt-F2), we will continue with the Install Doc up to
263running the bootstrap.sh script.
264</p>
265
266<warn>
267Older realeases of the livecd required you to change the password using the
268<c>passwd</c> command, before logging in manually.
269</warn>
270
271<p>
272Go back to the first console (Alt-F1, without chroot) and mount a second CD on
273<path>/mnt/gentoo/mnt/cdrom2</path>. Copy the portage tarball from cdrom2 and
274unpack it to <path>/mnt/gentoo/usr</path>.
275</p>
276
277<pre caption="Mount the snapshot cd">
278# <i>umount /mnt/cdrom</i>
279# <i>mkdir /mnt/gentoo/mnt/cdrom2</i>
280# <i>mount /dev/cdroms/cdrom0 /mnt/gentoo/mnt/cdrom2</i>
281# <i>cp /mnt/gentoo/mnt/cdrom2/portage-$date.tar.bz2 /mnt/gentoo/usr</i>
282# <i>cd /mnt/gentoo/usr</i>
283# <i>tar -xvjpf portage-$date.tar.bz2</i>
284</pre>
285
286<p>
287Switch back to the F2 console. Now if you try to run bootstrap.sh it will fail
288because it won't be able to download any files. We will fetch these files
289somewhere else and put them in /usr/portage/distfiles (on F2 console).
290</p>
291
292<p>
293You need a list of Stage1 packages: glibc, baselayout, texinfo, gettext, zlib,
294binutils, gcc, ncurses plus their dependencies.
295</p>
296
297<note>
298Note that you need the versions of each package synced with your portage tree.
299</note>
300
301<pre caption="Getting the download listing">
302<comment>(Don't forget the 2 in front of the &gt;)</comment>
303# <i>emerge -fp glibc baselayout texinfo gettext zlib binutils gcc ncurses 2&gt; stage1.list</i>
304# <i>mount -t vfat /dev/fd0 /mnt/floppy</i>
305# <i>cp /mnt/gentoo/stage1.list /mnt/floppy</i>
306# <i>umount /mnt/floppy</i>
307</pre>
308
309<p>
310Take the floppy to the computer that has fast access. If you take a look at the
311<path>stage1.list</path> file, you'll see that it provides you with several
312URLs to download. Sadly, it lists several possible URLs for each package as
313well, which isn't what you want. Strip all but one of the URLs first:
314</p>
315
316<pre caption="Stripping URLs">
317<comment>(This script is depending on the output format given by emerge which
318 might change in the future without further notice - use with caution!)</comment>
319# <i>cut -f 1 -d ' ' stage1.list > stage1.download</i>
320</pre>
321
322<p>
323Now use <c>wget</c> to fetch all the listed sources:
324</p>
325
326<pre caption="Use wget to grab your source packages">
327# <i>wget -N -i stage1.download</i>
328</pre>
329
330<p>
331Once you have obtained all the files, take them to the computer and copy them
332to <path>/mnt/gentoo/usr/portage/distfiles</path>. You will then be able to run
333<c>bootstrap.sh</c>. Repeat this same wget fetch and place procedure for stage2
334and 3.
335</p>
336
337</body>
338</section>
339</chapter>
340
341<chapter>
342<title>Diskless install using PXE boot</title>
44<section> 343<section>
45<title>Requirements</title> 344<title>Requirements</title>
46<body> 345<body>
47<p>The requirements for a netboot install are a host computer than can
48provide a tftp server and a computer
49that can netboot itself via either bios or a floppy drive used to boot GRUB
50or another network bootloader. A dhcp server might also be necessary. Of
51course, you will also need the latest build ISO, which can be found at
52<uri>http://www.ibiblio.org/gentoo/releases/build/</uri></p>
53</body>
54</section>
55 346
347<p>
348You will need a network card on the diskless client that uses the PXE protocol
349to boot, like many 3com cards. You will also need a BIOS that supports booting
350from PXE.
351</p>
352
353</body>
56<section> 354</section>
57<title>Overview</title>
58<body>
59
60<p>In order to load images off the network, the first thing a netboot machine
61must do is obtain an IP address. There are multiple ways of obtaining
62an IP address, and any
63one of them will do. Personally, I prefer to use GRUB for everything, but if
64your computer supports booting from a network already then grub might not
65be necessary, even if it might be easier to just use GRUB's <c>ifconfig</c> command
66instead of setting up a bootp or dhcp server.</p>
67
68<p>Once your computer has obtained an IP address, the next logical step is to find
69out what you are going to be booting and where it might be held. Once again,
70it would be easiest to do this with GRUB commands as opposed to setting up
71a bootp or dhcp server. You will also need to specify how to obtain an initrd
72and tell the kernel that it will be using this as it's root filesystem.</p>
73
74<p>With your kernel loaded and root filesystem mounted, you may proceed
75with installation as normal. The build image could be loaded from a cd, or it
76can be downloaded from the network via tftp.</p>
77
78</body>
79</section> 355<section>
80<section> 356<title>Server base setup</title>
81<title>Using GRUB</title>
82<body> 357<body>
83 358
84<p>To use GRUB for network booting purposes, you must first have GRUB 359<p>
85compiled with support for your network card. It doesn't matter if you install 360Create directories: The first thing to do is to create the directories where
86to floppy, or to the hard drive of the computer you wish to install Gentoo 361your diskless system will be stored. Create a directory called
87on. If your install target already has GRUB with network support installed, 362<path>/diskless</path> which houses a directory for each diskless client. For
88then you are one step ahead. GRUB can be downloaded from 363the rest of this howto we'll be working on the client 'eta'.
89<uri>ftp://alpha.gnu.org/gnu/grub/</uri></p>
90
91<p>A configure example for enabling tulip support, the network card in my
92box:</p>
93
94<pre caption="Manual GRUB installation">
95# <i>./configure --enable-tulip --prefix=/usr</i>
96# <i>make &amp;&amp; make install</i>
97</pre> 364</p>
98 365
99<p>If you are currently in Gentoo and wish to install GRUB using Gentoo 366<pre caption="directory setup">
100tools, then you need to install step by step in order to configure in support 367# <i>mkdir /diskless</i>
101for your network card. An example for using ebuild to install GRUB with 368# <i>mkdir /diskless/eta</i>
102tulip support:</p> 369# <i>mkdir /diskless/eta/boot</i>
370</pre>
103 371
104<pre caption="Installing and configuring GRUB on Gentoo Linux"> 372<p>
105# <i>ebuild /usr/portage/sys-apps/grub/grub-0.91.ebuild clean fetch unpack</i> 373DHCP and TFTP setup: The client will get boot informations using DHCP and
106# <i>cd /var/tmp/portage/grub-0.91/work/grub-0.91/</i> 374download all the required files using TFTP. Just emerge DHCP and configure it
107# <i>./configure --prefix=/usr --sbindir=/sbin --mandir=/usr/share/man \ </i> 375for your basic needs. Then, add the following on
108> <i>--infodir=/usr/share/info --enable-tulip</i> 376<path>/etc/dhcp/dhcpd.conf</path>.
377</p>
378
379<note>
380This provide a static IP address for the client and the path of a PXE boot
381image, here pxegrub. You have to replace the MAC address of the Ethernet card
382of the client and the directory where you will put the client files with the
383one you use.
384</note>
385
386<p>
387For DHCPd, run <c>emerge dhcp</c> (or any other DHCP server of your choice).
388Make sure that the correct interface is selected in
389<path>/etc/conf.d/dhcp</path>.
390</p>
391
392<pre caption="dhcp.conf">
393option option-150 code 150 = text ;
394ddns-update-style none ;
395host eta {
396hardware ethernet 00:00:00:00:00:00;
397fixed-address <i>ip.add.re.ss</i>;
398option option-150 "/eta/boot/grub.lst";
399filename "/eta/boot/pxegrub";
400}
401</pre>
402
403<p>
404For TFTP, emerge <c>app-admin/tftp-hpa</c>. In
405<path>/etc/conf.d/in.tftpd</path>, put the following :
406</p>
407
408<pre caption="in.tftpd">
409INTFTPD_PATH="/diskless"
410INTFTPD_USER="nobody"
411INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
412</pre>
413
414<p>
415Setup GRUB: To provide PXE booting I use GRUB. You have to compile it by
416yourself to enable the PXE image compilation ... but that's quite easy. First,
417get the latest version of the GRUB source code (<c>emerge -f grub</c> will
418place the tarball in <path>/usr/portage/distfiles</path>). Copy the tarball to
419<path>/diskless</path> and then build it to make the pxe capable binary. Once
420the binary is built, copy it to the diskless client's boot directory. Then edit
421it's grub.lst config file.
422</p>
423
424<pre caption="grub setup">
425# <i>tar zxvf grub-0.92.tar.gz</i>
426# <i>cd grub-0.92</i>
427# <i>./configure --help</i>
428<comment>(In the options you will see a list of supported network interface drivers.
429 Select the driver compatible with your client's network card. Herein referenced
430 as $nic)</comment>
431# <i>./configure --enable-diskless --enable-$nic</i>
109# <i>make</i> 432# <i>make</i>
110# <i>touch /var/tmp/portage/grub-0.91/.compiled</i>
111# <i>cd /usr/portage/</i> 433# <i>cd stage2</i>
112# <i>ebuild sys-apps/grub/grub-0.91.ebuild install merge</i> 434# <i>cp pxegrub /diskless/eta/boot/pxegrub</i>
113</pre> 435# <i>nano -w /diskless/eta/boot/grub.lst</i>
114
115<p>Now that we have the GRUB shell itself installed, we need to install to
116a boot sector. Although you could install GRUB to the boot sector of your
117install computer's hard drive, here we will assume that you are installing
118GRUB on a boot floppy. There are two ways of doing this. You can use the GRUB
119shell itself, or you can use a provided script called <c>grub-install</c>. It is
120preferable to use <c>grub-install</c> when installing GRUB to a floppy.</p>
121
122<pre caption="grub-install example">
123# <i>mkfs.ext2 /dev/fd0</i>
124# <i>mount /dev/fd0 /mnt/floppy/</i>
125# <i>grub-install --root-directory=/mnt/floppy/ '(fd0)'</i>
126# <i>umount /mnt/floppy/</i>
127</pre>
128
129<p><c>grub-install</c> does not always work... and isn't always the best way to install
130GRUB. And since the GRUB shell works exactly like GRUB would when booted
131via the boot sector, it might be more desirable just to use the GRUB shell. Here
132is an example of how to use the GRUB shell to install GRUB to a floppy:</p>
133
134<pre caption="Using the GRUB shell instead">
135# <i>mkfs.ext2 /dev/fd0</i>
136# <i>mount /dev/fd0 /mnt/floppy/</i>
137# <i>mkdir -p /mnt/floppy/boot/grub/</i>
138# <i>cp -v /usr/share/grub/i386-pc/* /mnt/floppy/boot/grub/</i>
139# <i>grub</i>
140grub> <i>root (fd0)</i>
141grub> <i>setup (fd0)</i>
142grub> <i>quit</i>
143# <i>umount /mnt/floppy/</i>
144</pre>
145
146<p>Now that we have a bootable GRUB floppy, we need to set up the host tftp server
147(I suggest netkit's tftp server)
148for loading our kernel and initrd. If you use inetd then you will need
149a line in your <path>/etc/inetd.conf</path> that looks
150like this:</p>
151
152<pre caption="/etc/inetd.conf">
153tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd
154</pre>
155
156<p>To install the netkit tftp server under gentoo linux, emerge net-misc/netkit-tftp</p>
157
158<note>There is an ebuild for xinetd... if you prefer to use this than feel free to do
159so. However I do not use xinetd, and do not know how to set up tftp with it. If you
160use it and such, please send me info on how to get xinetd working and I will include
161them in this howto.</note>
162
163<p>Now that we have our tftp server ready, we need a kernel and a root initrd to
164put in it. You can compile a custom kernel yourself, but make sure it has all the
165things necessary for running gentoo (like devfs) and for netbooting (like initrd
166support). The root initrd will be the rescue.gz included in the gentoo ISO.</p>
167
168<impo>Mounting an ISO file without burning it to cd requires loopback filesystem
169support.</impo>
170
171<pre> 436</pre>
172# <i>mkdir /tftpboot</i>
173# <i>mount -o loop /path/to/gentoo-ix86-1.1a.iso /mnt/cdrom/</i>
174# <i>cp /mnt/cdrom/isolinux/kernel /mnt/cdrom/isolinux/rescue.gz /tftpboot</i>
175# <i>chmod 644 /tftpboot/*</i>
176# <i>umount /mnt/cdrom/</i>
177</pre>
178 437
179<p>Boot the machine you want to install to with your incredibly usefull grub floppy. 438<pre caption="grub.lst">
180Once booted you need to specify a way for the machine to get 439default 0
181its IP address, specify where 440timeout 30
182to get a kernel and it's options, and where to get it's initrd.</p>
183 441
442title=Diskless Gentoo
443root (nd)
444kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=<i>ip.add.re.ss</i>:/diskless/eta
445
446<comment>(For the nfsroot option, the IP address is the one of the server and
447the directory is the one where your diskless client files are located on the server).</comment>
184<pre> 448</pre>
185grub> <i>ifconfig --address=192.168.0.10 --server=192.168.0.2</i> 449
186grub> <i>root (nd)</i> 450<p>
187grub> <i>kernel /tftpboot/kernel devfs=nomount vga=normal load_ramdisk=1 </i> 451Setup NFS: NFS is quite easy to configure. The only thing you have to do is to
188 <i>prompt_ramdisk=0 ramdisk_size=24000 root=/dev/ram0 rw</i> <comment>(all on one line)</comment> 452add a line on the <path>/etc/exports</path> config file :
189grub> <i>initrd /tftpboot/rescue.gz</i>
190grub> <i>boot</i>
191</pre> 453</p>
192 454
193<note>You can also use bootp and dhcp to configure your ip via grub. Use the bootp 455<pre caption="/etc/exports">
194and dhcp commands.</note> 456# <i>nano -w /etc/exports</i>
457# /etc/exports: NFS file systems being exported. See exports(5).
458/diskless/eta eta(rw,sync,no_root_squash)
459</pre>
195 460
196<p>Now that you have your machine booted, you can install as normal. Refer to the 461<p>
197from source cd install howto.</p> 462Update your hosts: One important thing to do now is to modify your
463<path>/etc/hosts</path> file to fit your needs.
464</p>
465
466<pre caption="/etc/hosts">
467127.0.0.1 localhost
468
469192.168.1.10 eta.example.com eta
470192.168.1.20 sigma.example.com sigma
471</pre>
472
473</body>
474</section>
475<section>
476<title>Creating the system on the server</title>
477<body>
478
479<p>
480You might want to reboot the server with a Gentoo LiveCD, although you can
481very well continue immediately if you know how to proceed with the Gentoo
482Installation Instructions from an existing installation. Follow the standard
483install procedure as explained in the Gentoo Install Howto BUT with the
484following differences:
485When you mount the file system, do the following (where hdaX is the partition
486where you created the /diskless directory). You do not need to mount any other
487partitions as all of the files will reside in the <path>/diskless/eta</path>
488directory.
489</p>
490
491<pre caption="mounting the filesystem">
492#<i> mount /dev/hda3 /mnt/gentoo</i>
493</pre>
494
495<p>
496Stage tarballs and chroot: This example uses a stage3 tarball. Mount
497<path>/proc</path> to your diskless directory and chroot into it to continue
498with the install. Then follow the installation manual until kernel
499configuration.
500</p>
501
502<warn>
503Be very careful where you extract your stage tarball. You don't want to end up
504extracting over your existing installation.
505</warn>
506
507<pre caption="extracting the stage tarball">
508# <i>cd /mnt/gentoo/diskless/eta/</i>
509# <i>tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2</i>
510# <i>mount -t proc /proc /mnt/gentoo/diskless/eta/proc</i>
511# <i>cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf</i>
512# <i>chroot /mnt/gentoo/diskless/eta/ /bin/bash</i>
513# <i>env-update</i>
514# <i>source /etc/profile</i>
515</pre>
516
517<p>
518Kernel configuration: When you do the <c>make menuconfig</c> of your kernel
519configuration, don't forget to enable the following options with the others
520recommended into the install howto.
521</p>
522
523<pre caption="menuconfig options">
524- Your network card device support
525<comment>(In the kernel, *not* as a module!)</comment>
526
527- Under "Networking options" :
528
529[*] TCP/IP networking
530[*] IP: kernel level autoconfiguration
531[*] IP: DHCP support
532[*] IP: BOOTP support
533
534
535- Under "File systems --> Network File Systems" :
536
537&lt;*&gt; NFS file system support
538[*] Provide NFSv3 client support
539[*] Root file system on NFS
540</pre>
541
542<p>
543Save the kernel in your chrooted <path>/</path> (not in <path>/boot</path>)
544according to the pxegrub setting defined earlier. Next configure your
545diskless client's <path>/etc/fstab</path>.
546</p>
547
548<pre caption="/etc/fstab">
549# <i>nano -w /etc/fstab</i>
550/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
551proc /proc proc defaults 0 0
552tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0
553</pre>
554
555<p>
556You also need to prevent the client to run a filesystem check:
557</p>
558
559<pre caption="Preventing the client to run a filesystem check">
560# <i>touch /fastboot</i>
561# <i>echo "touch /fastboot" &gt;&gt; /etc/conf.d/local.start</i>
562</pre>
563
564<p>
565Install <c>nfs-utils</c> since your client will heavily depend on it:
566</p>
567
568<pre caption="Installing nfs-utils">
569# <i>emerge nfs-utils</i>
570</pre>
571
572<p>
573Bootloader. Don't install another bootloader because we already have one -
574pxegrub. Simply finish the install and restart the server. Start the services
575you'll need to boot the new client: DHCP, TFTPD, and NFS.
576</p>
577
578<pre caption="Starting services">
579# <i>/etc/init.d/dhcp start</i>
580# <i>/etc/init.d/in.tftpd start</i>
581# <i>/etc/init.d/nfs start</i>
582</pre>
583
584</body>
585</section>
586<section>
587<title>Booting the new client</title>
588<body>
589
590<p>
591For the new client to boot properly, you'll need to configure the bios and the
592network card to use PXE as the first boot method - before CD-ROM or floppy. For
593help with this consult your hardware manuals or manufacturers website. The
594network card should get an IP address using DHCP and download the GRUB PXE
595image using TFTP. Then, you should see a nice black and white GRUB bootmenu
596where you will select the kernel to boot and press Enter. If everything is ok
597the kernel should boot, mount the root filesystem using NFS and provide you
598with a login prompt. Enjoy.
599</p>
198 600
199</body> 601</body>
200</section> 602</section>
201</chapter> 603</chapter>
202 604
203 605<chapter>
204
205
206
207<chapter> <title>Installing Gentoo from an existing Linux distribution </title> 606<title>Installing Gentoo from an existing Linux distribution</title>
607<section>
208<section> <title> Requirements </title> 608<title>Requirements</title>
209<body> 609<body>
610
611<p>
210<p>In order to install Gentoo from your existing Linux distribution you need to 612In order to install Gentoo from your existing Linux distribution you need to
211have chroot command installed, and have a copy of the Gentoo installation 613have chroot command installed, and have a copy of the Gentoo installation
212tarball or ISO you want to install. A network connection would be preferable if 614tarball or ISO you want to install. A network connection would be preferable if
213you want more than what's supplied in your tarball. (by the way, a tarball is 615you want more than what's supplied in your tarball. (by the way, a tarball is
214just a file ending in .tbz or .tar.gz). The author used RedHat Linux 7.3 as the 616just a file ending in .tbz or .tar.gz). The author used RedHat Linux 7.3 as the
215"host" operating system, but it is not very important. Let's get started! </p> 617"host" operating system, but it is not very important. Let's get started!
618</p>
619
216</body> 620</body>
621</section>
217</section> 622<section>
218
219<section> <title> Overview </title> 623<title>Overview</title>
220<body>
221<p>We will first allocate a partition to Gentoo by resizing our existing Linux partition, mount the partition, untar the tarball that is mounted, chroot inside the proto-system and start building. Once the bootstrap process is done, we will do some final configuration on the system so as to make sure it boots, then we are ready to reboot and use Gentoo. </p>
222</body> 624<body>
625
626<p>
627We will first allocate a partition to Gentoo by resizing our existing Linux
628partition, mount the partition, untar the tarball that is mounted, chroot
629inside the psuedo-system and start building. Once the bootstrap process is
630done, we will do some final configuration on the system so as to make sure it
631boots, then we are ready to reboot and use Gentoo.
632</p>
633
634</body>
635</section>
223</section> 636<section>
224
225<section> <title> How should we make space for gentoo? </title> 637<title>How should we make space for Gentoo?</title>
226<body> 638<body>
227 639
640<p>
641The root partition is the filesystem mounted under <path>/</path>. A quick run
642of mount on my system shows what I am talking about. We well also use df (disk
643free) to see how much space I have left and how I will be resizing. Note that
644it is not mandatory to resize your root partition! You could be resizing
645anything else supported by our resizer, but let's talk about that later.
228<p> 646</p>
229The root partition is the filesystem mounted under "/". A quick run of mount on my system shows what I am talking about. We well also use df (disk free) to see how much space I have left and how I will be resizing. Note that it is not mandatory to resize your root partition! You could be resizing anything else supported by our resizer, but let's talk about that later.</p>
230
231 647
232<pre caption="Filesystem information"> 648<pre caption="Filesystem information">
233# <i>mount</i> 649# <i>mount</i>
234/dev/hdb2 on / type ext3 (rw) 650/dev/hdb2 on / type ext3 (rw)
235none on /proc type proc (rw) 651none on /proc type proc (rw)
236none on /dev/pts type devpts (rw,gid=5,mode=620) 652none on /dev/pts type devpts (rw,gid=5,mode=620)
237none on /dev/shm type tmpfs (rw) 653none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
238# <i>df -h </i> 654# <i>df -h </i>
239Filesystem Size Used Avail Use% Mounted on 655Filesystem Size Used Avail Use% Mounted on
240/dev/hdb2 4.0G 1.9G 2.4G 82% / 656/dev/hdb2 4.0G 1.9G 2.4G 82% /
241none 38M 0 38M 0% /dev/shm 657none 38M 0 38M 0% /dev/shm
658</pre>
659
660<p>
661As we can see, the partition mounted as <path>/</path> named
662<path>/dev/hdb2</path> has 2.4 gigabytes free. In my case, I think I will
663resize it as to leave 400Megs free of space, therefore allocating 2 gigabytes
664for Gentoo. Not bad, I could have quite some stuff installed. However, think
665that even one gigabyte is enough for most users. So let's partition this thing!
242</pre> 666</p>
243 667
244<p>As we can see, the partition mounted as "/" named /dev/hdb2 has 2.4 gigabytes free. In my case, I think I will resize it as to leave 400Megs free of space, therefore allocating 2 gigabytes for Gentoo. Not bad, I could have quite some stuff installed. However, think that even one gigabyte is enough for most users. So let's partition this thing! </p>
245
246</body> </section>
247
248<section> <title> Building parted to resize partition </title>
249<body> 668</body>
250<p>Parted is an utility supplied by the GNU foundation, an old and respectable huge project whose software you are using in this very moment. There is one tool, however, that is extremely useful for us at the moment. It's called parted, partition editor and we can get it from <uri> 669</section>
670<section>
671<title>Building parted to resize partition</title>
672<body>
673
674<p>
675Parted is an utility supplied by the GNU foundation, an old and respectable
676huge project whose software you are using in this very moment. There is one
677tool, however, that is extremely useful for us at the moment. It's called
678parted, partition editor and we can get it from
251http://www.gnu.org/software/parted/ </uri> 679<uri>http://www.gnu.org/software/parted/</uri>
252</p> 680</p>
681
682<note>
253<note> There are other tools for doing resize of partitions as well, but author 683There are other tools for doing resize of partitions as well, but author is
254is unsure/uninterested whether PartitionMagic(tm) or other software of the kind 684unsure/uninterested whether PartitionMagic(tm) or other software of the kind do
255do the job. It's the reader's job to check them out </note> 685the job. It's the reader's job to check them out
686</note>
256 687
257<p> 688<p>
258Look up on that page the type of filesystem you want to resize and see if parted 689Look up on that page the type of filesystem you want to resize and see if
259can do it. If not, you're out of luck, you will have to destroy some partition 690parted can do it. If not, you're out of luck, you will have to destroy some
260to make space for gentoo, and reinstall back. Go ahead by downloading the 691partition to make space for Gentoo, and reinstall back. Go ahead by downloading
261software, install it. Here we have a problem. We want to resize our Linux root 692the software, install it. Here we have a problem. We want to resize our Linux
262partition, therefore we must boot from a floppy disk a minimal linux system and 693root partition, therefore we must boot from a floppy disk a minimal linux
263use previously-compiled parted copied to a diskette in order to resize "/". 694system and use previously-compiled parted copied to a diskette in order to
264However, if you can unmount the partition while still in Linux you are lucky, 695resize <path>/</path>. However, if you can unmount the partition while still
265you don't need to do what follows. Just compile parted and run it on an 696in Linux you are lucky, you don't need to do what follows. Just compile parted
266unmounted partition you chose to resize. Here's how I did it for my system. 697and run it on an unmounted partition you chose to resize. Here's how I did it
698for my system.
267</p> 699</p>
268 700
701<impo>
269<impo> Make sure that the operations you want to do on your partition are 702Make sure that the operations you want to do on your partition are supported by
270supported by parted! </impo> 703parted!
704</impo>
271 705
272<p> Get tomsrtbt boot/root disk (free of charge) from <uri> 706<p>
273http://freshmeat.net/tomsrtbt" </uri>, create a floppy as suggested in the 707Get the mininux boot/root disk (a 2.4-powered mini Linux distribution on a
274Documentation that accompanies the software package and insert a new floppy in 708floppy - free of charge) from <uri>http://mininux.free.fr/uk/</uri>, create a
275the drive for the next step. </p> 709floppy as suggested in the Documentation that accompanies the software package
710and insert a new floppy in the drive for the next step.
711</p>
276 712
713<note>
277<note> Note again that Linux is synonym of "There's one more way to do it". Your 714Note again that Linux is synonym of "There's one more way to do it". Your
278objective is to run parted on an unmounted partition so it can do its work. You 715objective is to run parted on an unmounted partition so it can do its work. You
279might use some other boot/root diskset other than tomsrtbt. You might not even 716might use some other boot/root diskset other than mininux. You might not even
280need to do this step at all, that is only umount the filesystem you want to 717need to do this step at all, that is only umount the filesystem you want to
281repartition in your Linux session and run parted on it. </note> 718repartition in your Linux session and run parted on it.
719</note>
282 720
283<pre caption="Utility disk creation"> 721<pre caption="Utility disk creation">
284# <i>mkfs.minix /dev/fd0</i> 722# <i>mkfs.minix /dev/fd0</i>
285480 inodes 723480 inodes
2861440 blocks 7241440 blocks
287Firstdatazone=19 (19) 725Firstdatazone=19 (19)
288Zonesize=1024 726Zonesize=1024
289Maxsize=268966912 727Maxsize=268966912
290</pre> 728</pre>
291 729
292We will now proceed with the build of parted. If it's not already downloaded and untarred, do so now and cd into the corresponding directory. Now run the following set of commands to build the utility and copy it to your floppy disk. 730<p>
731We will now proceed with the build of parted. If it's not already downloaded
732and untarred, do so now and cd into the corresponding directory. Now run the
733following set of commands to build the utility and copy it to your floppy disk.
734</p>
293 735
294<pre caption="Building the utility floppy"> 736<pre caption="Building the utility floppy">
295# <i> mkdir /floppy; mount -t minix /dev/fd0 /floppy &amp;&amp; 737# <i> mkdir /floppy; mount -t minix /dev/fd0 /floppy &amp;&amp;
296export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" &amp;&amp; ./configure 738export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" &amp;&amp; ./configure
297&amp;&amp; make &amp;&amp; cp parted/parted /floppy &amp;&amp; umount /floppy </i> 739&amp;&amp; make &amp;&amp; cp parted/parted /floppy &amp;&amp; umount /floppy </i>
298</pre> 740</pre>
299 741
300<p> 742<p>
301Congratulations, you are ready to reboot and resize your partition. Do this only 743Congratulations, you are ready to reboot and resize your partition. Do this
302after taking a quick look at the parted documentation on the GNU website. The 744only after taking a quick look at the parted documentation on the GNU website.
303resize should take under 30 minutes for the largest hard-drives, be patient. 745The resize should take under 30 minutes for the largest hard-drives, be
304Reboot your system with the tomsrtbt boot disk (just pop it inside), and once 746patient. Reboot your system with the mininux boot disk (just pop it inside),
305you are logged in, switch the disk in the drive with your utility disk we have 747and once you are logged in, switch the disk in the drive with your utility disk
306created above and type mount /dev/fd0 /floppy to have parted under /floppy. 748we have created above and type mount /dev/fd0 /floppy to have parted under
307There you go. Run parted and you will be able to resize your partition. Once 749/floppy. There you go. Run parted and you will be able to resize your
308this lenghty process done, we are ready to have the real fun, by installing 750partition. Once this lenghty process done, we are ready to have the real fun,
309gentoo. Reboot back into your old Linux system for now. Drive youwish to operate 751by installing Gentoo. Reboot back into your old Linux system for now. Drive you
310on is the drive containing the partition we want to resize. For example, if we 752wish to operate on is the drive containing the partition we want to resize. For
311want to resize /dev/hda3, the drive is /dev/hda </p> 753example, if we want to resize /dev/hda3, the drive is /dev/hda
754</p>
312 755
313<pre caption="Commands to run once logged into tomsrtbt system"> 756<pre caption="Commands to run once logged into mininux system">
314# <i>mount /dev/fd0 /floppy </i> 757# <i>mount /dev/fd0 /floppy </i>
315# <i>cd /floppy; ./parted [drive you wish to operate on]</i> 758# <i>cd /floppy; ./parted [drive you wish to operate on]</i>
316(parted) <i> print </i> 759(parted) <i> print </i>
317Disk geometry for /dev/hdb: 0.000-9787.148 megabytes 760Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
318Disk label type: msdos 761Disk label type: msdos
331 onwards. 774 onwards.
332 START and END are in megabytes 775 START and END are in megabytes
333(parted) <i> resize 2 3133.266 4000.000 </i> 776(parted) <i> resize 2 3133.266 4000.000 </i>
334</pre> 777</pre>
335 778
779<impo>
336<impo> Be patient! The computer is working! Just look at the hardware LED on 780Be patient! The computer is working! Just look at the hardware LED on your case
337your case to see that it is really working. This should take between 2 and 30 781to see that it is really working. This should take between 2 and 30 minutes.
338minutes. </impo> 782</impo>
339 783
784<p>
340<p>Once you have resized, boot back into your old linux as described. Then go to 785Once you have resized, boot back into your old linux as described. Then go to
341<uri link="/doc/en/gentoo-x86-install.xml">http://www.gentoo.org/doc/en/gentoo-x86-install.xml</uri> and follow steps 6, 7, 9 through 786<uri link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=4">The Gentoo
34217. 787Handbook: Preparing the Disks</uri> and follow the instructions. When
788chrooting, use the following command to flush your environment:
789</p>
343 790
791<pre caption="Flushing the environment during chroot">
792# <i>env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash</i>
793# <i>/usr/sbin/env-update</i>
794# <i>source /etc/profile</i>
795</pre>
344 796
797<p>
345Enjoy! 798Enjoy!
346</p> 799</p>
800
347</body> 801</body>
348</section> 802</section>
349</chapter> 803</chapter>
804
350</guide> 805</guide>

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.52

  ViewVC Help
Powered by ViewVC 1.1.20