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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (hide annotations) (download) (as text)
Sun Apr 11 13:05:50 2004 UTC (10 years, 7 months ago) by swift
Branch: MAIN
Changes since 1.24: +5 -4 lines
File MIME type: application/xml
#46734 - Fix reference to old installation instructions

1 zhen 1.3 <?xml version='1.0' encoding="UTF-8"?>
2 swift 1.25 <!-- $Header: /home/cvsroot/gentoo/xml/htdocs/doc/en/altinstall.xml,v 1.24 2004/04/11 10:52:16 cam Exp $ -->
3 antifa 1.12 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4    
5 drobbins 1.1
6 zhen 1.2 <guide link="/doc/en/altinstall.xml">
7 drobbins 1.1 <title>The Gentoo Linux alternative installation method HOWTO</title>
8 gerrynjr 1.9 <author title="Contributor"><mail link="gerrynjr@gentoo.org">Gerald Normandin Jr.</mail></author>
9     <author title="Contributor"><mail link="lordviram@rebelpacket.net">Travis Tilley</mail></author>
10     <author title="Contributor"><mail link="volontir@yahoo.com">Oleg Raisky</mail></author>
11     <author title="Contributor"><mail link="luminousit@hotmail.com">Alex Garbutt</mail></author>
12     <author title="Contributor"><mail link="alex@openvs.com">Alexandre Georges</mail></author>
13 antifa 1.15 <author title="Contributor"><mail link="vargen@b0d.org">Magnus Backanda</mail></author>
14 klieber 1.13 <author title="Contributor"><mail link="davoid@gentoo.org">Faust A. Tanasescu</mail></author>
15 swift 1.7 <author title="Contributor"><mail link="aliz@gentoo.org">Daniel Ahlberg</mail></author>
16     <author title="Editor"><mail link="swift@gentoo.org">Sven Vermeulen</mail></author>
17 antifa 1.15 <author title="Reviewer"><mail link="antifa@gentoo.org">Ken Nowack</mail></author>
18 blubber 1.18 <author title="Editor"><mail link="blubber@gentoo.org">Tiemo Kieft</mail></author>
19 drobbins 1.1 <abstract>
20     This HOWTO is meant to be a repository of alternative Gentoo installation
21     methods, for those with special installation needs such as lack of a cdrom
22 gerrynjr 1.14 or a computer that can't boot cds.
23 drobbins 1.1 </abstract>
24    
25 swift 1.21 <license/>
26    
27 swift 1.25 <version>0.37</version>
28     <date>April 11, 2004</date>
29 gerrynjr 1.9
30 drobbins 1.1 <chapter>
31     <title>About this document</title>
32     <section>
33     <body>
34    
35     <p>If the standard boot-from-CD install method doesn't work for you
36     (or you just don't like it),
37     help is now here. This document serves to
38     provide a repository of alternative Gentoo Linux installation techniques
39     to those who need them.
40     Or, if you prefer, it serves as
41     a place to put your wacky installation methods. If you have an
42     installation method that you yourself find useful, or you have devised an
43 gerrynjr 1.14 amusing way of installing Gentoo, please don't hesitate to write something
44 gerrynjr 1.9 up and <mail link="antifa@gentoo.org">send it to me.</mail></p>
45    
46    
47     </body>
48     </section>
49     </chapter>
50    
51     <chapter>
52     <title>Booting the LiveCD with Smart BootManager</title>
53     <section>
54    
55     <body>
56 gerrynjr 1.14 <p>Download Smart BootManager <uri link="http://btmgr.sourceforge.net/index.php3?body=download.html">http://btmgr.sourceforge.net/index.php3?body=download.html</uri>. Linux source or binary format and windows .exe versions are available as well as many language packs. However, at this time, the preferred method would be to use the binary format, as the source will not compile with newer versions of NASM.</p>
57 gerrynjr 1.9
58     <p>Either compile the package from source or just grab the binary. There are several options that can be utilized while creating your boot floppy, as seen below.</p>
59    
60     <pre caption="Smart BootManager Options">
61     <i>sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
62    
63     -t theme select the theme to be used, in which the theme could be:
64     us = English theme de = German theme
65     hu = Hungarian theme zh = Chinese theme
66     ru = Russian theme cz = Czech theme
67     es = Spanish theme fr = French theme
68     pt = Portuguese theme
69    
70    
71     -d drv set the drive that you want to install Smart BootManager on;
72     for Linux:
73     /dev/fd0 is the first floppy driver,
74     /dev/hda is the first IDE harddisk driver.
75     /dev/sda is the first SCSI harddisk driver.
76     for DOS:
77     0 is the first floppy drive
78     128 is the first hard drive;
79    
80     -c disable CD-ROM booting feature;
81    
82 gerrynjr 1.14 -b backup_file backup the data that will be overwritten for
83 gerrynjr 1.9 future uninstallation;
84    
85     -u backup_file uninstall Smart BootManager, should be used alone;
86    
87     -y do not ask any question or warning.</i>
88     </pre>
89    
90     <pre caption="Using sbminst to build the boot floppy">
91     # <i>sbminst -t us -d /dev/fd0</i>
92     </pre>
93     <note> Replace fd0 with your repective floppy device name if yours is different. </note>
94     <p>Now simply place the floppy in the floppy drive of the computer you'd like to boot the LiveCD on, as well as placing the LiveCD in the CD-ROM and boot the computer.</p>
95    
96     <p>You'll be greeted with the Smart BootManager dialog. Select your CD-ROM and press ENTER to boot the LiveCD. Once booted proceed with the standard installation instructions.</p>
97    
98     <p>Further information on Smart BootManager may be found at <uri>http://btmgr.sourceforge.net/</uri></p>
99     </body>
100     </section>
101     </chapter>
102    
103    
104     <chapter>
105     <title>Knoppix Installation</title>
106     <section>
107    
108     <body>
109     <p>Booting from the <uri link="http://www.knoppix.org/">Knoppix</uri> LiveCD is a way to have a fully functional linux system while you're compiling Gentoo. Tux Racer will help you pass the time while you wait for bootstrap.</p>
110    
111     <p>Boot from the Knoppix CD. It generally does a really good job of hardware detection. Although, you may have to add some boot options. </p>
112    
113     <p>By default Knoppix boots into a KDE 3.0 desktop. The first thing I did was open a konsole and typed <c>sudo passwd root</c>. This lets you set the root password for Knoppix.</p>
114    
115     <p> Next, I su to root and typed <c>usermod -d /root -m root</c>. This sets user roots home directory to /root (the Gentoo way) from /home/root (the Knoppix way). If you do not do this, then you will receive errors when emerging about "/home/root: not found" or something to that effect.</p>
116    
117 swift 1.22 <p>I then typed <c>exit</c> and then <c>su</c> back into root. This loads the change that was made with the usermod command. Now create the <path>/mnt/gentoo</path> mountpoint using <c>mkdir</c>:</p>
118 swift 1.16
119 swift 1.22 <pre caption="Creating the /mnt/gentoo mountpoint">
120     # <i>mkdir /mnt/gentoo</i>
121     </pre>
122    
123 swift 1.25 <p>At this point, you can pick up with the standard install documentation at
124     <uri link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=4">part 4</uri>. However, when you're asked to mount the proc system, issue the following command instead: </p>
125 swift 1.22
126     <pre caption = "Bind-mounting the proc pseudo filesystem">
127 swift 1.16 # <i>mount -o bind /proc /mnt/gentoo/proc</i>
128     </pre>
129    
130 gerrynjr 1.9 </body>
131     </section>
132     </chapter>
133    
134     <chapter>
135     <title>Installing from Stage 1 without network access</title>
136     <section>
137     <body>
138    
139    
140     <p>Burn a LiveCD iso.</p>
141    
142 gerrynjr 1.14 <p>Get the latest portage snapshot from <uri>http://distro.ibiblio.org/pub/linux/distributions/gentoo/snapshots/</uri> (or your favorite <uri link="http://www.gentoo.org/main/en/mirrors.xml">mirror</uri>). Either place this tarball on an existing partition on the computer your are installing to, or burn it to a CD.</p>
143 gerrynjr 1.9
144     <p>You'll also need a package list for the stage packages. Place the following dl-list.sh script on the same medium as the portage snapshot, you'll need it later.</p>
145    
146     <pre caption="dl-list.sh">
147     #!/bin/bash
148    
149     # set your defaults here:
150     user_defs() {
151    
152     # portage directory (without a trailing "/"):
153     portage_dir="/usr/portage"
154    
155     # default download mirror (without a trailing "/"):
156     gentoo_mirror="http://www.ibiblio.org/pub/Linux/distributions/gentoo"
157    
158     # default sourceforge mirror (unc, telia, belnet):
159     sourceforge_mirror="unc"
160    
161     # fix gnu mirror entries
162     gnu_url="ftp:\/\/ftp.gnu.org\/pub\/gnu"
163    
164     }
165    
166    
167     #------------------------------------------------------------
168    
169     # function to remove temporary files
170     cleanup() {
171    
172     rm -f $temp_file_1 $temp_file_2
173     exit $1
174    
175     }
176    
177     # set user defaults
178     user_defs
179    
180     # set the complete url for the sourceforge mirror
181     # (the \'s are needed because this goes in a sed command)
182     sourceforge_mirror_complete="http:\/\/$sourceforge_mirror.dl.sourceforge.net\/sourceforge"
183    
184     # initialize counters
185     num_files=0
186     num_alt_urls=0
187     total_size=0
188    
189     # initialize lists (arrays)
190     declare -a def_urls_arr
191     declare -a alt_urls_arr
192    
193     # create 2 temporary files
194     temp_file_1=`mktemp -t dl-list.XXXXXX` || cleanup 1
195     temp_file_2=`mktemp -t dl-list.XXXXXX` || cleanup 1
196    
197     # run "emerge -p &lt;args&gt;" (too easy to forget the "-p" in the command line...)
198     emerge -p $@ &gt; $temp_file_1 || cleanup 1
199    
200     # remove the lines that do not contain the word "ebuild"
201     sed -n -e '/ebuild/p' $temp_file_1 &gt; $temp_file_2
202    
203     # count how many lines were left
204     num_ebuilds=`wc -l $temp_file_2 | sed -e 's/\(.*\) \(.*\)/\1/'`
205    
206     # extract the useful information from those lines: category, package and version
207     #sed -e 's:\(.*\) \(.*\)/\(.*\)-\([0-9].*\) \(.*\) \(.*\):\2 \3 \4:' $temp_file_2 &gt; $temp_file_1
208     sed -e 's:\(.*\) \(.*\)/\(.*\)-\([0-9].*\):\2 \3 \4:' $temp_file_2 &gt; $temp_file_1
209    
210     # display starting message :)
211     echo -n "Generating list " &gt;&amp;2
212    
213     # process each package in turn
214     while read category package version rest
215     do
216    
217     # form the name of the digest file
218    
219     digest_file="$portage_dir/$category/$package/files/digest-$package-$version"
220    
221     # process the contents of the digest file
222     while read md5_flag md5_sum file_name file_size
223     do
224    
225     # form the default url to download the file
226     def_urls_arr[$num_files]="$gentoo_mirror/distfiles/$file_name"
227    
228     # increment the file counter
229     num_files=$(($num_files + 1))
230    
231     # update the size accumulator (in kilobytes)
232     total_size=$(($total_size + $file_size / 1024))
233    
234     done &lt; $digest_file
235    
236     # form the "ebuild depend" command line
237     ebuild_depend_cmd="ebuild $portage_dir/$category/$package/$package-${version}.ebuild depend"
238    
239     # execute the "ebuild depend" command
240     $ebuild_depend_cmd || cleanup 1
241    
242     # form the name of the dependency file
243     dependency_file="/var/cache/edb/dep/$category/$package-$version"
244    
245     # read in the 4th line from the dependency file,
246     # which contains the official download urls
247     alt_urls=`head -n 4 $dependency_file | tail -n 1`
248    
249     # ignore empty url list
250     if [ -n "$alt_urls" ]
251     then
252    
253     # split the urls list into $1..$N
254     set $alt_urls
255    
256     # process each url in turn
257     for i in $@
258     do
259    
260     # remove the (use)? strings from the url list
261     alt_url_tmp=`echo "$i" | sed -e '/\?$/d'`
262    
263     # remove the "mirror://gnome" urls
264     alt_url_tmp=`echo "$alt_url_tmp" | sed -e '/^mirror:\/\/gnome/d'`
265    
266     # remove the "mirror://kde" urls
267     alt_url_tmp=`echo "$alt_url_tmp" | sed -e '/^mirror:\/\/kde/d'`
268    
269     # remove the "mirror://gentoo" urls (already included)
270     alt_url_tmp=`echo "$alt_url_tmp" | sed -e '/^mirror:\/\/gentoo/d'`
271    
272     # translate the "mirror://sourceforge" urls into valid urls
273     alt_url_tmp=`echo "$alt_url_tmp" | sed -e "s/mirror:\/\/sourceforge/$sourceforge_mirror_complete/"`
274    
275     # translate the "mirror://gnu" urls into valid urls
276     alt_url_tmp=`echo "$alt_url_tmp" | sed -e "s/mirror:\/\/gnu/$gnu_url/"`
277     # ignore empty urls
278     if [ -n "$alt_url_tmp" ]
279     then
280    
281     # add the url to the list
282     alt_urls_arr[$num_alt_urls]=$alt_url_tmp
283    
284     # increment the alternate url counter
285     num_alt_urls=$(($num_alt_urls + 1))
286    
287     fi
288    
289     done
290    
291     fi
292    
293     # a progress bar :)
294     echo -n "." &gt;&amp;2
295    
296     done &lt; $temp_file_1
297    
298     # display ending message :)
299     echo " done." &gt;&amp;2
300    
301     # display default urls list
302     for i in ${def_urls_arr[@]}; do echo $i; done | sort
303    
304     # display alternate urls list
305     for i in ${alt_urls_arr[@]}; do echo $i; done | sort
306    
307     # display totals
308     echo "Totals:" $num_ebuilds "ebuilds," $num_files "files," $num_files "default urls," \n
309     $num_alt_urls "alternate urls," "${total_size}Kb." &lt;&amp;2
310    
311     # remove temporary files and exit
312     cleanup 0
313     </pre>
314    
315 gerrynjr 1.14 <p>Follow all instructions of Gentoo Install Doc up to <c>chroot /mnt/gentoo</c> in Step 8. If you only have one CD-ROM remember to use the <c>cdcache</c> option while booting so you can unmount the LiveCD and mount your portage snapshot CD.</p>
316 gerrynjr 1.9
317 blubber 1.18 <p>Open a new console (Alt-F2), we will continue with the Install Doc up to running the bootstrap.sh script.</p>
318 gerrynjr 1.9
319 blubber 1.18 <warn>Older realeases of the livecd required you to change the password using the <c>passwd</c> command, before logging in manually.</warn>
320    
321 gerrynjr 1.9
322 gerrynjr 1.14 <p>Go back to the first console (Alt-F1, without chroot) and mount a second CD on <path>/mnt/gentoo/mnt/cdrom2</path>. Copy the portage tarball from cdrom2 and unpack it to <path>/mnt/gentoo/usr/portage</path>. Further, grab the dl-list.sh script and place it in <path>/usr/sbin</path> and make it executable.</p>
323 gerrynjr 1.9
324     <pre caption="Mount the snapshot cd">
325     # <i>umount /mnt/cdrom</i>
326     # <i>mkdir /mnt/gentoo/mnt/cdrom2</i>
327     # <i>mount /dev/cdroms/cdrom0 /mnt/gentoo/mnt/cdrom2</i>
328     # <i>cp /mnt/gentoo/mnt/cdrom2/portage-$date.tar.bz2 /mnt/gentoo/usr/portage</i>
329     # <i>cp /mnt/gentoo/mnt/cdrom2/dl-list.sh /mnt/gentoo/usr/sbin</i>
330     # <i>cd /mnt/gentoo/usr/portage</i>
331     # <i>tar xvjpf portage-$date.tar.bz2</i>
332     # <i>chmod +x /mnt/gentoo/usr/sbin/dl-list.sh</i>
333     </pre>
334    
335 gerrynjr 1.14 <p>Switch back to the F2 console. Now if you try to run bootstrap.sh it will fail because it won't be able to download any files. We will fetch these files somewhere else and put them in /usr/portage/distfiles (on F2 console). </p>
336 gerrynjr 1.9
337     <p>You need a list of Stage1 packages: glibc, baselayout, texinfo, gettext, zlib, binutils, gcc, ncurses plus their dependencies. </p>
338    
339     <note>Note that you need the versions of each package synced with your portage tree.</note>
340    
341 gerrynjr 1.14 <p>Now use the dl-list.sh script to generate the package list that you need. Then copy the subsequent list to a floppy.</p>
342 gerrynjr 1.9
343     <pre caption="Using dl-list.sh">
344     # <i>dl-list.sh glibc baselayout texinfo gettext zlib binutils gcc ncurses > stage1.list</i>
345     # <i>mount -t vfat /dev/fd0 /mnt/floppy</i>
346     # <i>cp /mnt/gentoo/stage1.list /mnt/floppy</i>
347     # <i>umount /mnt/floppy</i>
348     </pre>
349    
350 gerrynjr 1.14 <p>Take the floppy to the computer that has fast access and feed this list to wget:</p>
351 gerrynjr 1.9
352     <pre caption="Use wget to grab your source packages">
353     # <i>wget -N -i stage1.list</i>
354     </pre>
355    
356    
357 gerrynjr 1.14 <p>Once you have obtained all the files, take them to the computer and copy them to <path>/mnt/gentoo/usr/portage/distfiles</path>. You will then be able to run <c>bootstrap.sh</c>. Repeat this same wget fetch and place procedure for stage2 and 3.</p>
358 gerrynjr 1.9
359 drobbins 1.1
360    
361     </body>
362     </section>
363     </chapter>
364    
365 gerrynjr 1.9 <chapter><title>Diskless install using PXE boot</title>
366    
367     <section><title>Requirements</title>
368     <body>
369     <p>You will need a network card on the diskless client that uses the PXE protocol to boot, like many 3com cards. You will also need a BIOS that supports booting from PXE.</p>
370     </body></section>
371    
372     <section><title>Server base setup</title>
373     <body>
374 gerrynjr 1.14 <p>Create directories: The first thing to do is to create the directories where your diskless system will be stored. Create a directory called <path>/diskless</path> which houses a directory for each diskless client. For the rest of this howto we'll be working on the client 'eta'.</p>
375 gerrynjr 1.9
376     <pre caption="directory setup">
377     # <i>mkdir /diskless</i>
378     # <i>mkdir /diskless/eta</i>
379     # <i>mkdir /diskless/eta/boot</i>
380     </pre>
381    
382 gerrynjr 1.14 <p>DHCP and TFTP setup: The client will get boot informations using DHCP and download all the required files using TFTP. Just emerge DHCP and configure it for your basic needs. Then, add the following on <path>/etc/dhcp/dhcpd.conf</path>.</p>
383 gerrynjr 1.9
384 gerrynjr 1.14 <note>This provide a static IP address for the client and the path of a PXE boot image, here pxegrub. You have to replace the MAC address of the Ethernet card of the client and the directory where you will put the client files with the one you use.</note>
385 gerrynjr 1.9
386     <pre caption="dhcp.conf">
387     option option-150 code 150 = text ;
388     host eta {
389     hardware ethernet 00:00:00:00:00:00;
390 cam 1.24 fixed-address <i>ip.add.re.ss</i>;
391 gerrynjr 1.9 option option-150 "/eta/boot/grub.lst";
392     filename "/eta/boot/pxegrub";
393     }
394     </pre>
395    
396 gerrynjr 1.14 <p>For TFTP, emerge <c>app-admin/tftp-hpa</c>. In <path>/etc/conf.d/in.tftpd</path>, put the following :</p>
397 gerrynjr 1.9
398     <pre caption="in.tftpd">
399     INTFTPD_PATH="/diskless"
400     INTFTPD_USER="nobody"
401     INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
402     </pre>
403    
404 gerrynjr 1.14 <p>Setup GRUB: To provide PXE booting I use GRUB. You have to compile it by yourself to enable the PXE image compilation ... but that's quite easy. First, get the latest version of the GRUB source code (<c>emerge -f grub</c> will place the tarball in <path>/usr/portage/distfiles</path>). Copy the tarball to <path>/diskless</path> and then build it to make the pxe capable binary. Once the binary is built, copy it to the diskless client's boot directory. Then edit it's grub.lst config file.</p>
405 gerrynjr 1.9
406     <pre caption="grub setup">
407     # <i>tar zxvf grub-0.92.tar.gz</i>
408     # <i>cd grub-0.92</i>
409     # <i>./configure --help</i>
410     <codenote>In the options you will see a list of supported network interface drivers. </codenote>
411     <codenote>Select the driver compatible with your card. Herein referenced a $nic</codenote>
412     # <i>./configure --enable-diskless --enable-$nic</i>
413     # <i>make</i>
414     # <i>cd stage2</i>
415     # <i>cp pxegrub /diskless/eta/boot/pxegrub</i>
416     # <i>nano -w /diskless/eta/boot/grub.lst</i>
417     </pre>
418    
419     <pre caption="grub.lst">
420     default 0
421     timeout 30
422    
423     title=Diskless Gentoo
424     root (nd)
425 cam 1.24 kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=<i>ip.add.re.ss</i>:/diskless/eta
426 drobbins 1.1
427 gerrynjr 1.9 <codenote>For the nfsroot option, the IP address is the one of the server and </codenote>
428     <codenote>the directory is the one where your diskless client files are located (on the server).</codenote>
429     </pre>
430    
431 gerrynjr 1.14 <p>Setup NFS: NFS is quite easy to configure. The only thing you have to do is to add a line on the <path>/etc/exports</path> config file :</p>
432 gerrynjr 1.9
433     <pre caption="/etc/exports">
434     # <i>nano -w /etc/exports</i>
435     NFS file systems being exported. See exports(5).
436     /diskless/eta eta(rw,sync,no_root_squash)
437     </pre>
438    
439 gerrynjr 1.14 <p>Update your hosts: One important thing to do now is to modify your <path>/etc/hosts</path> file to fit your needs. </p>
440 gerrynjr 1.9
441     <pre caption="/etc/hosts">
442     127.0.0.1 localhost
443    
444     192.168.1.10 eta.example.com eta
445     192.168.1.20 sigma.example.com sigma
446     </pre>
447     </body>
448     </section>
449    
450     <section><title>Creating the system on the server</title>
451    
452     <body>
453    
454 gerrynjr 1.14 <p>Reboot the server on a Gentoo LiveCD. Follow the standard install procedure as explained in the Gentoo Install Howto BUT with the following differences. When you mount the file system, do the following (where hdaX is the partition where you created the /diskless directory). You do not need to mount any other partitions as all of the files will reside in the <path>/diskless/eta</path> directory.</p>
455 gerrynjr 1.9
456     <pre caption="mounting the filesystem">
457     #<i> mount /dev/hda3 /mnt/gentoo</i>
458     </pre>
459    
460 gerrynjr 1.14 <p>Stage tarballs and chroot: This example uses a stage3 tarball. Mount <path>/proc</path> to your diskless directory and chroot into it to continue with the install. Then follow the installation manual until kernel configuration.</p>
461 gerrynjr 1.9
462     <warn>Be very careful where you extract your stage tarball. You don't want to end up extracting over your existing installation.</warn>
463    
464     <pre caption="extracting the stage tarball">
465     # <i>cd /mnt/gentoo/diskless/eta/</i>
466     # <i>tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2</i>
467     # <i>mount -t proc /proc /mnt/gentoo/diskless/eta/proc</i>
468     # <i>cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf</i>
469     # <i>chroot /mnt/gentoo/diskless/eta/ /bin/bash</i>
470     # <i>env-update</i>
471     # <i>source /etc/profile</i>
472     </pre>
473    
474     <p>Kernel configuration: When you do the <c>make menuconfig</c> of your kernel configuration, don't forget to enable the following options with the others recommended into the install howto.</p>
475    
476     <pre caption="menuconfig options">
477     - Your network card device support
478    
479     - Under "Networking options" :
480    
481     [*] TCP/IP networking
482     [*] IP: kernel level autoconfiguration
483     [*] IP: DHCP support
484     [*] IP: BOOTP support
485    
486    
487     - Under "File systems --> Network File Systems" :
488    
489     &lt;*&gt; NFS file system support
490     [*] Provide NFSv3 client support
491     [*] Root file system on NFS
492     </pre>
493    
494 gerrynjr 1.14 <p>Next configure your diskless client's <path>/etc/fstab</path>.</p>
495 gerrynjr 1.9
496     <pre caption="/etc/fstab">
497     # <i>nano -w /etc/fstab</i>
498     /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
499     proc /proc proc defaults 0 0
500     tmpfs /dev/shm tmpfs defaults 0 0
501     </pre>
502    
503 gerrynjr 1.14 <p>Bootloader. Don't install another bootloader because we already have one - pxegrub. Simply finish the install and restart the server. Start the services you'll need to boot the new client: DHCP, TFTPD, and NFS.</p>
504 gerrynjr 1.9
505     <pre caption="Starting services">
506     # <i>/etc/init.d/dhcp start</i>
507     # <i>/etc/init.d/tftpd start</i>
508     # <i>/etc/init.d/nfs start</i>
509     </pre>
510    
511     </body></section>
512    
513     <section><title>Booting the new client</title>
514     <body>
515 gerrynjr 1.14 <p>For the new client to boot properly, you'll need to configure the bios and the network card to use PXE as the first boot method - before CD-ROM or floppy. For help with this consult your hardware manuals or manufacturers website. The network card should get an IP address using DHCP and download the GRUB PXE image using TFTP. Then, you should see a nice black and white GRUB bootmenu where you will select the kernel to boot and press Enter. If everything is ok the kernel should boot, mount the root filesystem using NFS and provide you with a login prompt. Enjoy.</p>
516 gerrynjr 1.9 </body></section>
517    
518     </chapter>
519 drobbins 1.1
520    
521    
522     <chapter> <title>Installing Gentoo from an existing Linux distribution </title>
523     <section> <title> Requirements </title>
524     <body>
525     <p>In order to install Gentoo from your existing Linux distribution you need to
526     have chroot command installed, and have a copy of the Gentoo installation
527     tarball or ISO you want to install. A network connection would be preferable if
528     you want more than what's supplied in your tarball. (by the way, a tarball is
529     just a file ending in .tbz or .tar.gz). The author used RedHat Linux 7.3 as the
530     "host" operating system, but it is not very important. Let's get started! </p>
531     </body>
532     </section>
533    
534     <section> <title> Overview </title>
535     <body>
536 gerrynjr 1.14 <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 psuedo-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>
537 drobbins 1.1 </body>
538     </section>
539    
540 gerrynjr 1.14 <section> <title> How should we make space for Gentoo? </title>
541 drobbins 1.1 <body>
542    
543     <p>
544 gerrynjr 1.14 The root partition is the filesystem mounted under <path>/</path>. 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>
545 drobbins 1.1
546    
547     <pre caption="Filesystem information">
548     # <i>mount</i>
549     /dev/hdb2 on / type ext3 (rw)
550     none on /proc type proc (rw)
551     none on /dev/pts type devpts (rw,gid=5,mode=620)
552     none on /dev/shm type tmpfs (rw)
553     # <i>df -h </i>
554     Filesystem Size Used Avail Use% Mounted on
555     /dev/hdb2 4.0G 1.9G 2.4G 82% /
556     none 38M 0 38M 0% /dev/shm
557     </pre>
558    
559 gerrynjr 1.14 <p>As we can see, the partition mounted as <path>/</path> named <path>/dev/hdb2</path> 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>
560 drobbins 1.1
561 swift 1.21 </body>
562     </section>
563 drobbins 1.1
564 swift 1.21 <section>
565     <title>Building parted to resize partition</title>
566 drobbins 1.1 <body>
567 swift 1.21
568     <p>
569     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>http://www.gnu.org/software/parted/</uri>
570 drobbins 1.1 </p>
571 swift 1.21
572     <note>
573     There are other tools for doing resize of partitions as well, but author
574 drobbins 1.1 is unsure/uninterested whether PartitionMagic(tm) or other software of the kind
575 swift 1.21 do the job. It's the reader's job to check them out
576     </note>
577 drobbins 1.1
578     <p>
579     Look up on that page the type of filesystem you want to resize and see if parted
580     can do it. If not, you're out of luck, you will have to destroy some partition
581 gerrynjr 1.14 to make space for Gentoo, and reinstall back. Go ahead by downloading the
582 drobbins 1.1 software, install it. Here we have a problem. We want to resize our Linux root
583     partition, therefore we must boot from a floppy disk a minimal linux system and
584 gerrynjr 1.14 use previously-compiled parted copied to a diskette in order to resize <path>/</path>.
585 drobbins 1.1 However, if you can unmount the partition while still in Linux you are lucky,
586     you don't need to do what follows. Just compile parted and run it on an
587     unmounted partition you chose to resize. Here's how I did it for my system.
588     </p>
589    
590 swift 1.21 <impo>
591     Make sure that the operations you want to do on your partition are
592     supported by parted!
593     </impo>
594 drobbins 1.1
595 swift 1.21 <p>
596     Get tomsrtbt boot/root disk (free of charge) from <uri>http://freshmeat.net/tomsrtbt </uri>, create a floppy as suggested in the Documentation that accompanies the software package and insert a new floppy in the drive for the next step.
597     </p>
598 drobbins 1.1
599 swift 1.21 <note>
600     Note again that Linux is synonym of "There's one more way to do it". Your
601 drobbins 1.1 objective is to run parted on an unmounted partition so it can do its work. You
602     might use some other boot/root diskset other than tomsrtbt. You might not even
603     need to do this step at all, that is only umount the filesystem you want to
604 swift 1.21 repartition in your Linux session and run parted on it.
605     </note>
606 drobbins 1.1
607     <pre caption="Utility disk creation">
608     # <i>mkfs.minix /dev/fd0</i>
609     480 inodes
610     1440 blocks
611     Firstdatazone=19 (19)
612     Zonesize=1024
613     Maxsize=268966912
614     </pre>
615    
616 swift 1.21 <p>
617 drobbins 1.1 We 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.
618 swift 1.21 </p>
619 drobbins 1.1
620     <pre caption="Building the utility floppy">
621     # <i> mkdir /floppy; mount -t minix /dev/fd0 /floppy &amp;&amp;
622     export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" &amp;&amp; ./configure
623     &amp;&amp; make &amp;&amp; cp parted/parted /floppy &amp;&amp; umount /floppy </i>
624     </pre>
625    
626     <p>
627     Congratulations, you are ready to reboot and resize your partition. Do this only
628     after taking a quick look at the parted documentation on the GNU website. The
629     resize should take under 30 minutes for the largest hard-drives, be patient.
630     Reboot your system with the tomsrtbt boot disk (just pop it inside), and once
631     you are logged in, switch the disk in the drive with your utility disk we have
632     created above and type mount /dev/fd0 /floppy to have parted under /floppy.
633     There you go. Run parted and you will be able to resize your partition. Once
634     this lenghty process done, we are ready to have the real fun, by installing
635 gerrynjr 1.14 Gentoo. Reboot back into your old Linux system for now. Drive you wish to
636 swift 1.8 operate on is the drive containing the partition we want to resize. For
637     example, if we want to resize /dev/hda3, the drive is /dev/hda
638     </p>
639 drobbins 1.1
640     <pre caption="Commands to run once logged into tomsrtbt system">
641     # <i>mount /dev/fd0 /floppy </i>
642     # <i>cd /floppy; ./parted [drive you wish to operate on]</i>
643     (parted) <i> print </i>
644     Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
645     Disk label type: msdos
646     Minor Start End Type Filesystem Flags
647     1 0.031 2953.125 primary ntfs
648     3 2953.125 3133.265 primary linux-swap
649     2 3133.266 5633.085 primary ext3
650     4 5633.086 9787.148 extended
651     5 5633.117 6633.210 logical
652     6 6633.242 9787.148 logical ext3
653     (parted) <i> help resize </i>
654     resize MINOR START END resize filesystem on partition MINOR
655    
656     MINOR is the partition number used by Linux. On msdos disk labels, the
657     primary partitions number from 1-4, and logical partitions are 5
658     onwards.
659     START and END are in megabytes
660     (parted) <i> resize 2 3133.266 4000.000 </i>
661     </pre>
662    
663     <impo> Be patient! The computer is working! Just look at the hardware LED on
664     your case to see that it is really working. This should take between 2 and 30
665     minutes. </impo>
666    
667     <p>Once you have resized, boot back into your old linux as described. Then go to
668 neysx 1.23 <uri link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=5">The Gentoo Handbook: Installing the Gentoo Installation Files</uri> and follow the instructions. When chrooting, use the following command to flush your environment:
669 swift 1.17 </p>
670 drobbins 1.1
671 swift 1.17 <pre caption = "Flushing the environment during chroot">
672     # <i>env -i chroot /mnt/gentoo /bin/bash</i>
673     </pre>
674 drobbins 1.1
675 swift 1.17 <p>
676 drobbins 1.1 Enjoy!
677     </p>
678     </body>
679     </section>
680     </chapter>
681     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20