/[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.20 - (hide annotations) (download) (as text)
Sat Nov 15 00:35:18 2003 UTC (10 years, 8 months ago) by neysx
Branch: MAIN
Changes since 1.19: +1 -0 lines
File MIME type: application/xml
Added $Header$ cvs tag -- NO CONTENT CHANGE

1 zhen 1.3 <?xml version='1.0' encoding="UTF-8"?>
2 neysx 1.20 <!-- $Header$ -->
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.19 <version>0.35</version>
26     <date>October 31, 2003</date>
27 gerrynjr 1.9
28     <license/>
29 drobbins 1.1
30     <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.16 <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. At this point, you can pick up with the standard install documentation at step 6. However, when you're asked to mount the proc system, issue the following commands instead: </p>
118    
119     <pre caption = "Bind-mounting two important filesystems">
120     # <i>mount -o bind /proc /mnt/gentoo/proc</i>
121     # <i>mount -o bind /dev /mnt/gentoo/dev</i>
122     </pre>
123    
124 gerrynjr 1.9 </body>
125     </section>
126     </chapter>
127    
128     <chapter>
129     <title>Installing from Stage 1 without network access</title>
130     <section>
131     <body>
132    
133    
134     <p>Burn a LiveCD iso.</p>
135    
136 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>
137 gerrynjr 1.9
138     <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>
139    
140     <pre caption="dl-list.sh">
141     #!/bin/bash
142    
143     # set your defaults here:
144     user_defs() {
145    
146     # portage directory (without a trailing "/"):
147     portage_dir="/usr/portage"
148    
149     # default download mirror (without a trailing "/"):
150     gentoo_mirror="http://www.ibiblio.org/pub/Linux/distributions/gentoo"
151    
152     # default sourceforge mirror (unc, telia, belnet):
153     sourceforge_mirror="unc"
154    
155     # fix gnu mirror entries
156     gnu_url="ftp:\/\/ftp.gnu.org\/pub\/gnu"
157    
158     }
159    
160    
161     #------------------------------------------------------------
162    
163     # function to remove temporary files
164     cleanup() {
165    
166     rm -f $temp_file_1 $temp_file_2
167     exit $1
168    
169     }
170    
171     # set user defaults
172     user_defs
173    
174     # set the complete url for the sourceforge mirror
175     # (the \'s are needed because this goes in a sed command)
176     sourceforge_mirror_complete="http:\/\/$sourceforge_mirror.dl.sourceforge.net\/sourceforge"
177    
178     # initialize counters
179     num_files=0
180     num_alt_urls=0
181     total_size=0
182    
183     # initialize lists (arrays)
184     declare -a def_urls_arr
185     declare -a alt_urls_arr
186    
187     # create 2 temporary files
188     temp_file_1=`mktemp -t dl-list.XXXXXX` || cleanup 1
189     temp_file_2=`mktemp -t dl-list.XXXXXX` || cleanup 1
190    
191     # run "emerge -p &lt;args&gt;" (too easy to forget the "-p" in the command line...)
192     emerge -p $@ &gt; $temp_file_1 || cleanup 1
193    
194     # remove the lines that do not contain the word "ebuild"
195     sed -n -e '/ebuild/p' $temp_file_1 &gt; $temp_file_2
196    
197     # count how many lines were left
198     num_ebuilds=`wc -l $temp_file_2 | sed -e 's/\(.*\) \(.*\)/\1/'`
199    
200     # extract the useful information from those lines: category, package and version
201     #sed -e 's:\(.*\) \(.*\)/\(.*\)-\([0-9].*\) \(.*\) \(.*\):\2 \3 \4:' $temp_file_2 &gt; $temp_file_1
202     sed -e 's:\(.*\) \(.*\)/\(.*\)-\([0-9].*\):\2 \3 \4:' $temp_file_2 &gt; $temp_file_1
203    
204     # display starting message :)
205     echo -n "Generating list " &gt;&amp;2
206    
207     # process each package in turn
208     while read category package version rest
209     do
210    
211     # form the name of the digest file
212    
213     digest_file="$portage_dir/$category/$package/files/digest-$package-$version"
214    
215     # process the contents of the digest file
216     while read md5_flag md5_sum file_name file_size
217     do
218    
219     # form the default url to download the file
220     def_urls_arr[$num_files]="$gentoo_mirror/distfiles/$file_name"
221    
222     # increment the file counter
223     num_files=$(($num_files + 1))
224    
225     # update the size accumulator (in kilobytes)
226     total_size=$(($total_size + $file_size / 1024))
227    
228     done &lt; $digest_file
229    
230     # form the "ebuild depend" command line
231     ebuild_depend_cmd="ebuild $portage_dir/$category/$package/$package-${version}.ebuild depend"
232    
233     # execute the "ebuild depend" command
234     $ebuild_depend_cmd || cleanup 1
235    
236     # form the name of the dependency file
237     dependency_file="/var/cache/edb/dep/$category/$package-$version"
238    
239     # read in the 4th line from the dependency file,
240     # which contains the official download urls
241     alt_urls=`head -n 4 $dependency_file | tail -n 1`
242    
243     # ignore empty url list
244     if [ -n "$alt_urls" ]
245     then
246    
247     # split the urls list into $1..$N
248     set $alt_urls
249    
250     # process each url in turn
251     for i in $@
252     do
253    
254     # remove the (use)? strings from the url list
255     alt_url_tmp=`echo "$i" | sed -e '/\?$/d'`
256    
257     # remove the "mirror://gnome" urls
258     alt_url_tmp=`echo "$alt_url_tmp" | sed -e '/^mirror:\/\/gnome/d'`
259    
260     # remove the "mirror://kde" urls
261     alt_url_tmp=`echo "$alt_url_tmp" | sed -e '/^mirror:\/\/kde/d'`
262    
263     # remove the "mirror://gentoo" urls (already included)
264     alt_url_tmp=`echo "$alt_url_tmp" | sed -e '/^mirror:\/\/gentoo/d'`
265    
266     # translate the "mirror://sourceforge" urls into valid urls
267     alt_url_tmp=`echo "$alt_url_tmp" | sed -e "s/mirror:\/\/sourceforge/$sourceforge_mirror_complete/"`
268    
269     # translate the "mirror://gnu" urls into valid urls
270     alt_url_tmp=`echo "$alt_url_tmp" | sed -e "s/mirror:\/\/gnu/$gnu_url/"`
271     # ignore empty urls
272     if [ -n "$alt_url_tmp" ]
273     then
274    
275     # add the url to the list
276     alt_urls_arr[$num_alt_urls]=$alt_url_tmp
277    
278     # increment the alternate url counter
279     num_alt_urls=$(($num_alt_urls + 1))
280    
281     fi
282    
283     done
284    
285     fi
286    
287     # a progress bar :)
288     echo -n "." &gt;&amp;2
289    
290     done &lt; $temp_file_1
291    
292     # display ending message :)
293     echo " done." &gt;&amp;2
294    
295     # display default urls list
296     for i in ${def_urls_arr[@]}; do echo $i; done | sort
297    
298     # display alternate urls list
299     for i in ${alt_urls_arr[@]}; do echo $i; done | sort
300    
301     # display totals
302     echo "Totals:" $num_ebuilds "ebuilds," $num_files "files," $num_files "default urls," \n
303     $num_alt_urls "alternate urls," "${total_size}Kb." &lt;&amp;2
304    
305     # remove temporary files and exit
306     cleanup 0
307     </pre>
308    
309 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>
310 gerrynjr 1.9
311 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>
312 gerrynjr 1.9
313 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>
314    
315 gerrynjr 1.9
316 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>
317 gerrynjr 1.9
318     <pre caption="Mount the snapshot cd">
319     # <i>umount /mnt/cdrom</i>
320     # <i>mkdir /mnt/gentoo/mnt/cdrom2</i>
321     # <i>mount /dev/cdroms/cdrom0 /mnt/gentoo/mnt/cdrom2</i>
322     # <i>cp /mnt/gentoo/mnt/cdrom2/portage-$date.tar.bz2 /mnt/gentoo/usr/portage</i>
323     # <i>cp /mnt/gentoo/mnt/cdrom2/dl-list.sh /mnt/gentoo/usr/sbin</i>
324     # <i>cd /mnt/gentoo/usr/portage</i>
325     # <i>tar xvjpf portage-$date.tar.bz2</i>
326     # <i>chmod +x /mnt/gentoo/usr/sbin/dl-list.sh</i>
327     </pre>
328    
329 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>
330 gerrynjr 1.9
331     <p>You need a list of Stage1 packages: glibc, baselayout, texinfo, gettext, zlib, binutils, gcc, ncurses plus their dependencies. </p>
332    
333     <note>Note that you need the versions of each package synced with your portage tree.</note>
334    
335 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>
336 gerrynjr 1.9
337     <pre caption="Using dl-list.sh">
338     # <i>dl-list.sh glibc baselayout texinfo gettext zlib binutils gcc ncurses > stage1.list</i>
339     # <i>mount -t vfat /dev/fd0 /mnt/floppy</i>
340     # <i>cp /mnt/gentoo/stage1.list /mnt/floppy</i>
341     # <i>umount /mnt/floppy</i>
342     </pre>
343    
344 gerrynjr 1.14 <p>Take the floppy to the computer that has fast access and feed this list to wget:</p>
345 gerrynjr 1.9
346     <pre caption="Use wget to grab your source packages">
347     # <i>wget -N -i stage1.list</i>
348     </pre>
349    
350    
351 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>
352 gerrynjr 1.9
353 drobbins 1.1
354    
355     </body>
356     </section>
357     </chapter>
358    
359 gerrynjr 1.9 <chapter><title>Diskless install using PXE boot</title>
360    
361     <section><title>Requirements</title>
362     <body>
363     <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>
364     </body></section>
365    
366     <section><title>Server base setup</title>
367     <body>
368 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>
369 gerrynjr 1.9
370     <pre caption="directory setup">
371     # <i>mkdir /diskless</i>
372     # <i>mkdir /diskless/eta</i>
373     # <i>mkdir /diskless/eta/boot</i>
374     </pre>
375    
376 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>
377 gerrynjr 1.9
378 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>
379 gerrynjr 1.9
380     <pre caption="dhcp.conf">
381     option option-150 code 150 = text ;
382     host eta {
383     hardware ethernet 00:00:00:00:00:00;
384     fixed-address <c>ip.add.re.ss</c>;
385     option option-150 "/eta/boot/grub.lst";
386     filename "/eta/boot/pxegrub";
387     }
388     </pre>
389    
390 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>
391 gerrynjr 1.9
392     <pre caption="in.tftpd">
393     INTFTPD_PATH="/diskless"
394     INTFTPD_USER="nobody"
395     INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
396     </pre>
397    
398 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>
399 gerrynjr 1.9
400     <pre caption="grub setup">
401     # <i>tar zxvf grub-0.92.tar.gz</i>
402     # <i>cd grub-0.92</i>
403     # <i>./configure --help</i>
404     <codenote>In the options you will see a list of supported network interface drivers. </codenote>
405     <codenote>Select the driver compatible with your card. Herein referenced a $nic</codenote>
406     # <i>./configure --enable-diskless --enable-$nic</i>
407     # <i>make</i>
408     # <i>cd stage2</i>
409     # <i>cp pxegrub /diskless/eta/boot/pxegrub</i>
410     # <i>nano -w /diskless/eta/boot/grub.lst</i>
411     </pre>
412    
413     <pre caption="grub.lst">
414     default 0
415     timeout 30
416    
417     title=Diskless Gentoo
418     root (nd)
419     kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=<c>ip.add.re.ss</c>:/diskless/eta
420 drobbins 1.1
421 gerrynjr 1.9 <codenote>For the nfsroot option, the IP address is the one of the server and </codenote>
422     <codenote>the directory is the one where your diskless client files are located (on the server).</codenote>
423     </pre>
424    
425 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>
426 gerrynjr 1.9
427     <pre caption="/etc/exports">
428     # <i>nano -w /etc/exports</i>
429     NFS file systems being exported. See exports(5).
430     /diskless/eta eta(rw,sync,no_root_squash)
431     </pre>
432    
433 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>
434 gerrynjr 1.9
435     <pre caption="/etc/hosts">
436     127.0.0.1 localhost
437    
438     192.168.1.10 eta.example.com eta
439     192.168.1.20 sigma.example.com sigma
440     </pre>
441     </body>
442     </section>
443    
444     <section><title>Creating the system on the server</title>
445    
446     <body>
447    
448 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>
449 gerrynjr 1.9
450     <pre caption="mounting the filesystem">
451     #<i> mount /dev/hda3 /mnt/gentoo</i>
452     </pre>
453    
454 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>
455 gerrynjr 1.9
456     <warn>Be very careful where you extract your stage tarball. You don't want to end up extracting over your existing installation.</warn>
457    
458     <pre caption="extracting the stage tarball">
459     # <i>cd /mnt/gentoo/diskless/eta/</i>
460     # <i>tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2</i>
461     # <i>mount -t proc /proc /mnt/gentoo/diskless/eta/proc</i>
462     # <i>cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf</i>
463     # <i>chroot /mnt/gentoo/diskless/eta/ /bin/bash</i>
464     # <i>env-update</i>
465     # <i>source /etc/profile</i>
466     </pre>
467    
468     <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>
469    
470     <pre caption="menuconfig options">
471     - Your network card device support
472    
473     - Under "Networking options" :
474    
475     [*] TCP/IP networking
476     [*] IP: kernel level autoconfiguration
477     [*] IP: DHCP support
478     [*] IP: BOOTP support
479    
480    
481     - Under "File systems --> Network File Systems" :
482    
483     &lt;*&gt; NFS file system support
484     [*] Provide NFSv3 client support
485     [*] Root file system on NFS
486     </pre>
487    
488 gerrynjr 1.14 <p>Next configure your diskless client's <path>/etc/fstab</path>.</p>
489 gerrynjr 1.9
490     <pre caption="/etc/fstab">
491     # <i>nano -w /etc/fstab</i>
492     /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
493     proc /proc proc defaults 0 0
494     tmpfs /dev/shm tmpfs defaults 0 0
495     </pre>
496    
497 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>
498 gerrynjr 1.9
499     <pre caption="Starting services">
500     # <i>/etc/init.d/dhcp start</i>
501     # <i>/etc/init.d/tftpd start</i>
502     # <i>/etc/init.d/nfs start</i>
503     </pre>
504    
505     </body></section>
506    
507     <section><title>Booting the new client</title>
508     <body>
509 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>
510 gerrynjr 1.9 </body></section>
511    
512     </chapter>
513 drobbins 1.1
514    
515    
516     <chapter> <title>Installing Gentoo from an existing Linux distribution </title>
517     <section> <title> Requirements </title>
518     <body>
519     <p>In order to install Gentoo from your existing Linux distribution you need to
520     have chroot command installed, and have a copy of the Gentoo installation
521     tarball or ISO you want to install. A network connection would be preferable if
522     you want more than what's supplied in your tarball. (by the way, a tarball is
523     just a file ending in .tbz or .tar.gz). The author used RedHat Linux 7.3 as the
524     "host" operating system, but it is not very important. Let's get started! </p>
525     </body>
526     </section>
527    
528     <section> <title> Overview </title>
529     <body>
530 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>
531 drobbins 1.1 </body>
532     </section>
533    
534 gerrynjr 1.14 <section> <title> How should we make space for Gentoo? </title>
535 drobbins 1.1 <body>
536    
537     <p>
538 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>
539 drobbins 1.1
540    
541     <pre caption="Filesystem information">
542     # <i>mount</i>
543     /dev/hdb2 on / type ext3 (rw)
544     none on /proc type proc (rw)
545     none on /dev/pts type devpts (rw,gid=5,mode=620)
546     none on /dev/shm type tmpfs (rw)
547     # <i>df -h </i>
548     Filesystem Size Used Avail Use% Mounted on
549     /dev/hdb2 4.0G 1.9G 2.4G 82% /
550     none 38M 0 38M 0% /dev/shm
551     </pre>
552    
553 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>
554 drobbins 1.1
555     </body> </section>
556    
557     <section> <title> Building parted to resize partition </title>
558     <body>
559     <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>
560 klieber 1.5 http://www.gnu.org/software/parted/</uri>
561 drobbins 1.1 </p>
562     <note> There are other tools for doing resize of partitions as well, but author
563     is unsure/uninterested whether PartitionMagic(tm) or other software of the kind
564     do the job. It's the reader's job to check them out </note>
565    
566     <p>
567     Look up on that page the type of filesystem you want to resize and see if parted
568     can do it. If not, you're out of luck, you will have to destroy some partition
569 gerrynjr 1.14 to make space for Gentoo, and reinstall back. Go ahead by downloading the
570 drobbins 1.1 software, install it. Here we have a problem. We want to resize our Linux root
571     partition, therefore we must boot from a floppy disk a minimal linux system and
572 gerrynjr 1.14 use previously-compiled parted copied to a diskette in order to resize <path>/</path>.
573 drobbins 1.1 However, if you can unmount the partition while still in Linux you are lucky,
574     you don't need to do what follows. Just compile parted and run it on an
575     unmounted partition you chose to resize. Here's how I did it for my system.
576     </p>
577    
578     <impo> Make sure that the operations you want to do on your partition are
579     supported by parted! </impo>
580    
581     <p> Get tomsrtbt boot/root disk (free of charge) from <uri>
582 gerrynjr 1.14 http://freshmeat.net/tomsrtbt </uri>, create a floppy as suggested in the
583 drobbins 1.1 Documentation that accompanies the software package and insert a new floppy in
584     the drive for the next step. </p>
585    
586     <note> Note again that Linux is synonym of "There's one more way to do it". Your
587     objective is to run parted on an unmounted partition so it can do its work. You
588     might use some other boot/root diskset other than tomsrtbt. You might not even
589     need to do this step at all, that is only umount the filesystem you want to
590     repartition in your Linux session and run parted on it. </note>
591    
592     <pre caption="Utility disk creation">
593     # <i>mkfs.minix /dev/fd0</i>
594     480 inodes
595     1440 blocks
596     Firstdatazone=19 (19)
597     Zonesize=1024
598     Maxsize=268966912
599     </pre>
600    
601     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.
602    
603     <pre caption="Building the utility floppy">
604     # <i> mkdir /floppy; mount -t minix /dev/fd0 /floppy &amp;&amp;
605     export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" &amp;&amp; ./configure
606     &amp;&amp; make &amp;&amp; cp parted/parted /floppy &amp;&amp; umount /floppy </i>
607     </pre>
608    
609     <p>
610     Congratulations, you are ready to reboot and resize your partition. Do this only
611     after taking a quick look at the parted documentation on the GNU website. The
612     resize should take under 30 minutes for the largest hard-drives, be patient.
613     Reboot your system with the tomsrtbt boot disk (just pop it inside), and once
614     you are logged in, switch the disk in the drive with your utility disk we have
615     created above and type mount /dev/fd0 /floppy to have parted under /floppy.
616     There you go. Run parted and you will be able to resize your partition. Once
617     this lenghty process done, we are ready to have the real fun, by installing
618 gerrynjr 1.14 Gentoo. Reboot back into your old Linux system for now. Drive you wish to
619 swift 1.8 operate on is the drive containing the partition we want to resize. For
620     example, if we want to resize /dev/hda3, the drive is /dev/hda
621     </p>
622 drobbins 1.1
623     <pre caption="Commands to run once logged into tomsrtbt system">
624     # <i>mount /dev/fd0 /floppy </i>
625     # <i>cd /floppy; ./parted [drive you wish to operate on]</i>
626     (parted) <i> print </i>
627     Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
628     Disk label type: msdos
629     Minor Start End Type Filesystem Flags
630     1 0.031 2953.125 primary ntfs
631     3 2953.125 3133.265 primary linux-swap
632     2 3133.266 5633.085 primary ext3
633     4 5633.086 9787.148 extended
634     5 5633.117 6633.210 logical
635     6 6633.242 9787.148 logical ext3
636     (parted) <i> help resize </i>
637     resize MINOR START END resize filesystem on partition MINOR
638    
639     MINOR is the partition number used by Linux. On msdos disk labels, the
640     primary partitions number from 1-4, and logical partitions are 5
641     onwards.
642     START and END are in megabytes
643     (parted) <i> resize 2 3133.266 4000.000 </i>
644     </pre>
645    
646     <impo> Be patient! The computer is working! Just look at the hardware LED on
647     your case to see that it is really working. This should take between 2 and 30
648     minutes. </impo>
649    
650     <p>Once you have resized, boot back into your old linux as described. Then go to
651 swift 1.17 <uri link="/doc/en/gentoo-x86-install.xml">http://www.gentoo.org/doc/en/gentoo-x86-install.xml</uri> and follow steps 6 through 17. Don't forget to create the <path>/mnt/gentoo</path> directory before proceeding with step 7. In step 8 you have to download the requested stage-tarball as we're not working from a LiveCD. When chrooting, use the following command to flush your environment:
652     </p>
653 drobbins 1.1
654 swift 1.17 <pre caption = "Flushing the environment during chroot">
655     # <i>env -i chroot /mnt/gentoo /bin/bash</i>
656     </pre>
657 drobbins 1.1
658 swift 1.17 <p>
659 drobbins 1.1 Enjoy!
660     </p>
661     </body>
662     </section>
663     </chapter>
664     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20