/[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.80 - (hide annotations) (download) (as text)
Sun Sep 26 22:59:23 2010 UTC (4 years ago) by jkt
Branch: MAIN
Changes since 1.79: +5 -3 lines
File MIME type: application/xml
Provide a comment about why we do crazy stuff with env, and don't be crazy with
escaping. Thanks to nightmorph for suggestions.

1 zhen 1.3 <?xml version='1.0' encoding="UTF-8"?>
2 jkt 1.80 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/altinstall.xml,v 1.79 2010/09/26 21:59:41 jkt Exp $ -->
3 antifa 1.12 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 drobbins 1.1
5 nightmorph 1.77 <guide>
6 neysx 1.32
7 drobbins 1.1 <title>The Gentoo Linux alternative installation method HOWTO</title>
8 neysx 1.32
9     <author title="Contributor">
10     <mail link="gerrynjr@gentoo.org">Gerald Normandin Jr.</mail>
11     </author>
12     <author title="Contributor">
13     <mail link="lordviram@rebelpacket.net">Travis Tilley</mail>
14     </author>
15     <author title="Contributor">
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 nightmorph 1.70 <mail link="swift@gentoo.org">Sven Vermeulen</mail>
35 neysx 1.32 </author>
36     <author title="Reviewer">
37 swift 1.36 Ken Nowack <!-- antifa@gentoo.org seems out -->
38 neysx 1.32 </author>
39     <author title="Editor">
40     <mail link="blubber@gentoo.org">Tiemo Kieft</mail>
41     </author>
42 bennyc 1.37 <author title="Editor">
43     <mail link="bennyc@gentoo.org">Benny Chuang</mail>
44     </author>
45 swift 1.53 <author title="Editor">
46 swift 1.57 <mail link="smithj@gentoo.org">Jonathan Smith</mail>
47 swift 1.53 </author>
48 nightmorph 1.76 <author title="Editor">
49     <mail link="nightmorph"/>
50     </author>
51 swift 1.53
52 drobbins 1.1 <abstract>
53     This HOWTO is meant to be a repository of alternative Gentoo installation
54     methods, for those with special installation needs such as lack of a cdrom
55 gerrynjr 1.14 or a computer that can't boot cds.
56 drobbins 1.1 </abstract>
57    
58 rane 1.64 <!-- The content of this document is licensed under the CC-BY-SA license -->
59     <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
60 swift 1.21 <license/>
61    
62 jkt 1.80 <version>5</version>
63 jkt 1.79 <date>2010-09-26</date>
64 gerrynjr 1.9
65 drobbins 1.1 <chapter>
66     <title>About this document</title>
67     <section>
68     <body>
69    
70 neysx 1.32 <p>
71     If the standard boot-from-CD install method doesn't work for you (or you just
72     don't like it), help is now here. This document serves to provide a repository
73     of alternative Gentoo Linux installation techniques to those who need them.
74     Or, if you prefer, it serves as a place to put your wacky installation methods.
75     If you have an installation method that you yourself find useful, or you have
76     devised an amusing way of installing Gentoo, please don't hesitate to write
77 neysx 1.54 something up and post it on <uri link="http://bugs.gentoo.org">Bugzilla</uri>.
78 neysx 1.32 </p>
79 gerrynjr 1.9
80     </body>
81     </section>
82     </chapter>
83    
84     <chapter>
85 smithj 1.58 <title>Booting the Install CD with Smart BootManager</title>
86 gerrynjr 1.9 <section>
87 neysx 1.32 <body>
88 gerrynjr 1.9
89 neysx 1.32 <p>
90 swift 1.75 Download Smart BootManager available from
91 swift 1.36 <uri>http://btmgr.sourceforge.net/download.html</uri>.
92 neysx 1.32 Linux source or binary format and windows .exe versions are available as well
93     as many language packs. However, at this time, the preferred method would be to
94     use the binary format, as the source will not compile with newer versions of
95     NASM.
96     </p>
97 gerrynjr 1.9
98 neysx 1.32 <p>
99     Either compile the package from source or just grab the binary. There are
100     several options that can be utilized while creating your boot floppy, as seen
101     below.
102     </p>
103 gerrynjr 1.9
104     <pre caption="Smart BootManager Options">
105 neysx 1.49 sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
106 gerrynjr 1.9
107 neysx 1.49 -t theme select the theme to be used, in which the theme could be:
108 swift 1.75 us = English theme de = German theme
109     hu = Hungarian theme zh = Chinese theme
110 neysx 1.49 ru = Russian theme cz = Czech theme
111 swift 1.75 es = Spanish theme fr = French theme
112     pt = Portuguese theme
113    
114 gerrynjr 1.9
115 neysx 1.49 -d drv set the drive that you want to install Smart BootManager on;
116     for Linux:
117 swift 1.75 /dev/fd0 is the first floppy driver,
118 neysx 1.49 /dev/hda is the first IDE harddisk driver.
119     /dev/sda is the first SCSI harddisk driver.
120     for DOS:
121     0 is the first floppy drive
122     128 is the first hard drive;
123 gerrynjr 1.9
124     -c disable CD-ROM booting feature;
125    
126 gerrynjr 1.14 -b backup_file backup the data that will be overwritten for
127 gerrynjr 1.9 future uninstallation;
128    
129     -u backup_file uninstall Smart BootManager, should be used alone;
130    
131 neysx 1.49 -y do not ask any question or warning.
132 gerrynjr 1.9 </pre>
133    
134     <pre caption="Using sbminst to build the boot floppy">
135     # <i>sbminst -t us -d /dev/fd0</i>
136     </pre>
137    
138 neysx 1.32 <note>
139 swift 1.75 Replace <path>fd0</path> with your respective floppy device name if yours is
140     different.
141 neysx 1.32 </note>
142    
143     <p>
144     Now simply place the floppy in the floppy drive of the computer you'd like to
145 smithj 1.58 boot the Install CD on, as well as placing the Install CD in the CD-ROM and boot
146     the computer.
147 neysx 1.32 </p>
148    
149     <p>
150     You'll be greeted with the Smart BootManager dialog. Select your CD-ROM and
151 smithj 1.58 press ENTER to boot the Install CD. Once booted proceed with the standard
152 neysx 1.32 installation instructions.
153     </p>
154    
155     <p>
156     Further information on Smart BootManager may be found at
157     <uri>http://btmgr.sourceforge.net/</uri>
158     </p>
159 gerrynjr 1.9
160     </body>
161     </section>
162     </chapter>
163    
164     <chapter>
165 nightmorph 1.77 <title>Installation from non-Gentoo LiveCDs</title>
166 gerrynjr 1.9 <section>
167 nightmorph 1.77 <title>Introduction</title>
168 gerrynjr 1.9 <body>
169    
170 nightmorph 1.77 <impo>
171     The Gentoo developers cannot support you if something goes wrong with a
172     non-Gentoo LiveCD, as there's no way to fix, troubleshoot, or document every
173     quirk of every LiveCD out there. Only Gentoo LiveCDs are officially supported.
174     If you run into problems with alternative installation media, please visit the
175     <uri link="http://forums.gentoo.org">Gentoo Forums</uri> for community help.
176     </impo>
177 swift 1.51
178 nightmorph 1.77 <p>
179     It is possible to boot some other LiveCD besides the Gentoo-provided CDs. This
180     will give you a functional environment to use while you're compiling and
181     installing Gentoo. The instructions provided here should work in principle with
182     just about any other LiveCD.
183     </p>
184 swift 1.53
185 neysx 1.32 <p>
186 nightmorph 1.77 There are too many LiveCDs out there to <uri
187     link="http://distrowatch.com/search.php">list</uri>, but you might try <uri
188     link="http://www.knoppix.org/">Knoppix</uri>. It provides a full graphical
189     desktop, with office applications, web browsers, and games to keep you busy.
190     Knoppix is only available for x86 users, so depending on your needs you may need
191     to find a different LiveCD.
192 neysx 1.32 </p>
193 gerrynjr 1.9
194 neysx 1.56 <warn>
195 nightmorph 1.77 Be aware that if you save anything in your LiveCD's home directory while waiting
196 neysx 1.56 for your Gentoo system to install, it will not be available when you reboot
197     into Gentoo. Be sure to save important files on the hard disk or on some other
198     computer!
199     </warn>
200    
201 nightmorph 1.77 </body>
202     </section>
203     <section>
204     <title>Installation instructions</title>
205     <body>
206 neysx 1.32
207     <p>
208 nightmorph 1.77 Boot from your LiveCD. Open a terminal and run <c>su -</c> so you can change your
209     password. This lets you set the root password for the CD. You can now configure
210     <c>sshd</c> for remote login, if you need to install Gentoo remotely. Next,
211     you'll need to create the <path>/mnt/gentoo</path> mountpoint.
212 neysx 1.32 </p>
213 swift 1.16
214 swift 1.22 <pre caption="Creating the /mnt/gentoo mountpoint">
215     # <i>mkdir /mnt/gentoo</i>
216     </pre>
217    
218 neysx 1.32 <p>
219     At this point, you can pick up with the standard install documentation at <uri
220     link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=4">part 4</uri>.
221 swift 1.53 However, when you are asked to mount the proc system, issue the following
222 neysx 1.32 command instead:
223     </p>
224 swift 1.22
225 neysx 1.32 <pre caption="Bind-mounting the proc pseudo filesystem">
226 swift 1.16 # <i>mount -o bind /proc /mnt/gentoo/proc</i>
227     </pre>
228    
229 smithj 1.60 <p>
230 nightmorph 1.77 When you're ready to unpack the stage tarball in <uri
231 nightmorph 1.78 link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=5_sect4">part 5</uri>, you
232 nightmorph 1.77 will need to use a different <c>tar</c> command to ensure that proper group IDs
233     are enforced on the unpacked stage:
234     </p>
235    
236     <pre caption="Unpacking the stage tarball">
237     # <i>tar --numeric-owner -xvjpf stage3-*.tar.bz2</i>
238     </pre>
239    
240     <p>
241 nightmorph 1.78 Once you're ready to chroot into your unpacked stage in <uri
242     link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=6#doc_chap1">part
243     6</uri>, you will need to use a different chroot command sequence. This ensures
244     that your environment variables are properly setup.
245     </p>
246    
247     <pre caption="Chrooting into the new environment">
248 jkt 1.80 <comment>(Some LiveCDs use a funny environment setup, hence the -i option for
249     cleaning it up to a reasonable state.)</comment>
250     # <i>chroot / /bin/env -i TERM=TERM /bin/bash</i>
251 nightmorph 1.78 # <i>env-update</i>
252     # <i>source /etc/profile</i>
253     # <i>export PS1="(chroot) $PS1"</i>
254     </pre>
255    
256     <p>
257 nightmorph 1.77 Finally, know that some Portage FEATURES may not work in your LiveCD. Especially
258 smithj 1.60 watch out for <c>userpriv</c> and <c>usersandbox</c>. If you find yourself
259     getting errors, it might be wise to disable some or all of the optional
260 nightmorph 1.77 FEATURES.
261 smithj 1.60 </p>
262    
263 swift 1.75 <!--
264 swift 1.50 Commenting out due to #78716. If it needs to be restated again, note
265     that some will require to bind-mount it, others don't, and that you have
266     a 50-50 chance of winning the gold strike.
267 swift 1.75
268 swift 1.50
269 swift 1.45 <p>
270     You will also need to bind-mount the device tree to resolve permission issues
271     with various device files.
272     </p>
273    
274 swift 1.50 < ! - -
275 swift 1.45 If this doesn't seem to work, #71901 mentions the following command:
276     mount -o remount,rw,nosuid /dev/hd* /mnt/hd*
277     before all. Looks weird to me, but if this doesn't work, we might want to try
278     that.
279 swift 1.50 - - >
280 swift 1.45
281     <pre caption="Bind-mounting the device tree">
282     # <i>mount -o bind /dev /mnt/gentoo/dev</i>
283     </pre>
284 swift 1.50 -->
285 swift 1.45
286 gerrynjr 1.9 </body>
287     </section>
288     </chapter>
289    
290     <chapter>
291 neysx 1.32 <title>Diskless install using PXE boot</title>
292     <section>
293     <title>Requirements</title>
294     <body>
295 drobbins 1.1
296 neysx 1.32 <p>
297     You will need a network card on the diskless client that uses the PXE protocol
298     to boot, like many 3com cards. You will also need a BIOS that supports booting
299     from PXE.
300     </p>
301 drobbins 1.1
302     </body>
303     </section>
304 neysx 1.32 <section>
305     <title>Server base setup</title>
306 gerrynjr 1.9 <body>
307    
308 neysx 1.32 <p>
309     Create directories: The first thing to do is to create the directories where
310     your diskless system will be stored. Create a directory called
311     <path>/diskless</path> which houses a directory for each diskless client. For
312     the rest of this howto we'll be working on the client 'eta'.
313     </p>
314 gerrynjr 1.9
315 rane 1.62 <pre caption="Directory setup">
316 gerrynjr 1.9 # <i>mkdir /diskless</i>
317     # <i>mkdir /diskless/eta</i>
318     # <i>mkdir /diskless/eta/boot</i>
319     </pre>
320    
321 neysx 1.32 <p>
322     DHCP and TFTP setup: The client will get boot informations using DHCP and
323 nightmorph 1.76 download all the required files using TFTP.
324     </p>
325    
326     <p>
327     For dhcpd, just run <c>emerge dhcp</c> (or any other DHCP server of your
328     choice). Make sure that the correct interface is selected in
329     <path>/etc/conf.d/dhcpd</path>, and configure it for your basic needs. Then, add
330     the following on <path>/etc/dhcp/dhcpd.conf</path>.
331 neysx 1.32 </p>
332 gerrynjr 1.9
333 neysx 1.32 <note>
334 nightmorph 1.76 This provides a static IP address for the client and the path of a PXE boot
335 swift 1.75 image, here <path>pxegrub</path>. You have to replace the MAC address of the
336 nightmorph 1.76 ethernet card of the client and the directory where you will put the client
337 swift 1.75 files with the one you use.
338 neysx 1.32 </note>
339 gerrynjr 1.9
340 jkt 1.74 <pre caption="dhcpd.conf">
341 gerrynjr 1.9 option option-150 code 150 = text ;
342 swift 1.46 ddns-update-style none ;
343 gerrynjr 1.9 host eta {
344     hardware ethernet 00:00:00:00:00:00;
345 cam 1.24 fixed-address <i>ip.add.re.ss</i>;
346 gerrynjr 1.9 option option-150 "/eta/boot/grub.lst";
347     filename "/eta/boot/pxegrub";
348     }
349     </pre>
350    
351 neysx 1.32 <p>
352 nightmorph 1.73 Next you'll need to configure your interface in <path>/etc/conf.d/net</path> so
353     that it doesn't get cleared at bootup. See <path>/etc/conf.d/net.example</path>
354     for more information.
355     </p>
356    
357     <pre caption="/etc/conf.d/net">
358     <comment>(Replace eth0 with the correct interface)</comment>
359     config_eth0=( "noop" )
360     </pre>
361    
362     <p>
363 neysx 1.32 For TFTP, emerge <c>app-admin/tftp-hpa</c>. In
364     <path>/etc/conf.d/in.tftpd</path>, put the following :
365     </p>
366 gerrynjr 1.9
367     <pre caption="in.tftpd">
368     INTFTPD_PATH="/diskless"
369     INTFTPD_USER="nobody"
370     INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
371     </pre>
372    
373 neysx 1.32 <p>
374 nightmorph 1.68 Setup GRUB: To provide PXE booting I use GRUB with the <c>netboot</c> USE flag
375     enabled. Once GRUB is compiled, copy the PXE image to the diskless client's
376     boot directory. Then edit its <path>grub.lst</path> config file.
377 neysx 1.32 </p>
378 gerrynjr 1.9
379 rane 1.62 <pre caption="Grub setup">
380 jkt 1.72 # <i>echo "sys-boot/grub netboot" &gt;&gt; /etc/portage/package.use</i>
381 nightmorph 1.68 # <i>emerge -av grub</i>
382     # <i>cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub</i>
383 gerrynjr 1.9 # <i>nano -w /diskless/eta/boot/grub.lst</i>
384     </pre>
385    
386     <pre caption="grub.lst">
387     default 0
388     timeout 30
389    
390     title=Diskless Gentoo
391     root (nd)
392 cam 1.24 kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=<i>ip.add.re.ss</i>:/diskless/eta
393 drobbins 1.1
394 swift 1.53 <comment># For the nfsroot option, the IP address is the one of the server and
395     the directory is the one where your diskless client files are located (on the server).</comment>
396 gerrynjr 1.9 </pre>
397    
398 neysx 1.32 <p>
399     Setup NFS: NFS is quite easy to configure. The only thing you have to do is to
400 neysx 1.67 add a line on the <path>/etc/exports</path> config file:
401 neysx 1.32 </p>
402 gerrynjr 1.9
403     <pre caption="/etc/exports">
404     # <i>nano -w /etc/exports</i>
405 neysx 1.32 # /etc/exports: NFS file systems being exported. See exports(5).
406 gerrynjr 1.9 /diskless/eta eta(rw,sync,no_root_squash)
407     </pre>
408    
409 neysx 1.32 <p>
410 neysx 1.67 Update your hosts: One important thing to do now is to modify your
411 neysx 1.32 <path>/etc/hosts</path> file to fit your needs.
412     </p>
413 gerrynjr 1.9
414     <pre caption="/etc/hosts">
415     127.0.0.1 localhost
416    
417     192.168.1.10 eta.example.com eta
418     192.168.1.20 sigma.example.com sigma
419     </pre>
420 neysx 1.32
421 gerrynjr 1.9 </body>
422     </section>
423 neysx 1.32 <section>
424     <title>Creating the system on the server</title>
425 gerrynjr 1.9 <body>
426    
427 neysx 1.32 <p>
428 swift 1.75 You might want to reboot the server with a Gentoo Install CD, although you can
429     very well continue immediately if you know how to proceed with the Gentoo
430     Installation Instructions from an existing installation. Follow the standard
431     install procedure as explained in the <uri link="/doc/en/handbook/">Gentoo
432     Handbook</uri> BUT with the following differences:
433     When you mount the file system, do the following (where <path>hdaX</path> is
434     the partition where you created the <path>/diskless</path> directory). You do
435     not need to mount any other partitions as all of the files will reside in the
436     <path>/diskless/eta</path> directory.
437 neysx 1.32 </p>
438 gerrynjr 1.9
439 rane 1.62 <pre caption="Mounting the filesystem">
440 rane 1.66 #<i> mount /dev/hdaX /mnt/gentoo</i>
441 gerrynjr 1.9 </pre>
442    
443 neysx 1.32 <p>
444     Stage tarballs and chroot: This example uses a stage3 tarball. Mount
445     <path>/proc</path> to your diskless directory and chroot into it to continue
446     with the install. Then follow the installation manual until kernel
447     configuration.
448     </p>
449 gerrynjr 1.9
450 neysx 1.32 <warn>
451     Be very careful where you extract your stage tarball. You don't want to end up
452     extracting over your existing installation.
453     </warn>
454 gerrynjr 1.9
455 rane 1.62 <pre caption="Extracting the stage tarball">
456 gerrynjr 1.9 # <i>cd /mnt/gentoo/diskless/eta/</i>
457     # <i>tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2</i>
458     # <i>mount -t proc /proc /mnt/gentoo/diskless/eta/proc</i>
459     # <i>cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf</i>
460     # <i>chroot /mnt/gentoo/diskless/eta/ /bin/bash</i>
461     # <i>env-update</i>
462     # <i>source /etc/profile</i>
463     </pre>
464    
465 neysx 1.32 <p>
466     Kernel configuration: When you do the <c>make menuconfig</c> of your kernel
467     configuration, don't forget to enable the following options with the others
468     recommended into the install howto.
469     </p>
470 gerrynjr 1.9
471     <pre caption="menuconfig options">
472     - Your network card device support
473 swift 1.34 <comment>(In the kernel, *not* as a module!)</comment>
474 gerrynjr 1.9
475     - Under "Networking options" :
476    
477     [*] TCP/IP networking
478     [*] IP: kernel level autoconfiguration
479     [*] IP: DHCP support
480     [*] IP: BOOTP support
481    
482    
483     - Under "File systems --> Network File Systems" :
484    
485     &lt;*&gt; NFS file system support
486     [*] Provide NFSv3 client support
487     [*] Root file system on NFS
488     </pre>
489    
490 neysx 1.32 <p>
491 swift 1.43 Save the kernel in your chrooted <path>/</path> (not in <path>/boot</path>)
492 swift 1.75 according to the pxegrub setting defined earlier. Next configure your
493 swift 1.43 diskless client's <path>/etc/fstab</path>.
494 neysx 1.32 </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 vapier 1.41 tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0
501 gerrynjr 1.9 </pre>
502    
503 neysx 1.32 <p>
504 swift 1.35 You also need to prevent the client to run a filesystem check:
505     </p>
506    
507     <pre caption="Preventing the client to run a filesystem check">
508     # <i>touch /fastboot</i>
509     # <i>echo "touch /fastboot" &gt;&gt; /etc/conf.d/local.start</i>
510     </pre>
511    
512     <p>
513 swift 1.43 Install <c>nfs-utils</c> since your client will heavily depend on it:
514     </p>
515    
516     <pre caption="Installing nfs-utils">
517     # <i>emerge nfs-utils</i>
518     </pre>
519    
520     <p>
521 neysx 1.32 Bootloader. Don't install another bootloader because we already have one -
522     pxegrub. Simply finish the install and restart the server. Start the services
523     you'll need to boot the new client: DHCP, TFTPD, and NFS.
524     </p>
525 gerrynjr 1.9
526     <pre caption="Starting services">
527     # <i>/etc/init.d/dhcp start</i>
528 swift 1.43 # <i>/etc/init.d/in.tftpd start</i>
529 gerrynjr 1.9 # <i>/etc/init.d/nfs start</i>
530     </pre>
531    
532 neysx 1.32 </body>
533     </section>
534     <section>
535     <title>Booting the new client</title>
536     <body>
537 gerrynjr 1.9
538 neysx 1.32 <p>
539     For the new client to boot properly, you'll need to configure the bios and the
540     network card to use PXE as the first boot method - before CD-ROM or floppy. For
541     help with this consult your hardware manuals or manufacturers website. The
542     network card should get an IP address using DHCP and download the GRUB PXE
543     image using TFTP. Then, you should see a nice black and white GRUB bootmenu
544     where you will select the kernel to boot and press Enter. If everything is ok
545     the kernel should boot, mount the root filesystem using NFS and provide you
546     with a login prompt. Enjoy.
547     </p>
548 gerrynjr 1.9
549 neysx 1.32 </body>
550     </section>
551 gerrynjr 1.9 </chapter>
552 drobbins 1.1
553 neysx 1.32 <chapter>
554 swift 1.75 <title>Installing Gentoo from an existing Linux distribution</title>
555 neysx 1.32 <section>
556     <title>Requirements</title>
557     <body>
558 drobbins 1.1
559 neysx 1.32 <p>
560     In order to install Gentoo from your existing Linux distribution you need to
561 drobbins 1.1 have chroot command installed, and have a copy of the Gentoo installation
562     tarball or ISO you want to install. A network connection would be preferable if
563     you want more than what's supplied in your tarball. (by the way, a tarball is
564     just a file ending in .tbz or .tar.gz). The author used RedHat Linux 7.3 as the
565 neysx 1.32 "host" operating system, but it is not very important. Let's get started!
566     </p>
567    
568 drobbins 1.1 </body>
569     </section>
570 neysx 1.32 <section>
571     <title>Overview</title>
572     <body>
573    
574     <p>
575     We will first allocate a partition to Gentoo by resizing our existing Linux
576 swift 1.75 partition, mount the partition, untar the tarball to the partition that is
577     mounted, chroot inside the pseudo-system and start building. Once the bootstrap
578     process is done, we will do some final configuration on the system so as to
579     make sure it boots, then we are ready to reboot and use Gentoo.
580 neysx 1.32 </p>
581 drobbins 1.1
582     </body>
583     </section>
584 neysx 1.32 <section>
585     <title>How should we make space for Gentoo?</title>
586 drobbins 1.1 <body>
587    
588     <p>
589 neysx 1.32 The root partition is the filesystem mounted under <path>/</path>. A quick run
590 swift 1.75 of <c>mount</c> on my system shows what I am talking about. We well also use
591     <c>df</c> (disk free) to see how much space I have left and how I will be
592     resizing. Note that it is not mandatory to resize your root partition! You
593     could be resizing anything else supported by our resizer, but let's talk about
594     that later.
595 neysx 1.32 </p>
596 drobbins 1.1
597     <pre caption="Filesystem information">
598     # <i>mount</i>
599 vapier 1.41 /dev/hdb2 on / type ext3 (rw)
600     none on /proc type proc (rw)
601     none on /dev/pts type devpts (rw,gid=5,mode=620)
602     none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
603 drobbins 1.1 # <i>df -h </i>
604 swift 1.75 Filesystem Size Used Avail Use% Mounted on
605 drobbins 1.1 /dev/hdb2 4.0G 1.9G 2.4G 82% /
606 swift 1.75 none 38M 0 38M 0% /dev/shm
607 drobbins 1.1 </pre>
608    
609 neysx 1.32 <p>
610     As we can see, the partition mounted as <path>/</path> named
611     <path>/dev/hdb2</path> has 2.4 gigabytes free. In my case, I think I will
612     resize it as to leave 400Megs free of space, therefore allocating 2 gigabytes
613 neysx 1.67 for Gentoo. Not bad, I could have quite some stuff installed. However, I think
614 neysx 1.32 that even one gigabyte is enough for most users. So let's partition this thing!
615     </p>
616 drobbins 1.1
617 swift 1.21 </body>
618     </section>
619     <section>
620 swift 1.75 <title>Building parted to resize partition</title>
621 drobbins 1.1 <body>
622 swift 1.21
623     <p>
624 neysx 1.32 Parted is an utility supplied by the GNU foundation, an old and respectable
625     huge project whose software you are using in this very moment. There is one
626     tool, however, that is extremely useful for us at the moment. It's called
627     parted, partition editor and we can get it from
628     <uri>http://www.gnu.org/software/parted/</uri>
629 drobbins 1.1 </p>
630 swift 1.21
631     <note>
632 neysx 1.67 There are other tools for doing resize of partitions as well, but the author is
633 neysx 1.32 unsure/uninterested whether PartitionMagic(tm) or other software of the kind do
634 swift 1.75 the job. It's the reader's job to check them out
635 swift 1.21 </note>
636 drobbins 1.1
637 swift 1.75 <p>
638 neysx 1.32 Look up on that page the type of filesystem you want to resize and see if
639     parted can do it. If not, you're out of luck, you will have to destroy some
640     partition to make space for Gentoo, and reinstall back. Go ahead by downloading
641     the software, install it. Here we have a problem. We want to resize our Linux
642     root partition, therefore we must boot from a floppy disk a minimal linux
643     system and use previously-compiled parted copied to a diskette in order to
644     resize <path>/</path>. However, if you can unmount the partition while still
645     in Linux you are lucky, you don't need to do what follows. Just compile parted
646     and run it on an unmounted partition you chose to resize. Here's how I did it
647     for my system.
648 drobbins 1.1 </p>
649    
650 swift 1.21 <impo>
651 neysx 1.32 Make sure that the operations you want to do on your partition are supported by
652     parted!
653 swift 1.21 </impo>
654 drobbins 1.1
655 swift 1.21 <p>
656 neysx 1.49 Get the mininux boot/root disk (a 2.4-powered mini Linux distribution on a
657     floppy - free of charge) from <uri>http://mininux.free.fr/uk/</uri>, create a
658     floppy as suggested in the Documentation that accompanies the software package
659     and insert a new floppy in the drive for the next step.
660 swift 1.21 </p>
661 drobbins 1.1
662 swift 1.21 <note>
663     Note again that Linux is synonym of "There's one more way to do it". Your
664 drobbins 1.1 objective is to run parted on an unmounted partition so it can do its work. You
665 neysx 1.67 might use some boot/root diskset other than mininux. You might not even
666 swift 1.75 need to do this step at all, ie. you might only have umount the filesystem you
667     want to repartition in your Linux session and run parted on it.
668 swift 1.21 </note>
669 drobbins 1.1
670     <pre caption="Utility disk creation">
671     # <i>mkfs.minix /dev/fd0</i>
672     480 inodes
673     1440 blocks
674     Firstdatazone=19 (19)
675     Zonesize=1024
676     Maxsize=268966912
677     </pre>
678    
679 swift 1.21 <p>
680 neysx 1.32 We will now proceed with the build of parted. If it's not already downloaded
681 swift 1.75 and untarred, do so now and <c>cd</c> into the corresponding directory. Now run
682     the following set of commands to build the utility and copy it to your floppy
683     disk.
684 swift 1.21 </p>
685 drobbins 1.1
686     <pre caption="Building the utility floppy">
687 swift 1.75 # <i> mkdir /floppy; mount -t minix /dev/fd0 /floppy &amp;&amp;
688     export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" &amp;&amp; ./configure
689 drobbins 1.1 &amp;&amp; make &amp;&amp; cp parted/parted /floppy &amp;&amp; umount /floppy </i>
690     </pre>
691    
692     <p>
693 neysx 1.32 Congratulations, you are ready to reboot and resize your partition. Do this
694     only after taking a quick look at the parted documentation on the GNU website.
695     The resize should take under 30 minutes for the largest hard-drives, be
696 swift 1.48 patient. Reboot your system with the mininux boot disk (just pop it inside),
697 neysx 1.32 and once you are logged in, switch the disk in the drive with your utility disk
698 swift 1.75 we have created above and type <c>mount /dev/fd0 /floppy</c> to have parted
699     under <path>/floppy</path>. There you go. Run parted and you will be able to
700     resize your partition. Once this lenghty process done, we are ready to have the
701     real fun, by installing Gentoo. Reboot back into your old Linux system for now.
702     The drive you wish to operate on is the drive containing the partition we want
703     to resize. For example, if we want to resize /dev/hda3, the drive is /dev/hda.
704 swift 1.8 </p>
705 drobbins 1.1
706 swift 1.48 <pre caption="Commands to run once logged into mininux system">
707 drobbins 1.1 # <i>mount /dev/fd0 /floppy </i>
708     # <i>cd /floppy; ./parted [drive you wish to operate on]</i>
709     (parted) <i> print </i>
710     Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
711     Disk label type: msdos
712     Minor Start End Type Filesystem Flags
713 swift 1.75 1 0.031 2953.125 primary ntfs
714     3 2953.125 3133.265 primary linux-swap
715     2 3133.266 5633.085 primary ext3
716     4 5633.086 9787.148 extended
717     5 5633.117 6633.210 logical
718     6 6633.242 9787.148 logical ext3
719 drobbins 1.1 (parted) <i> help resize </i>
720     resize MINOR START END resize filesystem on partition MINOR
721    
722     MINOR is the partition number used by Linux. On msdos disk labels, the
723     primary partitions number from 1-4, and logical partitions are 5
724     onwards.
725     START and END are in megabytes
726     (parted) <i> resize 2 3133.266 4000.000 </i>
727     </pre>
728    
729 neysx 1.32 <impo>
730 neysx 1.67 Be patient! The computer is working! Just look at the harddrive LED on your case
731 neysx 1.32 to see that it is really working. This should take between 2 and 30 minutes.
732     </impo>
733 drobbins 1.1
734 neysx 1.32 <p>
735     Once you have resized, boot back into your old linux as described. Then go to
736     <uri link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=4">The Gentoo
737     Handbook: Preparing the Disks</uri> and follow the instructions. When
738     chrooting, use the following command to flush your environment:
739 swift 1.17 </p>
740 drobbins 1.1
741 neysx 1.32 <pre caption="Flushing the environment during chroot">
742 swift 1.39 # <i>env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash</i>
743 swift 1.42 # <i>/usr/sbin/env-update</i>
744 swift 1.40 # <i>source /etc/profile</i>
745 swift 1.17 </pre>
746 drobbins 1.1
747 swift 1.17 <p>
748 drobbins 1.1 Enjoy!
749     </p>
750 neysx 1.32
751 drobbins 1.1 </body>
752     </section>
753     </chapter>
754     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20