/[gentoo]/xml/htdocs/doc/en/gentoo-x86-install.xml
Gentoo

Contents of /xml/htdocs/doc/en/gentoo-x86-install.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.82 - (hide annotations) (download) (as text)
Thu Mar 6 22:07:05 2003 UTC (14 years, 7 months ago) by zhen
Branch: MAIN
Changes since 1.81: +5 -10 lines
File MIME type: application/xml
fixed the lilo section

1 zhen 1.16 <?xml version="1.0" encoding="UTF-8"?>
2 drobbins 1.1 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3 zhen 1.3 <guide link="/doc/en/gentoo-x86-install.xml">
4 jhhudso 1.74 <title>Gentoo Linux 1.4_rc3 Installation Instructions</title>
5 zhen 1.16 <author title="Chief Architect">
6     <mail link="drobbins@gentoo.org">Daniel Robbins</mail>
7     </author>
8     <author title="Author">Chris Houser</author>
9     <author title="Author">
10 jhhudso 1.76 <mail link="">Jerry Alexandratos</mail>
11 zhen 1.16 </author>
12     <author title="Ghost">
13     <mail link="g2boojum@gentoo.org">Grant Goodyear</mail>
14     </author>
15     <author title="Editor">
16     <mail link="zhen@gentoo.org">John P. Davis</mail>
17     </author>
18     <author title="Editor">
19     <mail link="Pierre-Henri.Jondot@wanadoo.fr">Pierre-Henri Jondot</mail>
20     </author>
21     <author title="Editor">
22     <mail link="stocke2@gentoo.org">Eric Stockbridge</mail>
23     </author>
24     <author title="Editor">
25     <mail link="rajiv@gentoo.org">Rajiv Manglani</mail>
26     </author>
27 seo 1.41 <author title="Editor">
28     <mail link="seo@gentoo.org">Jungmin Seo</mail>
29     </author>
30 zhware 1.43 <author title="Editor">
31     <mail link="zhware@gentoo.org">Stoyan Zhekov</mail>
32     </author>
33 jhhudso 1.75 <author title="Editor">
34     <mail link="jhhudso@gentoo.org">Jared Hudson</mail>
35     </author>
36     <author title="Editor">
37     <mail link="">Colin Morey</mail>
38     </author>
39 zhen 1.16 <abstract>These instructions step you through the process of installing Gentoo
40 jhhudso 1.74 Linux 1.4_rc3. The Gentoo Linux installation process supports various installation
41 zhen 1.6 approaches, depending upon how much of the system you want to custom-build from
42     scratch.
43     </abstract>
44 zhen 1.82 <version>2.3.20</version>
45     <date>6 March 2003</date>
46 zhen 1.16 <chapter>
47     <title>About the Install</title>
48     <section>
49     <body>
50 zhen 1.26 <p>This new boot CD will boot from nearly any modern IDE CD-ROM drive, as well
51 jhhudso 1.71 as many SCSI CD-ROM drives, assuming that your CD-ROM and BIOS both support booting.
52 drobbins 1.21 Included on the CD-ROM is Linux support for IDE (and PCI IDE) (built-in to the
53     kernel) as well as support for all SCSI devices (available as modules.) In
54     addition, we provide modules for literally every kind of network card that
55     Linux supports, as well as tools to allow you to configure your network and
56 jhhudso 1.75 establish outbound (as well as inbound) <c>ssh</c> connections and to download
57 drobbins 1.21 files. </p>
58 zhen 1.26 <p>To install from the build CD, you will need to have a 486+ processor and
59 drobbins 1.69 ideally at least 64 Megabytes of RAM. (Gentoo Linux has been successfully
60 drobbins 1.21 built with 64MB of RAM + 64MB of swap space, but the build process is awfully
61     slow under those conditions.)</p>
62 zhen 1.26 <p>Gentoo Linux can be installed using one of three &quot;stage&quot; tarball files. The
63 drobbins 1.21 one you choose depends on how much of the system you want to compile yourself.
64 jhhudso 1.75 The stage1 tarball is used when you want to bootstrap and build the entire
65 drobbins 1.21 system from scratch. The stage2 tarball is used for building the entire system
66 jhhudso 1.75 from a bootstrapped state. The stage3 tarball already contains a basic Gentoo Linux system.</p>
67 drobbins 1.70 <p><b>So, should you choose to start from a stage1, stage2, or stage3 tarball?</b>
68     Starting from a stage1 allows you to have total control over the optimization settings
69     and optional build-time functionality that is initially enabled on your system. This
70 jhhudso 1.75 makes stage1 installs good for power users who know what they are doing. Stage2 installs
71     allow you to skip the bootstrap process, and doing this is fine if you are happy with
72 drobbins 1.70 the optimization settings that we chose for your particular stage2 tarball. Choosing to
73     go with a stage3 allows for the fastest install of Gentoo Linux, but also means that
74 jhhudso 1.75 your base system will have the optimization settings that we chose for you. Since major
75     releases of Gentoo Linux have stage3's specifically optimized for various popular processors,
76     this may be sufficient for you. <b>If you're installing Gentoo Linux for the first time, consider
77 drobbins 1.70 using a stage3 tarball for installation.</b></p>
78    
79    
80 jhhudso 1.75 <p> So, how does one begin the install process? First, you will want to decide which one of our LiveCD ISO images to grab from
81 jhhudso 1.74 <uri>http://www.ibiblio.org/gentoo/releases/1.4_rc3/x86/</uri> .
82 drobbins 1.22 </p>
83 zhen 1.26 <p> The LiveCDs are full CD images that should be burned to a CDR or CD-RW
84 jhhudso 1.75 using CD burning software. Currently, we have two types of LiveCDs. The first
85     carries the &quot;gentoo-basic&quot; label, and is approximately 40MB in size, contains only the stage 1 tarball and lives
86 drobbins 1.24 in the <path>x86/livecd/</path> directory. This LiveCD is of minimal size to
87     allow for a initial quick download and contains a stage1 tarball that can be
88     found in <path>/mnt/cdrom/gentoo/</path> after the CD has booted.</p>
89 seemant 1.78 <p>The second flavor of LiveCD we currently offer is labeled &quot;gentoo-3stages.&quot;
90 jhhudso 1.75 This CD is also found in <path>x86/livecd</path>. It
91 jhhudso 1.77 contains stage 1, 2 and 3 tarballs. Using this LiveCD, it will be possible
92 jhhudso 1.75 for you to install a fully-functional Gentoo Linux system very quickly.</p>
93 jhhudso 1.77 <p><b>What happened to i686, pentium3, athlon, athlon-mp stages, LiveCDs and GRP (Gentoo Reference Platform)?</b>
94 seemant 1.78 Gentoo 1.4_rc3 is meant to be a minimal release candidate only. 1.4_rc4 will contain all the usual x86 architectures and GRP. If you want to install stages optimized for these other x86 architectures or GRP, use the 1.4_rc2 documentation, which can be found at <uri>http://www.gentoo.org/doc/en/gentoo-x86-1.4_rc2-install.xml</uri>
95 jhhudso 1.77 </p>
96 drobbins 1.70 <impo>If you encounter a problem with any part of the install and wish to
97 drobbins 1.21 report it as a bug, report it to <uri>http://bugs.gentoo.org</uri>. If the bug
98 jhhudso 1.75 needs to be sent upstream to the original software developers (eg the KDE team) the
99 drobbins 1.70 <e>Gentoo Linux developers</e> will take care of that for you.
100     </impo>
101 jhhudso 1.75 <p>Now, let us quickly review the install process. First, we will download, burn
102     and boot a LiveCD. After getting a root prompt, we will create partitions, create
103 drobbins 1.21 our filesystems, and extract either a stage1, stage2 or stage3 tarball. If we
104     are using a stage1 or stage2 tarball, we will take the appropriate steps to get
105 jhhudso 1.75 our system to stage3. Once our system is at stage3, we can configure it
106 seemant 1.78 (customize configuration files, install a boot loader, etc) and boot it and have a
107 drobbins 1.21 fully-functional Gentoo Linux system. Depending on what stage of the build
108 jhhudso 1.75 process you're starting from, here is what is required for installation: </p>
109 zhen 1.26 <table>
110 zhen 1.16 <tr>
111     <th>stage tarball</th>
112     <th>requirements for installation</th>
113     </tr>
114     <tr>
115     <ti>1</ti>
116 jhhudso 1.75 <ti>partition/filesystem setup, emerge sync, bootstrap, emerge system, emerge kernel sources, final configuration</ti>
117 zhen 1.16 </tr>
118     <tr>
119     <ti>2</ti>
120 jhhudso 1.75 <ti>partition/filesystem setup, emerge sync, emerge system, emerge kernel sources, final configuration</ti>
121 zhen 1.16 </tr>
122     <tr>
123     <ti>3</ti>
124     <ti>partition/filesystem setup, emerge sync, final configuration</ti>
125     </tr>
126     </table>
127     </body>
128     </section>
129     </chapter>
130     <chapter>
131     <title>Booting</title>
132     <section>
133     <body>
134 jhhudso 1.75 <p>Start by booting the LiveCD. You should see a fancy boot screen
135 drobbins 1.21 with the Gentoo Linux logo on it. At this screen, you can hit Enter to begin the boot process,
136 drobbins 1.70 or boot the LiveCD with custom boot options by typing <c>gentoo opt1 opt2</c> and then hitting Enter. To see
137     a detailed description of available boot options, press F2 to view the help screen.</p>
138    
139 jhhudso 1.75 <p> Once you hit Enter, you will be greeted with the standard kernel
140     booting output, kernel and initrd messages, followed by the normal Gentoo
141     Linux boot sequence. You will be automatically logged in as
142     &quot;<c>root</c>&quot; and the root password will be set to a random string
143     for security purposes. You should have a root (&quot;<c>#</c>&quot;) prompt
144 seemant 1.78 on the current console, and can also switch to other consoles by pressing
145 jhhudso 1.75 Alt-F2, Alt-F3 and Alt-F4. Get back to the one you started on by pressing
146     Alt-F1. At this point you should set the root password, type passwd and
147     follow the prompts.
148 zhen 1.6 </p>
149 zhen 1.26 <p>You've probably also noticed that above your <c>#</c> prompt is a bunch of help text
150 drobbins 1.70 that explains how to do things like configure your Linux networking and telling you where you can find
151 drobbins 1.21 the Gentoo Linux stage tarballs and packages on your CD.
152 zhen 1.6 </p>
153 zhen 1.16 </body>
154     </section>
155     </chapter>
156     <chapter>
157     <title>Load Kernel Modules</title>
158     <section>
159     <body>
160     <p>If the PCI autodetection missed some of your hardware, you
161 jhhudso 1.75 will have to load the appropriate kernel modules manually.
162 zhen 1.6 To view a list of all available network card modules, type <c>ls
163     /lib/modules/*/kernel/drivers/net/*</c>. To load a particular module,
164     type:
165     </p>
166 jhhudso 1.81 <pre caption="PCI Modules Configuration">
167 drobbins 1.1 # <c>modprobe pcnet32</c>
168 zhen 1.6 <comment>(replace pcnet32 with your NIC module)</comment>
169 jhhudso 1.81 </pre>
170 drobbins 1.70 <p>Likewise, if you want to be able to access any SCSI hardware that wasn't detected
171 jhhudso 1.75 during the initial boot autodetection process, you will need to load the appropriate
172 zhen 1.6 modules from /lib/modules, again using <c>modprobe</c>:
173     </p>
174 jhhudso 1.81 <pre caption="Loading SCSI Modules">
175 drobbins 1.1 # <c>modprobe aic7xxx</c>
176 jhhudso 1.73 <comment>(replace aic7xxx with your SCSI adapter module)</comment>
177 drobbins 1.1 # <c>modprobe sd_mod</c>
178 jhhudso 1.73 <comment>(sd_mod is the module for SCSI disk support)</comment>
179 jhhudso 1.81 </pre>
180 zhen 1.6 <note>
181 drobbins 1.21 Support for a SCSI CD-ROMs and disks are built-in in the kernel.
182 zhen 1.52 </note>
183 jhhudso 1.75 <p>If you are using hardware RAID, you will need to load the
184 zhen 1.6 ATA-RAID modules for your RAID controller.
185     </p>
186 jhhudso 1.81 <pre caption="Loading RAID Modules">
187 zhen 1.33 # <c>modprobe ataraid</c>
188     # <c>modprobe pdcraid</c>
189 jhhudso 1.81 <comment>(Promise Raid Controller)</comment>
190 zhen 1.33 # <c>modprobe hptraid</c>
191 jhhudso 1.81 <comment>(Highpoint Raid Controller)</comment>
192     </pre>
193 zhen 1.16 <p>The Gentoo LiveCD should have enabled DMA on your disks, but if it did not,
194 zhen 1.6 <c>hdparm</c> can be used to set DMA on your drives. </p>
195 jhhudso 1.81 <pre caption="Setting DMA">
196     <comment>Replace hdX with your disk device.</comment>
197 drobbins 1.21 # hdparm -d 1 /dev/hdX <comment>Enables DMA </comment>
198 jhhudso 1.75 # hdparm -d1 -A1 -m16 -u1 -a64 /dev/hdX
199     <comment>(Enables DMA and other safe performance-enhancing options)</comment>
200     # hdparm -X66 /dev/hdX
201     <comment>(Force-enables Ultra-DMA -- dangerous -- may cause some drives to mess up)</comment>
202     </pre>
203 zhen 1.16 </body>
204     </section>
205     </chapter>
206 drobbins 1.70 <!-- THIS SECTION SHOULD BE DEPRECATED WITH HOTPLUG ENABLED IN 1.4_rc3 (drobbins)
207 zhen 1.16 <chapter>
208     <title>Loading PCMCIA Kernel Modules</title>
209     <section>
210     <body>
211 drobbins 1.70 <p>If you have a PCMCIA network card, you will need to perform a few extra steps.
212 zhen 1.6 </p>
213 zhen 1.16 <warn>To avoid problems with <c>cardmgr</c>, you <e>must</e> run it <e>before</e> you enter the chroot
214 zhen 1.6 portion of the install. </warn>
215 jhhudso 1.81 <pre caption="Loading PCMCIA Modules">
216 zhen 1.33 # <i>modprobe pcmcia_core</i>
217     # <i>modprobe i82365</i>
218     # <i>modprobe ds</i>
219 drobbins 1.1 # <i>cardmgr -f</i>
220 jhhudso 1.81 </pre>
221 drobbins 1.21 <p>As <c>cardmgr</c> detects which hardware is present, your speaker should emit a
222 jhhudso 1.75 few reassuring beeps, and your PCMCIA network card should be active. You can
223     of course insert the PCMCIA card after loading <c>cardmgr</c> too, if that is
224 zhen 1.6 preferable. (Technically, you need not run
225 drobbins 1.21 <c>cardmgr</c> if you know exactly which module your PCMCIA card requires.
226 zhen 1.6 But if you don't, loading all PCMCIA modules and see which sticks won't work,
227     as all PCMCIA modules load obligingly and hang around for a PCMCIA card to
228 drobbins 1.21 drop by. <c>cardmgr</c> will also unload the module(s) for any card when you
229 zhen 1.6 remove it). </p>
230 zhen 1.16 </body>
231     </section>
232     </chapter>
233 drobbins 1.70 -->
234 zhen 1.16 <chapter>
235     <title>Configuring Networking</title>
236 drobbins 1.70 <section>
237     <title>Maybe it just works?</title>
238     <body>
239 jhhudso 1.75 <p>If you're using a 1.4_rc3 or later LiveCD, it is possible that your networking has already been
240 drobbins 1.70 configured automatically for you. If so, you should be able to take advantage of the many included
241     network-aware commands on the LiveCD such as <c>ssh</c>, <c>scp</c>, <c>ping</c>, <c>irssi</c>, <c>wget</c> and <c>lynx</c>,
242     among others.</p>
243    
244     <p>If networking has been configured for you, the <c>/sbin/ifconfig</c> command should
245     list some internet interfaces besides <c>lo</c>, such as <c>eth0</c>:
246     </p>
247 jhhudso 1.81 <pre caption="/sbin/ifconfig for a working network card">
248 drobbins 1.70 eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
249     inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
250     inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
251     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
252     RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
253     TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
254     collisions:1984 txqueuelen:100
255     RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb)
256     Interrupt:11
257 jhhudso 1.81 </pre>
258 drobbins 1.70 <p>You may want to also try pinging your ISP's DNS server (found in <path>/etc/resolv.conf</path>),
259     and a Web site of choice, just to make sure that your packets are reaching the net, DNS name
260     resolution is working correctly, etc.
261     </p>
262 jhhudso 1.81 <pre caption="Further Network Testing">
263     # <c>ping www.gentoo.com </c>
264     </pre>
265 drobbins 1.70 <p>Are you able to use your network? If so, you can skip the rest of this section.</p>
266     </body>
267     </section>
268 zhen 1.16 <section>
269     <title> PPPoE configuration</title>
270     <body>
271 drobbins 1.70 <p>Assuming you need PPPoE to connect to the internet, the LiveCD (any version) has
272 drobbins 1.21 made things easy for you by including <c>rp-pppoe</c>. Use the provided <c>adsl-setup</c>
273 zhen 1.6 script to configure your connection. You will be prompted for the ethernet
274     device that is connected to your adsl modem, your username and password,
275     the IPs of your DNS servers, and if you need a basic firewall or not. </p>
276 jhhudso 1.81 <pre caption="Configuring PPPoE">
277 zhen 1.6 # <c> adsl-setup </c>
278     # <c> adsl-start </c>
279 jhhudso 1.81 </pre>
280 drobbins 1.70 <p>If something goes wrong, double-check that you correctly typed
281 zhen 1.6 your username and password by looking at <path>/etc/ppp/pap-secrets</path> or
282     <path>/etc/ppp/chap-secrets</path>, and make sure you are using the right ethernet device. </p>
283 zhen 1.16 </body>
284     </section>
285     <section>
286     <title> Automatic Network Configuration </title>
287     <body>
288 drobbins 1.70 <p>The simplest way to set up networking if it didn't get configured automatically is to run the <c>net-setup</c> script.</p>
289 jhhudso 1.81 <pre caption="Net-Setup Script">
290 drobbins 1.1 # <c>net-setup eth0</c>
291 jhhudso 1.81 </pre>
292 drobbins 1.70 <p>Of course, if you prefer, you may still set up networking manually. This is covered next.</p>
293 zhen 1.16 </body>
294     </section>
295     <section>
296     <title>Manual DHCP Configuration</title>
297     <body>
298     <p>Network configuration is simple with DHCP; If your ISP is not using
299     DHCP, skip down to the static configuration section below. </p>
300 jhhudso 1.81 <pre caption="Network configuration with DHCP">
301     # <c>dhcpcd eth0</c>
302     </pre>
303 zhen 1.16 <note>Some ISPs require you to provide a hostname. To do that,
304 zhen 1.6 add a <c>-h myhostname</c> flag to the dhcpcd command line above.
305     </note>
306 zhen 1.16 <p>If you receive <i>dhcpConfig</i> warnings, don't panic; the errors
307 zhen 1.6 are most likely cosmetic. Skip down to Network testing below.</p>
308 zhen 1.16 </body>
309     </section>
310     <section>
311     <title>Manual Static Configuration</title>
312     <body>
313     <p>We need to setup just enough networking so that we can download
314 zhen 1.6 sources for the system build, as well as the required localhost interface.
315     Type in the following commands, replacing
316     $IFACE with your network interface (typically <c>eth0</c>), $IPNUM
317     with your IP address, $BCAST with your broadcast address, and $NMASK
318     with your network mask. For the <c>route</c> command, replace
319     $GTWAY with your default gateway.
320     </p>
321 jhhudso 1.81 <pre caption="Static IP Network Configuration">
322 drobbins 1.1 # <c>ifconfig $IFACE $IPNUM broadcast $BCAST netmask $NMASK</c>
323     # <c>/sbin/route add -net default gw $GTWAY netmask 0.0.0.0 metric 1</c>
324 jhhudso 1.81 </pre>
325 jhhudso 1.75 <p>Now it is time to create the <path>/etc/resolv.conf</path>
326 zhen 1.6 file so that name resolution (finding Web/FTP sites by name, rather than just by IP address) will work.</p>
327 jhhudso 1.75 <p>Here is a template to follow for creating your /etc/resolv.conf file: </p>
328 jhhudso 1.81 <pre caption="/etc/resolv.conf template">
329 drobbins 1.1 domain mydomain.com
330     nameserver 10.0.0.1
331     nameserver 10.0.0.2
332 jhhudso 1.81 </pre>
333 zhen 1.16 <p>Replace <c>10.0.0.1</c> and <c>10.0.0.2</c> with the IP addresses of your
334 zhen 1.6 primary and secondary DNS servers respectively.</p>
335 zhen 1.16 </body>
336     </section>
337     <section>
338     <title>Proxy Configuration</title>
339     <body>
340     <p>If you are behind a proxy, it is necessary to configure your proxy before
341 zhen 1.6 you continue. We will export some variables to set up the proxy accordingly.
342     </p>
343 jhhudso 1.81 <pre caption="Setting a Proxy">
344 zhen 1.16 # <c>export http_proxy=&quot;machine.company.com:1234&quot; </c>
345 seo 1.42 # <c>export ftp_proxy=&quot;$http_proxy&quot; </c>
346     # <c>export RSYNC_PROXY=&quot;$http_proxy&quot; </c>
347 jhhudso 1.81 </pre>
348 zhen 1.16 </body>
349     </section>
350 drobbins 1.70 <section>
351 zhen 1.16 <title>Networking is go!</title>
352     <body>
353 seemant 1.78 <p>Networking should now be configured and usable. You should be able to use the included
354 drobbins 1.21 <c>ssh</c>, <c>scp</c>, <c>lynx</c>, <c>irssi</c> and <c>wget</c> commands to connect to other machines on your LAN or the Internet.</p>
355 zhen 1.16 </body>
356     </section>
357     </chapter>
358     <chapter>
359 jhhudso 1.81 <title>Setting your system's date and time</title>
360     <section>
361     <body>
362     <p>Now you need to set your system's date and time.
363     You can do this using the <c>date</c> command.</p>
364     <pre caption="Setting your system's date">
365     # <c>date</c>
366     Thu Feb 27 09:04:42 CST 2003
367     <comment>(If your date is wrong, set your date with this next command)</comment>
368     # <c>date 022709042003</c>
369     <comment>(date MMDDhhmmCCYY)</comment>
370     </pre>
371     </body>
372     </section>
373     </chapter>
374     <chapter>
375 zhen 1.16 <title>Partition Configuration</title>
376     <section>
377     <body>
378 jhhudso 1.75 <p>Now that the kernel can see the network card and disk controllers, it is time
379 zhen 1.6 to set up disk partitions for Gentoo Linux.
380     </p>
381 drobbins 1.70
382 jhhudso 1.75 <p>Here is a quick overview of the standard Gentoo Linux partition layout.
383 zhen 1.6 We're going to create at least three partitions: a swap partition, a root
384     partition (to hold the bulk of Gentoo Linux), and a special boot partition.
385 jhhudso 1.75 The boot partition is designed to hold the boot loader information as well as
386 zhen 1.6 your Linux kernel(s). The boot partition gives us a safe place to store
387     everything related to booting Linux. During normal day-to-day Gentoo Linux use,
388 jhhudso 1.81 your boot partition should remain <e>unmounted</e>. A working kernel will enable you to recover from most forms of
389     filesystem corruption. Having your kernel in a non-mounted partition
390 jhhudso 1.75 will prevent filesystem corruption from affecting it.
391 zhen 1.6 </p>
392 zhen 1.50 <p>Now, on to filesystem types. Right now, you have five filesystem options:
393 jhhudso 1.81 XFS, ext2, ext3 (ext2 with journaling), jfs, and ReiserFS. ext2 is the tried and true Linux
394 zhen 1.6 filesystem but doesn't have metadata journaling. ext3 is the new version of
395     ext2 with both metadata journaling and ordered data writes, effectively
396     providing data journaling as well. ReiserFS is a B*-tree based filesystem
397     that has very good small file performance, and greatly outperforms both ext2 and
398     ext3 when dealing with small files (files less than 4k), often by a factor of
399     10x-15x. ReiserFS also scales extremely well and has metadata journaling.
400     As of kernel 2.4.18+, ReiserFS is finally rock-solid and highly recommended.
401     XFS is a filesystem with metadata journaling that
402 drobbins 1.21 is fully supported under Gentoo Linux's <path>xfs-sources</path> kernel, but
403     is generally not recommended due to its tendency to lose recently-modified
404 jhhudso 1.75 data if your system locks up or unexpectedly reboots (as a result of power failure, for instance)
405     Finally, jfs is IBM's own high performance journaling filesystem. Since it is obscure, we cannot comment either positively nor negatively on its stability.</p>
406 zhen 1.16 <p>If you're looking for the most standard filesystem, use ext2. If you're looking
407 jhhudso 1.75 for the most rugged journaling filesystem, use ext3. If you're looking for a
408 zhen 1.6 high-performance filesystem with journaling support, use ReiserFS; both ext3 and ReiserFS are
409 drobbins 1.21 mature and refined.
410 zhen 1.6 Here are our basic recommended filesystem
411     sizes and types:
412     </p>
413 zhen 1.16 <table>
414     <tr>
415     <th>Partition</th>
416     <th>Size</th>
417     <th>Type</th>
418     <th>example device</th>
419     </tr>
420     <tr>
421     <ti>boot partition, containing kernel(s) and boot information</ti>
422     <ti>100 Megabytes</ti>
423     <ti>ext2/3 highly recommended (easiest); if ReiserFS then mount with <c>-o notail</c></ti>
424     <ti>/dev/hda1</ti>
425     </tr>
426     <tr>
427 drobbins 1.70 <ti>swap partition (no longer a 128 Megabyte limit, now 2GB)</ti>
428 jhhudso 1.75 <ti>Generally, configure a swap area that is between one to two times the size of the physical RAM
429 drobbins 1.70 in your system.</ti>
430 zhen 1.16 <ti>Linux swap</ti>
431     <ti>/dev/hda2</ti>
432     </tr>
433     <tr>
434     <ti>root partition, containing main filesystem (/usr, /home, etc)</ti>
435     <ti>&gt;=1.5 Gigabytes</ti>
436     <ti>ReiserFS, ext3 recommended; ext2 ok</ti>
437     <ti>/dev/hda3</ti>
438     </tr>
439     </table>
440 zhen 1.54
441 drobbins 1.70
442     <p>At this point, create your partitions using <c>fdisk</c>. Note that your partitions
443 jhhudso 1.75 should be of type 82 for swap and 83 for regular filesystems (whether ReiserFS, ext2/3 or other). </p>
444 drobbins 1.70 <note><c>cfdisk</c> is included on the install CD, and it is <i>considerably</i> easier to use than
445     <c>fdisk</c>. Just type <c>cfdisk</c> to run it; by default, cfdisk will work with <b>/dev/hda</b>. If /dev/hda is not the hard disk you want to partition, give the right value to cfdisk as a parameter. For example: <c>cfdisk /dev/hde</c></note>
446     <note>If <c>fdisk</c> or <c>cfdisk</c> instruct you to do so, please reboot to allow your system to detect the
447     new partition configuration.</note>
448     <note>If you are using RAID your partitions will be a little different. You
449 jhhudso 1.75 will have the partitions like this: <path>/dev/ataraid/discX/partY</path> X are
450 drobbins 1.70 the arrays you have made, so if you only have made 1 array, then it will be
451     disc0.Y is the partition number as in <path>/dev/hdaY</path> </note>
452 jhhudso 1.75 <p>Once you've created your partitions, it is time to initialize
453     the filesystems that will be used to house your data.</p>
454 drobbins 1.70
455     <p>But before creating filesystems, you may want to initialize the
456 jhhudso 1.81 beginning of your partition using <c>dd</c> if you are using a pre-existing partition that has been used before.
457 drobbins 1.70 This is particularly helpful when you're going to create a new XFS filesystem on a partition that previously contained
458     a ReiserFS filesystem. Doing this will ensure that your new filesystem
459 seemant 1.78 will not be mis-identified by Linux's filesystem auto-detection code.
460 drobbins 1.21 This can be done as follows:
461 zhen 1.6 </p>
462 jhhudso 1.81 <pre caption="Initializing first 1024 bytes of your partition">
463     # <c>dd if=/dev/zero of=/dev/hda3 bs=1k count=1</c>
464     <comment>(Replace /dev/hda3 with the partition you wish to &quot;clean.&quot;)</comment>
465     </pre>
466     <warn>The command above will destroy all data from <path>/dev/hda3</path>.
467 zhware 1.43 Be careful and check twice which partition you specify for zeroing.
468     If you make a mistake it might result in a loss of data.
469     </warn>
470 drobbins 1.70 <p>Now, initialize your swap partition as follows:</p>
471 jhhudso 1.81 <pre caption="Initializing Swap">
472 drobbins 1.1 # <c>mkswap /dev/hda2</c>
473 jhhudso 1.81 </pre>
474 zhen 1.16 <p>You can use the <c>mke2fs</c> command to create ext2 filesystems.</p>
475 jhhudso 1.81 <pre caption="Creating an ext2 Filesystem">
476 drobbins 1.1 # <i>mke2fs /dev/hda1</i>
477 jhhudso 1.81 </pre>
478 zhen 1.16 <p>To create an XFS filesystem, use the <c>mkfs.xfs</c> command.</p>
479 jhhudso 1.81 <pre caption="Creating a XFS Filesystem">
480 drobbins 1.1 # <c>mkfs.xfs /dev/hda3</c>
481 jhhudso 1.81 </pre>
482     <note>You may want to add a couple of additional flags to the
483     <c>mkfs.xfs</c> command: <c>-d agcount=3 -l size=32m</c>.
484     The <c>-d agcount=3</c> command will lower the number of allocation groups.
485     XFS will insist on using at least 1 allocation group per 4 GB of your
486     partition, so, for example, if you have a 20 GB partition you will need
487     a minimum agcount of 5. The <c>-l size=32m</c> command increases the
488     journal size to 32 Mb, increasing performance.</note>
489     <p>If you would like to use ext3, you can create ext3 filesystems using
490     <c>mke2fs -j</c>.</p>
491     <pre caption="Creating an ext3 Filesystem">
492 drobbins 1.1 # <c>mke2fs -j /dev/hda3</c>
493 jhhudso 1.81 </pre>
494 seo 1.32 <note>You can find out more about using ext3 under Linux 2.4 at
495 jhhudso 1.81 <uri>http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html</uri>.</note>
496 zhen 1.16 <p>To create ReiserFS filesystems, use the <c>mkreiserfs</c> command.</p>
497 jhhudso 1.81 <pre caption="Creating a ReiserFS Filesystem">
498 drobbins 1.1 # <c>mkreiserfs /dev/hda3</c>
499 jhhudso 1.81 </pre>
500 seemant 1.78 <p>To create JFS filesystems, use the <c>mkfs.jfs</c> command.</p>
501 jhhudso 1.81 <pre caption="Creating a JFS Filesystem">
502 zhen 1.50 # <c>mkfs.jfs /dev/hda3</c>
503 jhhudso 1.81 </pre>
504 zhen 1.16 </body>
505     </section>
506     </chapter>
507     <chapter>
508     <title>Mount Partitions</title>
509     <section>
510     <body>
511 jhhudso 1.75 <p>Now, we will activate our new swap, since we may need the additional virtual memory that it
512 zhen 1.6 provides later:
513     </p>
514 jhhudso 1.81 <pre caption="Activating Swap">
515 drobbins 1.1 # <c>swapon /dev/hda2</c>
516 jhhudso 1.81 </pre>
517 jhhudso 1.75 <p>Next, we will create the <path>/mnt/gentoo</path> and <path>/mnt/gentoo/boot</path> mount points,
518 seemant 1.78 and we will mount our filesystems to these mount points. </p>
519 jhhudso 1.81 <pre caption="Creating Mount Points">
520 drobbins 1.1 # <c>mkdir /mnt/gentoo</c>
521     # <c>mount /dev/hda3 /mnt/gentoo</c>
522     # <c>mkdir /mnt/gentoo/boot</c>
523     # <c>mount /dev/hda1 /mnt/gentoo/boot</c>
524 jhhudso 1.81 </pre>
525 zhen 1.26 <p>
526 zhen 1.6 If you are setting up Gentoo
527     Linux with a separate <path>/usr</path> or <path>/var</path>, these would get mounted to
528     <path>/mnt/gentoo/usr</path> and <path>/mnt/gentoo/var</path>, respectively.
529     </p>
530 zhen 1.27 <impo>If your <e>boot</e> partition (the one holding the kernel) is ReiserFS, be sure to mount it
531 zhen 1.6 with the <c>-o notail</c> option so GRUB gets properly installed. Make sure
532     that <c>notail</c> ends up in your new <path>/etc/fstab</path> boot partition entry, too.
533 jhhudso 1.75 We will get to that in a bit.
534 zhen 1.6 </impo>
535 zhen 1.16 <impo>If you are having problems mounting your boot partition with ext2, try using
536 zhen 1.6 <c>mount /dev/hXX /mnt/gentoo/boot -t ext2 </c> </impo>
537 zhen 1.16 </body>
538     </section>
539     </chapter>
540     <chapter>
541     <title>Obtaining the Desired 'stage-x' Tarball</title>
542     <section>
543     <body>
544 jhhudso 1.75 <p>If you are using the 3stages LiveCD to install, you already have all of the stage
545 zhen 1.59 tarballs available on the CD.
546     If this is the case, copy the tarball of your choice to <mnt>/mnt/gentoo</mnt>
547     </p>
548 zhen 1.55
549 jhhudso 1.75 <p>Alternatively, if you have the basic LiveCD, the stage1 tarball is still available on
550 zhen 1.59 the CD in <path>/mnt/cdrom/gentoo</path>. You will have to download the other stages though,
551 jhhudso 1.75 and the best place to which to download them is <path>/mnt/gentoo</path>.
552 zhen 1.59 </p>
553    
554 jhhudso 1.81 <pre caption="Downloading Required Stages">
555 drobbins 1.1 # <c>cd /mnt/gentoo</c>
556 zhware 1.47 <comment>Use lynx to get the URL for your tarball:</comment>
557 zhen 1.80 # <c>lynx http://www.ibiblio.org/pub/Linux/distributions/gentoo/releases/1.4_rc3/x86/</c>
558 zhware 1.47 <comment>Use <c>Up</c> and <c>Down</c> arrows keys (or the <c>TAB</c> key) to go to the right directory
559     Highlight the appropriate stage you want to download
560     Press <c>d</c> which will initiate the download
561     Save the file and quit the browser
562    
563     <b>OR</b> use wget from the command line:</comment>
564     # <c>wget <comment>insert URL to the required stage tarball here.</comment></c>
565 jhhudso 1.81 </pre>
566 zhen 1.16 </body>
567     </section>
568     </chapter>
569     <chapter>
570 jhhudso 1.81 <title>Unpacking the Stage Tarball</title>
571 zhen 1.16 <section>
572     <body>
573 jhhudso 1.81 <p>Now it is time to extract the compressed stage tarball of your choice
574     to <path>/mnt/gentoo</path>. You only need to unpack the stage tarball
575     for the stage you want to start at. So, if you wanted to perform a
576     stage3 install of Gentoo, then you would unpack the stage3 tarball.
577     Next, we will <c>chroot</c> over to the new Gentoo Linux build installation to &quot;enter&quot; the new
578 drobbins 1.21 Gentoo Linux system.
579 zhen 1.6 </p>
580 zhen 1.16 <impo>Be sure to use the <c>p</c> option with <c>tar</c>. Forgetting to do this will
581 drobbins 1.21 cause certain files to have incorrect permissions.</impo>
582 zhen 1.16 <p>If you are using the &quot;from scratch, build everything&quot; install method,
583 jhhudso 1.81 you will want to use the <path>stage1-x86-1.4_rc3.tar.bz2</path> image.
584 jhhudso 1.75 If you're using one of our bigger CDs, you will also have a choice of a stage2 and stage3 image.
585 zhen 1.6 These images allow you to save time at the expense of configurability (we've already chosen
586 zhen 1.12 compiler optimizations and default USE variables for you.)
587 zhen 1.6 </p>
588 jhhudso 1.81 <pre caption="Unpacking the Stages">
589 drobbins 1.1 # <c>cd /mnt/gentoo</c>
590 drobbins 1.21 # <c>tar -xvjpf /mnt/cdrom/gentoo/stage?-*.tbz2</c>
591 drobbins 1.1 # <c>mount -o bind /proc /mnt/gentoo/proc</c>
592     # <c>cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf</c>
593 jhhudso 1.81 </pre>
594     <pre caption="Entering the chroot Environment">
595 drobbins 1.1 # <c>chroot /mnt/gentoo /bin/bash</c>
596     # <c>env-update</c>
597     Regenerating /etc/ld.so.cache...
598     # <c>source /etc/profile</c>
599 jhhudso 1.81 <comment>(The above points your shell to the new paths and updated binaries.)</comment>
600     </pre>
601     <p>After you execute these commands, you will be &quot;inside&quot; your new Gentoo Linux environment.</p>
602 zhen 1.16 </body>
603     </section>
604     </chapter>
605     <chapter>
606 jhhudso 1.75 <title>Getting the Current Portage Tree using sync</title>
607 zhen 1.16 <section>
608     <body>
609 jhhudso 1.75 <p>Now, you will need to run <c>emerge sync</c>. This will make sure that
610 zhen 1.6 you have the most current copy of the Portage tree. </p>
611 jhhudso 1.81 <pre caption="Updating Using sync">
612 zhen 1.6 # <c>emerge sync</c>
613 carpaski 1.64 # <c>export CONFIG_PROTECT="-*"</c>
614     # <c>export USE="-* bootstrap build"</c>
615     # <c>emerge portage</c>
616     # <c>unset USE</c>
617 jhhudso 1.81 </pre>
618 zhen 1.16 <p>The Portage tree will be downloaded and stored in <path>/usr/portage</path>;
619 jhhudso 1.75 it is about 90Mb in size without tarballs.
620 zhen 1.6 </p>
621 zhen 1.60 <note>The <c>export CONFIG_PROTECT=&quot;-*&quot;</c> line ensures that any new scripts
622     installed to <path>/etc</path> will overwrite the old scripts (stored in
623     <path>sys-apps/baselayout</path>), bypassing Portage's new config file
624     management support. Type <c>emerge --help config</c> for more details.</note>
625    
626 zhen 1.16 </body>
627     </section>
628     </chapter>
629     <chapter>
630     <title>Setting Gentoo optimizations (make.conf)</title>
631     <section>
632     <body>
633 drobbins 1.70 <p>Now that you have a working copy of the Portage tree,
634 jhhudso 1.75 it is time to customize the optimization and optional build-time settings to use
635 drobbins 1.70 on your Gentoo Linux system. First
636 zhen 1.6 edit the file <path>/etc/make.conf</path>. In this file, you should set your
637     <c>USE</c> flags, which specify optional functionality that you would
638 drobbins 1.70 like to be built into packages if available; generally, the defaults (an <e>empty</e>
639 zhen 1.6 or unset <c>USE</c> variable) are fine.
640     More information on <c>USE</c> flags can be found
641     <uri link="http://www.gentoo.org/doc/en/use-howto.xml">here</uri>.
642 zhen 1.38 A complete list of current USE flags can be found
643     <uri link="http://www.gentoo.org/dyn/use-index.xml">here</uri>.
644 zhen 1.6 </p>
645 zhen 1.16 <p>You also should set appropriate <c>CHOST</c>, <c>CFLAGS</c> and
646 zhen 1.6 <c>CXXFLAGS</c> settings for the kind of system that you are creating
647 drobbins 1.70 (commented examples can be found further down in the file.) These settings
648     will be used to tell the C and C++ compiler how to optimize the code that
649     is generated on your system. It is common for users with Athlon XP processors
650     to specify a "-march=athlon-xp" setting in their CFLAGS and CXXFLAGS settings
651     so that all packages built will be optimized for the instruction set and
652     performance characteristics of their CPU, for example. The <path>/etc/make.conf</path>
653     file contains a general guide for the proper settings of CFLAGS and CXXFLAGS.</p>
654    
655 zhen 1.16 <p>If necessary, you can also set proxy information here if you are behind a
656 zhen 1.6 firewall.
657     </p>
658 jhhudso 1.81 <pre caption="Setting make.conf Options">
659     # <c>nano -w /etc/make.conf</c>
660     <comment>(Adjust these settings)</comment>
661     </pre>
662 zhen 1.16 <note>
663 jhhudso 1.75 People who need to substantially customize the build process should take a look at
664 zhen 1.6 the <path>/etc/make.globals</path> file. This file comprises gentoo defaults and
665 drobbins 1.70 should never be touched. If the defaults do not suffice, then new values should
666 zhen 1.6 be put in <path>/etc/make.conf</path>, as entries in <path>make.conf</path>
667     <comment>override</comment> the entries in <path>make.globals</path>. If you're
668 jhhudso 1.75 interested in customizing USE settings, look in <path>/etc/make.profile/make.defaults</path>.
669 zhen 1.16 If you want to turn off any USE settings found here, add an appropriate <c>USE=&quot;-foo&quot;</c>
670 zhen 1.6 in /etc/make.conf (to turn off the <c>foo</c> USE setting.)
671     </note>
672 zhen 1.16 </body>
673     </section>
674     </chapter>
675     <chapter>
676 zhen 1.18 <title>Starting from Stage1</title>
677 zhen 1.16 <section>
678     <body>
679 jhhudso 1.75 <p>The stage1 tarball is for complete customization and optimization. If you have picked this tarball,
680 zhen 1.18 you are most likely looking to have an uber-optimized system. Have fun, because optimization
681 drobbins 1.70 is what Gentoo Linux is all about! Installing from a stage1 takes a lot of time, but the result
682     is a system that has been optimized from the ground up for your specific machine and needs.
683 zhen 1.18 </p>
684 jhhudso 1.75 <p>Now, it is time to start the &quot;bootstrap&quot; process. This process takes about two hours on
685     my 1200Mhz AMD Athlon system.
686     During this time, the extracted build image will be prepared and the GNU compiler suite and Libraries will be built. </p>
687 jhhudso 1.81 <pre caption="Bootstrapping">
688 drobbins 1.1 # <c>cd /usr/portage</c>
689     # <c>scripts/bootstrap.sh</c>
690 jhhudso 1.81 </pre>
691 zhen 1.16 <p>The &quot;bootstrap&quot; process will now begin.
692 zhen 1.6 </p>
693 zhen 1.16 <note>
694 zhen 1.6 Portage by default uses <c>/var/tmp</c> during package building, often
695     using several hundred megabytes of temporary storage. If you would like to
696     change where Portage stores these temporary files, set a new PORTAGE_TMPDIR <e>before</e>
697     starting the bootstrap process, as follows:
698     </note>
699 jhhudso 1.81 <pre caption="Changing Portage's Storage Path">
700 zhen 1.16 # <c>export PORTAGE_TMPDIR=&quot;/otherdir/tmp&quot;</c>
701 jhhudso 1.81 </pre>
702 zhen 1.16 <p><c>bootstrap.sh</c> will build <c>binutils</c>, <c>gcc</c>, <c>gettext</c>,
703 zhen 1.6 and <c>glibc</c>, rebuilding <c>binutils</c>, <c>gcc</c>, and <c>gettext</c>
704     after <c>glibc</c>. Needless to say, this process takes a while.
705 jhhudso 1.75 Once this process completes, your system will be equivalent to a &quot;stage2&quot; system,
706 zhen 1.33 which means you can now move on to the stage2 instructions.
707 zhen 1.6 </p>
708 zhen 1.16 </body>
709     </section>
710     </chapter>
711     <chapter>
712 zhen 1.18 <title>Starting from Stage2</title>
713 zhen 1.16 <section>
714     <body>
715 zhen 1.18 <p>The stage2 tarball already has the bootstrapping done for you. All that you have
716     to do is install the rest of the system.
717 zhen 1.6 </p>
718 zhen 1.16 <note>
719 jhhudso 1.75 If you have not already edited /etc/make.conf to fit your specifications,
720     now would be a good time to do so.
721 zhen 1.6 </note>
722 jhhudso 1.81 <pre caption="Installing the Rest of the System">
723 drobbins 1.1 # <c>emerge -p system</c>
724 jhhudso 1.81 <comment>(lists the packages to be installed)</comment>
725 drobbins 1.1 # <c>emerge system</c>
726 jhhudso 1.81 </pre>
727 jhhudso 1.75 <p>It is going to take a while
728 zhen 1.6 to finish building the entire base system. Your reward is that it will be
729     thoroughly optimized for your system. The drawback is that you have to find a
730 zhen 1.16 way to keep yourself occupied for some time to come. The author suggests &quot;Star
731 zhen 1.37 Wars - Super Bombad Racing&quot; for the PS2.
732     </p>
733     <p>When this process completes, your system will be the equivalent of a stage3 system. You have
734     a couple of choices on how to continue
735     at this point. You can move onto the stage3 instructions and complete those. Doing that will
736     get your system right up to date with what is in the current Portage tree. This is not necessary,
737 jhhudso 1.75 but it is highly recommended.
738 zhen 1.18 </p>
739     </body>
740     </section>
741     </chapter>
742     <chapter>
743     <title>Starting from Stage3</title>
744     <section>
745     <body>
746     <p>The stage3 tarball is already configured for your system. There is not much to do for this stage,
747     but it is a very good idea to update your system to the newest available packages. </p>
748 zhen 1.57
749 zhen 1.18 <note>If you have not already edited <path>/etc/make.conf</path> to fit your specifications,
750     now would be a good time to do so. </note>
751 jhhudso 1.81 <pre caption="Getting up-to-date">
752     # <c>emerge sync</c>
753     # <c>emerge -up world</c>
754     <comment>(lists the packages to be installed)</comment>
755     # <c>emerge -u world</c>
756     </pre>
757 seemant 1.79 </body>
758     </section>
759     </chapter>
760     <chapter>
761 jhhudso 1.81 <title>Setting your time zone</title>
762 seemant 1.79 <section>
763     <body>
764 jhhudso 1.81 <p>Now you need to set your time zone.</p>
765     <p>Look for your time zone (or GMT if you are using Greenwich Mean Time)
766     in <path>/usr/share/zoneinfo</path>. Then, make a symbolic link to
767     /etc/localtime by typing:</p>
768     <pre caption="Creating a symbolic link for time zone">
769 seemant 1.79 # <c>ln -sf /usr/share/zoneinfo/path/to/timezonefile /etc/localtime</c>
770 jhhudso 1.81 </pre>
771 zhen 1.16 </body>
772     </section>
773     </chapter>
774     <chapter>
775 zhen 1.61 <title>Installing the kernel and a System Logger</title>
776 zhen 1.16 <section>
777     <body>
778     <note>
779 zhen 1.6 If you haven't done so, please edit <path>/etc/make.conf</path> to your flavor.
780     </note>
781 jhhudso 1.75 <p>You now need to merge Linux kernel sources. Here are the ones we currently
782 zhen 1.6 offer:
783     </p>
784 zhen 1.16 <table>
785     <tr>
786     <th>ebuild</th>
787     <th>description</th>
788     </tr>
789     <tr>
790     <ti>
791     <path>gentoo-sources</path>
792     </ti>
793 drobbins 1.21 <ti>Our own performance and functionality-enhanced kernel does not include XFS support.</ti>
794 zhen 1.16 </tr>
795     <tr>
796     <ti>
797     <path>xfs-sources</path>
798     </ti>
799 drobbins 1.21 <ti>Highly-compatible kernel with XFS support.</ti>
800 zhen 1.16 </tr>
801     <tr>
802     <ti>
803     <path>openmosix-sources</path>
804     </ti>
805     <ti>A stock Linux kernel source tree patched with support for the GPL <uri link="http://www.openmosix.com">openMosix</uri> load-balancing/clustering technology</ti>
806     </tr>
807     <tr>
808     <ti>
809     <path>usermode-sources</path>
810     </ti>
811     <ti>A stock Linux kernel source tree patched with support for User-Mode Linux. (&quot;Linux inside Linux&quot; technology)</ti>
812     </tr>
813     <tr>
814     <ti>
815     <path>vanilla-sources</path>
816     </ti>
817 jhhudso 1.75 <ti>A stock Linux kernel source tree, just like you would get from kernel.org</ti>
818 zhen 1.16 </tr>
819     </table>
820 drobbins 1.21 <warn>
821     If you are configuring your own kernel, be careful with the <i>grsecurity</i> option. Being too aggressive with your
822     security settings can cause certain programs (such as X) to not run properly. If in doubt, leave it out.
823 zhen 1.6 </warn>
824 drobbins 1.21 <p>Choose a kernel and then merge as follows:</p>
825 jhhudso 1.81 <pre caption="Emerging Kernel Sources">
826 drobbins 1.1 # <c>emerge sys-kernel/gentoo-sources</c>
827 jhhudso 1.81 </pre>
828 jhhudso 1.75 <p>Once you have a Linux kernel source tree available, it is time to compile your own custom kernel.
829 zhen 1.6 </p>
830 zhen 1.38 <p>Please note that <path>/usr/src/linux</path> is a symlink to your current emerged kernel source package,
831 jhhudso 1.75 and is set automatically by Portage at emerge time.
832 zhen 1.38 If you have multiple kernel source packages, it is necessary to set the <path>/usr/src/linux</path> symlink
833     to the correct one before proceeding.
834     </p>
835 jhhudso 1.81 <pre caption="Compiling the Linux Kernel">
836 drobbins 1.1 # <c>cd /usr/src/linux</c>
837 zhen 1.46 # <c>source /etc/profile</c>
838 zhen 1.49 <comment>Again, this updates your paths. If you get an error saying gcc is not found,
839     this is what you may have to do. </comment>
840 drobbins 1.1 # <c>make menuconfig</c>
841     # <c>make dep &amp;&amp; make clean bzImage modules modules_install</c>
842     # <c>cp /usr/src/linux/arch/i386/boot/bzImage /boot</c>
843 jhhudso 1.81 </pre>
844 zhen 1.16 <warn>For your kernel to function properly, there are several options that you will
845 zhen 1.6 need to ensure are in the kernel proper -- that is, they should <i>be enabled and not
846 jhhudso 1.81 compiled as modules</i>. Be sure to enable &quot;ReiserFS&quot; if you have
847     any ReiserFS partitions; the same goes for &quot;Ext3&quot;. If you're using XFS, enable the
848     &quot;SGI XFS filesystem support&quot; option. It's always a good idea to leave ext2
849     enabled whether you are using it or not. Below are some common options that you will need:</warn>
850     <pre caption="make menuconfig options">
851     Code maturity level options ---&gt;
852     [*] Prompt for development and/or incomplete code/drivers&quot;
853     <comment>(You need this to enable some of the options below.)</comment>
854     ...
855    
856     File systems ---&gt;
857     &lt;*&gt; Reiserfs support
858     <comment>(Only needed if you are using reiserfs.)</comment>
859     ...
860     &lt;*&gt; Ext3 journalling file system support
861     <comment>(Only needed if you are using ext3.)</comment>
862     ...
863     [*] Virtual memory file system support (former shm fs)
864     <comment>(Required for Gentoo Linux.)</comment>
865     ...
866     &lt;*&gt; JFS filesystem support
867     <comment>(Only needed if you are using JFS.)</comment>
868     ...
869     [*] /proc file system support
870     <comment>(Required for Gentoo Linux.)</comment>
871     [*] /dev file system support (EXPERIMENTAL)
872     [*] Automatically mount at boot
873     <comment>(Required for Gentoo Linux.)</comment>
874     [ ] /dev/pts file system for Unix98 PTYs
875     <comment>(Uncheck this, it is NOT needed.)</comment>
876     ...
877     &lt;*&gt; Second extended fs support
878     <comment>(Only needed if you are using ext2.)</comment>
879     ...
880     &lt;*&gt; XFS filesystem support
881     <comment>(Only needed if you are using XFS.)</comment>
882     </pre>
883 zhen 1.16 <p>If you are using hardware RAID you will need to enable a couple more options in the kernel:
884 zhen 1.6 For Highpoint RAID controllers select hpt366 chipset support, support for IDE RAID controllers and Highpoint
885     370 software RAID.For Promise RAID controllers select PROMISE PDC202{46|62|65|67|68|69|70} support,
886     support for IDE RAID
887     controllers and Support Promise software RAID (Fasttrak(tm))
888     </p>
889 zhen 1.16 <p>If you use PPPoE to connect to Internet, you will need the following
890 zhen 1.6 options in the kernel (built-in or as preferably as modules) :
891 zhen 1.16 &quot;PPP (point-to-point protocol) support&quot;, &quot;PPP support for async serial ports&quot;,
892     &quot;PPP support for sync tty ports&quot;. The two compression options won't harm but
893     are not definitely needed, neither does the &quot;PPP over Ethernet&quot; option,
894 zhen 1.6 that might only be used by <i>rp-pppoe</i> when configured to do kernel mode PPPoE.
895     </p>
896 zhen 1.16 <p>If you have an IDE cd burner, then you need to enable SCSI emulation in the
897     kernel. Turn on &quot;ATA/IDE/MFM/RLL support&quot; ---&gt; &quot;IDE, ATA and ATAPI Block
898     devices&quot; ---&gt; &quot;SCSI emulation support&quot; (I usually make it a module), then
899     under &quot;SCSI support&quot; enable &quot;SCSI support&quot;, &quot;SCSI CD-ROM support&quot; and
900     &quot;SCSI generic support&quot; (again, I usually compile them as modules). If you
901     also choose to use modules, then <c>echo -e &quot;ide-scsi\nsg\nsr_mod&quot;
902     &gt;&gt; /etc/modules.autoload</c> to have them automatically added at boot time.
903 zhen 1.6 </p>
904 zhen 1.16 <note>
905 zhen 1.6 For those who prefer it,
906     it is now possible to install Gentoo Linux with a 2.2 kernel.
907 drobbins 1.21 However, doing this comes at a price:
908 zhen 1.6 you will lose many of the nifty features that
909     are new to the 2.4 series kernels (such as XFS and tmpfs
910     filesystems, iptables, and more), although the 2.2 kernel sources can be
911 drobbins 1.21 patched with ReiserFS and devfs support.
912     Gentoo linux boot scripts require either tmpfs or ramdisk support in the kernel, so
913 zhen 1.6 2.2 kernel users need to make sure that ramdisk support is compiled in (ie, not a module).
914     It is <comment>vital</comment> that a <e>gentoo=notmpfs</e> flag be added to the kernel
915     line in <path>/boot/grub/grub.conf</path> for the 2.2 kernel so that a ramdisk is mounted
916 jhhudso 1.75 for the boot scripts instead of tmpfs. If you choose not to use devfs, then
917 zhen 1.6 <e>gentoo=notmpfs,nodevfs</e> should be used instead.
918     </note>
919 zhen 1.16 <p>Your new custom kernel (and modules) are now installed. Now you need to choose a system
920 zhen 1.6 logger that you would like to install. We offer sysklogd, which is the traditional set
921     of system logging daemons. We also have msyslog and syslog-ng as well as metalog. Power users seem
922     to gravitate away from sysklogd (not very good performance) and towards the
923     newer alternatives.
924     If in doubt, you may want to try metalog, since it seems to be quite popular.
925     To merge your logger of choice, type <e>one</e> of the next four lines:
926     </p>
927 jhhudso 1.81 <pre caption="Emerging System Logger of Choice">
928 drobbins 1.1 # <c>emerge app-admin/sysklogd</c>
929     # <c>rc-update add sysklogd default</c>
930     <comment>or</comment>
931     # <c>emerge app-admin/syslog-ng</c>
932     # <c>rc-update add syslog-ng default</c>
933     <comment>or</comment>
934     # <c>emerge app-admin/metalog</c>
935     # <c>rc-update add metalog default</c>
936     <comment>or</comment>
937     # <c>emerge app-admin/msyslog</c>
938     # <c>rc-update add msyslog default</c>
939 jhhudso 1.81 </pre>
940 zhen 1.16 <warn>
941 zhen 1.6 In the case of syslog-ng you need to create
942     <path>/etc/syslog-ng/syslog-ng.conf</path>.
943     See <path>/etc/syslog-ng</path>
944     for a sample configuration file.
945     </warn>
946 zhen 1.16 <impo>
947 zhen 1.6 Metalog flushes output to the disk in blocks, so messages aren't immediately recorded into
948     the system logs. If you are trying to debug a daemon, this performance-enhancing behavior
949     is less than helpful. When your Gentoo Linux system is up and running, you can send
950     metalog a USR1 signal to temporarily turn off this message buffering (meaning that
951     <i>tail -f <path>/var/log/everything/current</path></i> will now work
952     in real time, as expected),
953     and a USR2 signal to turn buffering back on
954 zhen 1.39 again. If you want to disable buffering permanently, you can change METALOG_OPTS="-B" to METALOG_OPTS="-B -s"
955     in <path>/etc/conf.d/metalog</path>.
956 zhen 1.6 </impo>
957 jhhudso 1.75 <p>Now, you may optionally choose a cron package that you would like to use.
958     Right now, we offer dcron, fcron and vcron. If you do not know which one to choose,
959 zhen 1.6 you might as well grab vcron. They can be installed as follows:
960     </p>
961 jhhudso 1.81 <pre caption="Choosing a CRON Daemon">
962 drobbins 1.1 # <c>emerge sys-apps/dcron</c>
963 jhhudso 1.81 # <c>rc-update add dcron default</c>
964 drobbins 1.1 # <c>crontab /etc/crontab</c>
965     <comment>or</comment>
966     # <c>emerge sys-apps/fcron</c>
967 jhhudso 1.81 # <c>rc-update add fcron default</c>
968 drobbins 1.1 # <c>crontab /etc/crontab</c>
969     <comment>or</comment>
970     # <c>emerge sys-apps/vcron</c>
971 jhhudso 1.81 # <c>rc-update add vcron default</c>
972     <comment>You do not need to run <c>crontab /etc/crontab</c> if using vcron.</comment>
973     </pre>
974     <p>For more information on starting programs and daemons at startup, see the
975 drobbins 1.21 <uri link="/doc/en/rc-scripts.xml">rc-script guide</uri>.
976 zhen 1.6 </p>
977 zhen 1.16 </body>
978     </section>
979     </chapter>
980     <chapter>
981 zhen 1.61 <title>Installing miscellany necessary packages</title>
982 zhen 1.16 <section>
983     <body>
984     <p>If you need rp-pppoe to connect to the net, be aware that at this point
985 zhen 1.6 it has not been installed. It would be the good time to do it. </p>
986 jhhudso 1.81 <pre caption="Installing rp-pppoe">
987 zhen 1.40 # <c>USE="-X" emerge rp-pppoe</c>
988 jhhudso 1.81 </pre>
989 zhen 1.40
990     <note>The <i>USE="-X"</i> prevents pppoe from installing its optional X interface, which is a good thing,
991     because X and its dependencies would also be emerged. You can always recompile <i>rp-pppoe</i> with
992     X support later.
993     </note>
994 zhen 1.16 <note> Please note that the rp-pppoe is built but not configured.
995 zhen 1.6 You will have to do it again using <c>adsl-setup</c> when you boot into your Gentoo system
996     for the first time.
997     </note>
998 zhen 1.16 <p>You may need to install some additional packages in the Portage tree
999 zhen 1.6 if you are using any optional features like XFS, ReiserFS or LVM. If you're
1000 zhen 1.50 using XFS, you should emerge the <c>xfsprogs</c> package:
1001 zhen 1.6 </p>
1002 jhhudso 1.81 <pre caption="Emerging Filesystem Tools">
1003 drobbins 1.1 # <c>emerge sys-apps/xfsprogs</c>
1004 jhhudso 1.75 <comment>If you would like to use ReiserFS, you should emerge the ReiserFS tools: </comment>
1005 zhen 1.50 # <c>emerge sys-apps/reiserfsprogs</c>
1006 jhhudso 1.75 <comment>If you would like to use JFS, you should emerge the JFS tools: </comment>
1007 zhen 1.50 # <c>emerge jfsutils</c>
1008 drobbins 1.1 <comment>If you're using LVM, you should emerge the <c>lvm-user</c> package: </comment>
1009 drobbins 1.21 # <c>emerge sys-apps/lvm-user</c>
1010 jhhudso 1.81 </pre>
1011 zhen 1.16 <p>If you're a laptop user and wish to use your PCMCIA slots on your first
1012 jhhudso 1.75 real reboot, you will want to make sure you install the <i>pcmcia-cs</i> package.
1013 zhen 1.6 </p>
1014 jhhudso 1.81 <pre caption="Emerging PCMCIA-cs">
1015 drobbins 1.1 # <c>emerge sys-apps/pcmcia-cs</c>
1016 jhhudso 1.81 </pre>
1017 zhen 1.16 <warn>You will have to re-emerge <i>pcmcia-cs</i> after installation to get PCMCIA
1018 zhen 1.10 to work.
1019     </warn>
1020 zhen 1.16 </body>
1021     </section>
1022     </chapter>
1023     <chapter>
1024 zhen 1.61 <title>Modifying /etc/fstab for your machine</title>
1025 zhen 1.16 <section>
1026     <body>
1027     <p>Your Gentoo Linux system is almost ready for use. All we need to do now is configure
1028 jhhudso 1.75 a few important system files and install the boot loader.
1029 zhen 1.6 The first file we need to
1030     configure is <path>/etc/fstab</path>. Remember that you should use
1031     the <c>notail</c> option for your boot partition if you chose to create a ReiserFS filesystem on it.
1032     Remember to specify <c>ext2</c>, <c>ext3</c> or <c>reiserfs</c> filesystem types as appropriate.
1033     </p>
1034 zhen 1.16 <p>Use something like the <path>/etc/fstab</path> listed below, but of course be sure to replace &quot;BOOT&quot;,
1035     &quot;ROOT&quot; and &quot;SWAP&quot; with the actual block devices you are using (such as <c>hda1</c>, etc.)</p>
1036 jhhudso 1.81 <pre caption="Editing fstab">
1037     <comment># /etc/fstab: static file system information.
1038 drobbins 1.1 #
1039 zhware 1.31 # noatime turns off atimes for increased performance (atimes normally aren't
1040 drobbins 1.1 # needed; notail increases performance of ReiserFS (at the expense of storage
1041 jhhudso 1.75 # efficiency). It is safe to drop the noatime options if you want and to
1042 drobbins 1.1 # switch between notail and tail freely.
1043    
1044 seemant 1.78 # &lt;fs&gt; &lt;mount point&gt; &lt;type&gt; &lt;opts&gt; &lt;dump/pass&gt;
1045 drobbins 1.1
1046     # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
1047     </comment>
1048     /dev/BOOT /boot ext2 noauto,noatime 1 2
1049     /dev/ROOT / ext3 noatime 0 1
1050     /dev/SWAP none swap sw 0 0
1051     /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
1052     proc /proc proc defaults 0 0
1053 jhhudso 1.81 </pre>
1054 jhhudso 1.75 <warn>Please notice that <i>/boot</i> is NOT mounted at boot time.
1055 zhen 1.6 This is to protect the data in <i>/boot</i> from
1056     corruption. If you need to access <i>/boot</i>, please mount it!
1057     </warn>
1058 zhen 1.16 </body>
1059     </section>
1060     </chapter>
1061     <chapter>
1062 zhen 1.61 <title>Setting the Root Password</title>
1063 zhen 1.16 <section>
1064     <body>
1065     <p>Before you forget, set the root password by typing: </p>
1066 jhhudso 1.81 <pre caption="Setting the root Password">
1067 zhen 1.16 # <c>passwd</c>
1068 jhhudso 1.81 </pre>
1069 zhen 1.56
1070     <p>You will also want to add a non-root user for everyday use. Please consult
1071     the <uri link="http://www.gentoo.org/doc/en/faq.xml">Gentoo FAQ</uri>.
1072     </p>
1073 zhen 1.16 </body>
1074     </section>
1075     </chapter>
1076     <chapter>
1077 zhen 1.61 <title>Setting your Hostname</title>
1078 zhen 1.16 <section>
1079     <body>
1080     <p>Edit this file so that it contains your fully-qualified domain name on a single line,
1081 zhen 1.6 i.e. <c>mymachine.mydomain.com</c>.
1082     </p>
1083 jhhudso 1.81 <pre caption="Configuring Hostname">
1084 zhen 1.16 # <c>echo mymachine.mydomain.com &gt; /etc/hostname</c>
1085 jhhudso 1.81 </pre>
1086 zhen 1.16 </body>
1087     </section>
1088     </chapter>
1089     <chapter>
1090 zhen 1.61 <title>Modifying /etc/hosts</title>
1091 zhen 1.16 <section>
1092     <body>
1093     <p>This file contains a list of ip addresses and their associated hostnames.
1094 jhhudso 1.75 It is used by the system to resolve the IP addresses
1095     of any hostnames that may not be in your nameservers. Here is a template for this file:
1096 zhen 1.6 </p>
1097 jhhudso 1.81 <pre caption="Hosts Template">
1098 drobbins 1.1 127.0.0.1 localhost
1099     <comment># the next line contains your IP for your local LAN, and your associated machine name</comment>
1100     192.168.1.1 mymachine.mydomain.com mymachine
1101 jhhudso 1.81 </pre>
1102 zhen 1.16 <note>If you are on a DHCP network, it might be helpful to set <i>localhost</i> to your machine's
1103 zhen 1.6 actual hostname. This will help GNOME and many other programs in name resolution.
1104     </note>
1105 zhen 1.16 </body>
1106     </section>
1107     </chapter>
1108     <chapter>
1109     <title>Final Network Configuration</title>
1110     <section>
1111     <body>
1112     <p>Add the names of any modules that are necessary for the proper functioning of your system to
1113 zhen 1.6 <path>/etc/modules.autoload</path> file (you can also add any options you
1114     need to the same line.) When Gentoo Linux boots, these modules will be automatically
1115     loaded. Of particular importance is your ethernet card module, if you happened to compile
1116     it as a module:
1117     </p>
1118 jhhudso 1.81 <pre caption="/etc/modules.autoload"><comment>This is assuming that you are using a 3com card.
1119     Check <path>/lib/modules/`uname -r`/kernel/drivers/net</path> for your card. </comment>
1120 drobbins 1.1 3c59x
1121 jhhudso 1.81 </pre>
1122 zhen 1.16 <p>Edit the <path>/etc/conf.d/net</path> script to get your network configured for your
1123 zhen 1.6 first boot: </p>
1124 jhhudso 1.81 <pre caption="Boot time Network Configuration">
1125 drobbins 1.1 # <c>nano -w /etc/conf.d/net</c>
1126     # <c>rc-update add net.eth0 default</c>
1127 jhhudso 1.81 </pre>
1128 zhen 1.16 <p>If you have multiple network cards you need to create additional <path>net.eth<comment>x</comment></path>
1129 zhen 1.6 scripts for each one (<comment>x</comment> = 1, 2, ...): </p>
1130 jhhudso 1.81 <pre caption="Multiple Network Interfaces">
1131 drobbins 1.1 # <c>cd /etc/init.d</c>
1132     # <c>cp net.eth0 net.eth<comment>x</comment></c>
1133     # <c>rc-update add net.eth<comment>x</comment> default</c>
1134 jhhudso 1.81 </pre>
1135 zhen 1.16 <p>If you have a PCMCIA card installed, have a quick look into
1136 zhen 1.6 <path>/etc/init.d/pcmcia</path> to verify that things seem all right for your setup,
1137 zhen 1.45 then add this line to the top of <path>/etc/init.d/net.ethx</path>:
1138 zhen 1.6 </p>
1139 jhhudso 1.81 <pre caption="PCMCIA depend in /etc/init.d/net.ethx">
1140 drobbins 1.1 depend() {
1141     need pcmcia
1142     }
1143 jhhudso 1.81 </pre>
1144 zhen 1.16 <p>This makes sure that the PCMCIA drivers are autoloaded whenever your network is loaded.
1145 zhen 1.10 </p>
1146 zhen 1.16 </body>
1147     </section>
1148     </chapter>
1149     <chapter>
1150     <title>Final steps: Configure Basic Settings (including the international keymap setting)</title>
1151     <section>
1152     <body>
1153 jhhudso 1.81 <pre caption="Basic Configuration">
1154 drobbins 1.1 # <c>nano -w /etc/rc.conf</c>
1155 jhhudso 1.81 </pre>
1156 zhen 1.16 <p>Follow the directions in the file to configure the basic settings.
1157 zhen 1.6 All users will want to make sure that <c>CLOCK</c> is set to his/her
1158     liking. International keyboard users will want to set the <c>KEYMAP</c>
1159     variable (browse <path>/usr/share/keymaps</path> to see the various
1160     possibilities).
1161     </p>
1162 zhen 1.16 </body>
1163     </section>
1164     </chapter>
1165     <chapter>
1166 zhen 1.61 <title>Configure a Bootloader</title>
1167 zhen 1.49 <section>
1168     <title>Notes</title>
1169     <body>
1170     <p> In the spirit of Gentoo, users now have more than one bootloader to choose from.
1171     Using our virtual package system, users are now able to choose between both GRUB and
1172     LILO as their bootloaders.
1173     </p>
1174     <p> Please keep in mind that having both bootloaders installed is not necessary.
1175 jhhudso 1.75 In fact, it can be a hindrance, so please only choose one.
1176 zhen 1.49 </p>
1177 drobbins 1.69 <impo>If you are installing Gentoo Linux on a system with an NVIDIA nForce or nForce2 chipset
1178     with an integrated GeForce graphics card, you should use LILO and avoid GRUB. With on-board
1179 drobbins 1.70 video enabled, the low memory area of your RAM may be used as video RAM. Since GRUB also uses low
1180     memory at boot time, it may experience an "out of memory" condition. So, if you have an nForce
1181 drobbins 1.69 or potentially other board with on-board video, use LILO. Even if you're using off-board video
1182 jhhudso 1.75 right now, it would be nice to be able to remove the graphics card and use the on-board video in a
1183 drobbins 1.69 pinch, wouldn't it? :)</impo>
1184    
1185 zhen 1.49 </body>
1186     </section>
1187 zhen 1.16 <section>
1188 zhen 1.49 <title>Configuring GRUB</title>
1189 zhen 1.16 <body>
1190     <p>The most critical part of understanding GRUB is getting comfortable with how GRUB
1191 zhen 1.6 refers to hard drives and partitions. Your Linux partition <path>/dev/hda1</path> is called
1192     <path>(hd0,0)</path> under GRUB. Notice the parenthesis around the hd0,0 - they are required.
1193 zhen 1.16 Hard drives count from zero rather than &quot;a&quot;, and partitions start at zero rather than one.
1194 zhen 1.6 Be aware too that with the hd devices, only harddrives are counted, not atapi-ide devices such as
1195     cdrom players, burners, and that the same construct can be used with scsi drives.
1196     (Normally they get higher numbers than ide drives except when the bios is configured
1197     to boot from scsi devices.) Assuming you have a harddrive on /dev/hda, a cdrom player on /dev/hdb,
1198     a burner on /dev/hdc and a second hardrive on /dev/hdd, for example, and no scsi harddrive
1199     <path>/dev/hdd7</path> gets translated to <path>(hd1,6)</path>.
1200    
1201     It might sound tricky, and tricky it is indeed, but as we will see, grub
1202     offers a tab completion mechanism that comes handy for those of you having
1203     a lot of harddrives and partitions and who are a little lost in the
1204     grub numbering scheme. Having gotten the feel for that,
1205 jhhudso 1.75 it is time to install GRUB.
1206 zhen 1.6 </p>
1207 zhen 1.16 <p>The easiest way to install GRUB is to simply type <c>grub</c> at your chrooted shell prompt: </p>
1208 jhhudso 1.81 <pre caption="Installing GRUB">
1209 zhen 1.51 # <c>emerge grub</c>
1210 drobbins 1.1 # <c>grub</c>
1211 jhhudso 1.81 </pre>
1212 zhen 1.16 <impo>If you are using hardware RAID this part will not work at
1213 zhen 1.6 this time.
1214     Skip to the section on making your <path>grub.conf</path>. After that we will complete the
1215     grub setup for RAID controllers
1216     </impo>
1217 jhhudso 1.75 <p>You will be presented with the <c>grub&gt;</c> grub
1218 zhen 1.6 command-line prompt. Now, you need to type in the
1219     right commands to install the GRUB boot record onto your hard drive. In my example configuration,
1220     I want to install the GRUB boot record on my hard drive's MBR (master boot record), so that
1221     the first thing I see when I turn on the computer is the GRUB prompt. In my case, the commands
1222     I want to type are:
1223     </p>
1224 zhen 1.68
1225 jhhudso 1.81 <pre caption="GRUB on the MBR">
1226 zhen 1.68 grub&gt; <c>root (hd0,0)</c> <codenote>Your boot partition</codenote>
1227     grub&gt; <c>setup (hd0)</c> <codenote>Where the boot record is installed, here, it is the MBR</codenote>
1228 jhhudso 1.81 </pre>
1229 zhen 1.68
1230 jhhudso 1.81 <pre caption="GRUB not on the MBR">
1231 zhen 1.53 <comment>Alternatively, if you wanted to install the bootloader somewhere other than the MBR</comment>
1232 zhen 1.68 grub&gt; <c>root (hd0,0)</c> <codenote>Your boot partition</codenote>
1233     grub&gt; <c>setup (hd0,4)</c> <codenote>Where the boot record is installed, here it is /dev/hda5</codenote>
1234 drobbins 1.1 grub&gt; <c>quit</c>
1235 jhhudso 1.81 </pre>
1236 zhen 1.68
1237 jhhudso 1.75 <p>Here is how the two commands work. The first <c>root ( )</c> command tells GRUB
1238 zhen 1.6 the location of your boot partition (in our example, <path>/dev/hda1</path> or
1239     <path>(hd0,0)</path> in GRUB terminology. Then, the second <c>setup ( )
1240     </c> command tells GRUB where to install the
1241     boot record - it will be configured to look for its special files at the <c>root
1242     ( )</c> location that you specified. In my case, I want the boot record on the
1243     MBR of the hard drive, so I simply specify <path>/dev/hda</path> (also known as <path>(hd0)</path>).
1244     If I were using another boot loader and wanted to set up GRUB as a secondary boot-loader, I
1245     could install GRUB to the boot record of a particular partition. In that case,
1246 jhhudso 1.75 I would specify a particular partition rather than the entire disk. Once the GRUB
1247 zhen 1.6 boot record has been successfully installed, you can type <c>quit</c> to quit GRUB.
1248 zhen 1.52 </p>
1249 zhen 1.6
1250     <note> The tab completion mechanism of grub can be used from within grub,
1251     assuming you wrote <c> root (</c> and that you hit the TAB key, you would
1252     be prompted with a list of the available devices (not only harddrives),
1253     hitting the TAB key having written <c> root (hd</c>, grub would print the
1254     available harddrives and hitting the TAB key after writing <c> root (hd0,</c>
1255     would make grub print the list of partitions on the first harddrive.
1256    
1257     Checking the syntax of the grub location with completion should really help
1258     to make the right choice.
1259     </note>
1260    
1261 zhen 1.52 <p>
1262 zhen 1.6 Gentoo Linux is now
1263     installed, but we need to create the <path>/boot/grub/grub.conf</path> file so that
1264 jhhudso 1.75 we get a nice GRUB boot menu when the system reboots. Here is how to do it.
1265 zhen 1.6 </p>
1266 zhen 1.16 <impo>To ensure backwards compatibility with GRUB, make sure to make a link from
1267 zhen 1.6 <i>grub.conf</i> to <i>menu.lst</i>. You can do this by doing
1268     <c>ln -s /boot/grub/grub.conf /boot/grub/menu.lst </c>. </impo>
1269 zhen 1.16 <p>Now, create the grub.conf file (<c>nano -w /boot/grub/grub.conf</c>), and add the following to it:
1270 zhen 1.6 </p>
1271 jhhudso 1.81 <pre caption="Grub.conf for GRUB">
1272 drobbins 1.1 default 0
1273     timeout 30
1274     splashimage=(hd0,0)/boot/grub/splash.xpm.gz
1275    
1276     title=My example Gentoo Linux
1277     root (hd0,0)
1278 zhen 1.51 kernel (hd0,0)/boot/bzImage root=/dev/hda3
1279 drobbins 1.1
1280 jhhudso 1.81 <comment># Below is for setup using hardware RAID</comment>
1281 drobbins 1.1 title=My Gentoo Linux on RAID
1282     root (hd0,0)
1283 zhen 1.63 kernel (hd0,0)/boot/bzImage root=/dev/ataraid/dXpY
1284 drobbins 1.1
1285     <comment># Below needed only for people who dual-boot</comment>
1286 jhhudso 1.81 title=Windows XP
1287 drobbins 1.1 root (hd0,5)
1288 zhen 1.67 chainloader (hd0,5)+1
1289 jhhudso 1.81 </pre>
1290 zhen 1.16 <note>
1291 zhen 1.6 (hd0,0) should be written without any spaces inside the parentheses.
1292     </note>
1293 zhen 1.16 <impo>
1294 zhen 1.6 If you set up scsi emulation for an IDE cd burner earlier, then to get it to
1295 zhen 1.16 actually work you need to add an &quot;hdx=ide-scsi&quot; fragment to the kernel
1296     line in grub.conf (where &quot;hdx&quot; should be the device for your cd burner).
1297 zhen 1.6 </impo>
1298 zhen 1.16 <p>After saving this file, Gentoo Linux installation is complete. Selecting the first option will
1299 zhen 1.6 tell GRUB to boot Gentoo Linux without a fuss. The second part of the grub.conf file is optional,
1300     and shows you how to use GRUB to boot a bootable Windows partition.
1301     </p>
1302 zhen 1.16 <note>Above, <path>(hd0,0)</path> should point to your &quot;boot&quot; partition
1303 zhen 1.6 (<path>/dev/hda1</path> in our example config) and <path>/dev/hda3</path> should point to
1304     your root filesystem. <path>(hd0,5)</path> contains the NT boot
1305     loader.
1306 zhware 1.9 </note>
1307 zhen 1.16 <note>
1308 zhware 1.9 The path to the kernel image is relative to the boot partition. If for example you have separated boot partition <path>(hd0,0)</path> and root partition <path>(hd0,1)</path>, all paths in the grub.conf file above will become <path>/bzImage</path>.
1309 zhen 1.6 </note>
1310 zhen 1.16 <p>If you need to pass any additional options to the kernel, simply
1311 zhen 1.6 add them to the end of the <c>kernel</c> command. We're already passing one option
1312     (<c>root=/dev/hda3</c>), but you can pass others as well. In particular, you can
1313     turn off devfs by default (not recommended unless you know what you're doing) by
1314     adding the <c>gentoo=nodevfs</c> option to the <c>kernel</c> command.
1315     </p>
1316 zhen 1.16 <note>Unlike in earlier versions of Gentoo Linux, you no longer have to add
1317 zhen 1.6 <c>devfs=mount</c> to the end of the <c>kernel</c> line to enable devfs. In rc6
1318     devfs is enabled by default.
1319     </note>
1320 zhen 1.16 </body>
1321     </section>
1322 zhen 1.49 <section>
1323     <title>Configuring LILO</title>
1324 zhen 1.16 <body>
1325 drobbins 1.21 <p>While GRUB may be the new alternative for most people, it is not always the best choice.
1326 jhhudso 1.75 LILO, the LInuxLOader, is the tried and true workhorse of Linux bootloaders. Here is how to install
1327 drobbins 1.21 LILO if you would like to use it instead of GRUB:
1328 zhen 1.16 </p>
1329     <p>The first step is to emerge LILO:
1330     </p>
1331 jhhudso 1.81 <pre caption="Emerging LILO">
1332 zhen 1.16 # <c>emerge lilo</c>
1333 jhhudso 1.81 </pre>
1334 zhen 1.82 <p>Now it is time to configure LILO. Here is a sample configuration file <path>/etc/lilo.conf</path>
1335 zhen 1.16 </p>
1336 jhhudso 1.81 <pre caption="Example lilo.conf">
1337 zhen 1.16 boot=/dev/hda
1338     map=/boot/map
1339     install=/boot/boot.b
1340     prompt
1341     timeout=50
1342     lba32
1343     default=linux
1344    
1345     image=/boot/vmlinuz-2.4.20
1346     label=linux
1347     read-only
1348 zhen 1.82 root=/dev/hda3
1349 zhen 1.16
1350     #For dual booting windows/other OS
1351     other=/dev/hda1
1352     label=dos
1353 jhhudso 1.81 </pre>
1354 zhen 1.52 <ul>
1355 zhen 1.16 <li><i>boot=/dev/hda</i> tells LILO to install itself on the first hard disk on the first IDE controller. </li>
1356     <li><i>map=/boot/map</i> states the map file. In normal use, this should not be modified. </li>
1357     <li><i>install=/boot/boot.b</i> tells LILO to install the specified file as the new boot sector.
1358     In normal use, this should not be altered. If the install line is missing, LILO will
1359     assume a default of /boot/boot.b as the file to be used. </li>
1360 zhen 1.82 <li>The existence of <i>prompt</i> tells LILO to show you the classic <i>lilo:</i> line at bootup.
1361 zhen 1.16 While it is not recommended that you remove the prompt line, if you do remove it, you can still
1362     get a prompt by holding down the [Shift] key while your machine starts to boot. </li>
1363     <li><i>timeout=50</i> sets the amount of time that LILO will wait for user input before proceeding
1364     with booting the default line entry. This is measured in tenths of a second, with 50 as the default. </li>
1365     <li><i>lba32</i> describes the hard disk geometry to LILO. Another common entry here is linear. You should
1366     not change this line unless you are very aware of what you are doing. Otherwise, you could put
1367     your system in an unbootable state. </li>
1368     <li><i>default=linux</i> refers to the default operating system for LILO to boot from the
1369     options listed below this line. The name linux refers to the label line below in each of the boot options. </li>
1370     <li><i>image=/boot/vmlinuz-2.4.20</i> specifies the linux kernel to boot with this particular boot option. </li>
1371     <li><i>label=linux</i> names the operating system option in the LILO screen. In this case,
1372     it is also the name referred to by the default line. </li>
1373     <li><i>read-only</i> specifies that the root partition (see the root line below) is read-only and cannot be
1374     altered during the boot process. </li>
1375     <li><i>root=/dev/hda5</i> tells LILO what disk partition to use as the root partition. </li>
1376 zhen 1.52 </ul>
1377 zhen 1.16 <p>After you have edited your <i>lilo.conf</i> file, it is time to run LILO to load the information
1378     into the MBR:
1379     </p>
1380 jhhudso 1.81 <pre caption="Running LILO">
1381 zhen 1.16 # <c>/sbin/lilo</c>
1382 jhhudso 1.81 </pre>
1383 zhen 1.16 <p>LILO is configured, and now your machine is ready to boot into Gentoo Linux!
1384     </p>
1385     </body>
1386     </section>
1387     </chapter>
1388     <chapter>
1389 zhen 1.66 <title>Creating Bootdisks</title>
1390 zhen 1.16 <section>
1391     <title>GRUB Bootdisks</title>
1392     <body>
1393 drobbins 1.21 <p>It is always a good idea to make a boot disk the first
1394 zhen 1.16 time you install any Linux distribution. This is a security
1395 drobbins 1.21 blanket, and generally not a bad thing to do. If you are using some kinds of hardware RAID, you may <e>need</e> make a GRUB boot
1396     disk. With these types of hardware RAID,
1397     if you try to install grub from your chrooted shell it will fail. If you are in this camp,
1398     make a GRUB
1399     boot disk, and when you reboot the first time you can install GRUB
1400 zhen 1.6 to the MBR. Make your
1401 jhhudso 1.75 bootdisks like this:
1402 zhen 1.6 </p>
1403 jhhudso 1.81 <pre caption="Creating a GRUB Bootdisk">
1404 drobbins 1.1 # <c>mke2fs /dev/fd0</c>
1405     # <c>mount /dev/fd0 /mnt/floppy</c>
1406     # <c>mkdir -p /mnt/floppy/boot/grub</c>
1407     # <c>cp /usr/share/grub/i386-pc/stage1 /mnt/floppy/boot/grub/</c>
1408     # <c>cp /usr/share/grub/i386-pc/stage2 /mnt/floppy/boot/grub/</c>
1409 zhen 1.66 # <c>umount /mnt/floppy</c>
1410 drobbins 1.1 # <c>grub</c>
1411    
1412     grub&gt; <c>root (fd0)</c>
1413     grub&gt; <c>setup (fd0)</c>
1414     grub&gt; <c>quit</c>
1415 jhhudso 1.81 </pre>
1416 zhen 1.26 <p>Now reboot and load the floppy. At the floppy's <c>grub&gt;</c> prompt, you can now execute the necessary <c>root</c>
1417 drobbins 1.21 and <c>setup</c> commands.</p>
1418 zhen 1.16 </body>
1419     </section>
1420     <section>
1421     <title>LILO Bootdisks</title>
1422     <body>
1423     <p>If you are using LILO, it is also a good idea to make a bootdisk:
1424     </p>
1425 jhhudso 1.81 <pre caption="Making a LILO Bootdisk">
1426 zhen 1.18 # <c>dd if=/boot/your_kernel of=/dev/fd0 </c>
1427     <comment>This will only work if your kernel is smaller than 1.4MB</comment>
1428 jhhudso 1.81 </pre>
1429 zhen 1.16 </body>
1430     </section>
1431     </chapter>
1432     <chapter>
1433     <title>Installation Complete!</title>
1434     <section>
1435     <body>
1436 jhhudso 1.75 <p>Now, Gentoo Linux is installed. The only remaining step is to update necessary configuration files, exit the chrooted shell,
1437    
1438 zhen 1.6 safely unmount your partitions
1439     and reboot the system:
1440     </p>
1441 jhhudso 1.81 <pre caption="Rebooting the System">
1442 drobbins 1.1 # <c>etc-update</c>
1443     # <c>exit</c>
1444 jhhudso 1.81 <comment>(This exits the chrooted shell; you can also type <c>^D</c>)</comment>
1445 drobbins 1.1 # <c>cd / </c>
1446     # <c>umount /mnt/gentoo/boot</c>
1447     # <c>umount /mnt/gentoo/proc</c>
1448     # <c>umount /mnt/gentoo</c>
1449     # <c>reboot</c>
1450 jhhudso 1.81 </pre>
1451 zhen 1.16 <note>
1452 zhen 1.6 After rebooting, it is a good idea to run the <c>update-modules</c> command to create
1453     the <path>/etc/modules.conf</path> file. Instead of modifying this file directly, you should
1454     generally make changes to the files in <path>/etc/modules.d</path>.
1455     </note>
1456 zhen 1.16 <impo>Remember if you are running hardware RAID, you must
1457 zhen 1.6 use the bootdisk for the first reboot.
1458     then go back and install grub the way everyone else did the first
1459 drobbins 1.21 time. You are done -- congratulations!</impo>
1460 zhen 1.16 <p>If you have any questions or would like to get involved with Gentoo Linux development,
1461 zhen 1.6 consider joining our gentoo-user and gentoo-dev mailing lists
1462 jhhudso 1.75 (there is a &quot;click to subscribe&quot; link on our <uri link="http://www.gentoo.org">main page</uri>).
1463 zhen 1.6 We also have a handy <uri link="http://www.gentoo.org/doc/en/desktop.xml">Desktop configuration guide</uri>
1464     that will
1465     help you to continue configuring your new Gentoo Linux system, and a useful
1466     <uri link="http://www.gentoo.org/doc/en/portage-user.xml">Portage user guide</uri>
1467     to help familiarize you with Portage basics. You can find the rest of the Gentoo Documentation
1468 zhen 1.16 <uri link="http://www.gentoo.org/main/en/docs.xml">here</uri>. If you have any other questions
1469 zhen 1.10 involving installation or anything for that matter, please check the Gentoo Linux
1470 zhen 1.16 <uri link="http://www.gentoo.org/doc/en/faq.xml">FAQ</uri>.
1471 zhen 1.6 Enjoy and welcome to Gentoo Linux!
1472     </p>
1473 zhen 1.16 </body>
1474     </section>
1475     </chapter>
1476     <chapter>
1477     <title>Gentoo-Stats</title>
1478     <section>
1479     <body>
1480     <p>The Gentoo Linux usage statistics program was started as an attempt to give the developers
1481 zhen 1.6 a way to find out about their user base. It collects information about Gentoo Linux usage to help
1482     us in set priorities our development. Installing it is completely optional, and it would be greatly
1483     appreciated if you decide to use it. Compiled statistics can be viewed at <uri>http://stats.gentoo.org/</uri>.
1484     </p>
1485 zhen 1.16 <p>The gentoo-stats server will assign a unique ID to your system.
1486 zhen 1.6 This ID is used to make sure that each system is counted only once. The ID will not be used
1487     to individually identify your system, nor will it be mached against an IP address or
1488     other personal information. Every precaution has been taken to assure your privacy in the
1489     development of this system. The following are the things that we are monitoring
1490 zhen 1.16 right now through our &quot;gentoo-stats&quot; program:
1491 zhen 1.6 </p>
1492 zhen 1.16 <ul>
1493     <li>installed packages and their version numbers</li>
1494     <li>CPU information: speed (MHz), vendor name, model name, CPU flags (like &quot;mmx&quot; or &quot;3dnow&quot;)</li>
1495     <li>memory information (total available physical RAM, total available swap space)</li>
1496     <li>PCI cards and network controller chips</li>
1497     <li>the Gentoo Linux profile your machine is using (that is, where the /etc/make.profile link is pointing to).</li>
1498     </ul>
1499     <p>We are aware that disclosure of sensitive information is a threat to most Gentoo Linux users
1500 zhen 1.6 (just as it is to the developers).
1501     </p>
1502 zhen 1.16 <ul>
1503     <li>Unless you modify the gentoo-stats program, it will never transmit sensitive
1504 zhen 1.6 information such as your passwords, configuration data, shoe size...</li>
1505 zhen 1.16 <li>Transmission of your e-mail addresses is optional and turned off by default.</li>
1506     <li>The IP address your data transmission originates from will never be logged
1507     in such a way that we can identify you. There are no &quot;IP address/system ID&quot; pairs.</li>
1508     </ul>
1509     <p>The installation is easy - just run the following commands:
1510 zhen 1.6 </p>
1511 jhhudso 1.81 <pre caption="Installing gentoo-stats">
1512 drobbins 1.1 # <c>emerge gentoo-stats</c> <codenote>Installs gentoo-stats</codenote>
1513     # <c>gentoo-stats --new</c> <codenote>Obtains a new system ID</codenote>
1514 jhhudso 1.81 </pre>
1515 zhen 1.16 <p>The second command above will request a new system ID and enter it into
1516 zhen 1.6 <path>/etc/gentoo-stats/gentoo-stats.conf</path> automatically. You can view this file
1517     to see additional configuration options.
1518     </p>
1519 zhen 1.16 <p>After that, the program should be run on a regular schedule
1520 zhen 1.6 (gentoo-stats does not have to be run as root). Add this line to your <path>crontab</path>:
1521     </p>
1522 jhhudso 1.81 <pre caption="Updating gentoo-stats with cron">
1523     <c>0 0 * * 0,4 /usr/sbin/gentoo-stats --update &gt; /dev/null</c>
1524     </pre>
1525 zhen 1.16 <p>The <c>gentoo-stats</c> program is a simple perl script which can be
1526 jhhudso 1.75 viewed with your favorite pager or editor: <path>/usr/sbin/gentoo-stats</path>. </p>
1527 zhen 1.16 </body>
1528     </section>
1529     </chapter>
1530 drobbins 1.1 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20