1 |
<?xml version='1.0' encoding="UTF-8"?> |
2 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-x86-quickinstall.xml,v 1.77 2007/05/20 20:32:22 nightmorph Exp $ --> |
3 |
|
4 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
5 |
|
6 |
<guide link="/doc/en/gentoo-x86-quickinstall.xml" lang="en"> |
7 |
<title>Gentoo Linux x86 Quick Install Guide</title> |
8 |
|
9 |
<author title="Author"> |
10 |
<mail link="neysx@gentoo.org">Xavier Neys</mail> |
11 |
</author> |
12 |
<author title="Author"> |
13 |
<mail link="swift@gentoo.org">Sven Vermeulen</mail> |
14 |
</author> |
15 |
<author title="Author">Steven Wagner</author> |
16 |
|
17 |
<abstract> |
18 |
The Quick install guide covers the Gentoo install process in a non-verbose |
19 |
manner. Its purpose is to allow users to perform a stage3 install in no time. |
20 |
Users should already have prior experience with installing Gentoo Linux if they |
21 |
want to follow this guide. |
22 |
</abstract> |
23 |
|
24 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
25 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
26 |
<license/> |
27 |
|
28 |
<version>19</version> |
29 |
<date>2007-06-02</date> |
30 |
|
31 |
<chapter> |
32 |
<title>Introduction</title> |
33 |
<section> |
34 |
<body> |
35 |
|
36 |
<p> |
37 |
This guide contains all commands you should use to complete a stage3 |
38 |
installation of Gentoo. You need a connection to the Internet to download the |
39 |
stage3 and Portage snapshots. |
40 |
</p> |
41 |
|
42 |
<p> |
43 |
Timing output follows all commands that take more than a couple of seconds to |
44 |
finish. Commands were timed on an AMD 2000 1.66 Ghz PC with 512 MB of RAM and |
45 |
two SATA disks connected to a hardware controller. |
46 |
</p> |
47 |
|
48 |
<pre caption="Test box specs"> |
49 |
<comment>(The following specs and the timing information should help you determine |
50 |
a rough estimate of the time you need to complete your install)</comment> |
51 |
|
52 |
# <i>grep bogo /proc/cpuinfo</i> |
53 |
bogomips : 3337.81 |
54 |
|
55 |
# <i>hdparm -tT /dev/sda</i> |
56 |
/dev/sda: |
57 |
Timing cached reads: 1100 MB in 2.00 seconds = 549.97 MB/sec |
58 |
Timing buffered disk reads: 224 MB in 3.01 seconds = 74.36 MB/sec |
59 |
|
60 |
# <i>grep MemTotal /proc/meminfo</i> |
61 |
MemTotal: 509248 kB |
62 |
</pre> |
63 |
|
64 |
</body> |
65 |
</section> |
66 |
</chapter> |
67 |
|
68 |
<chapter> |
69 |
<title>Quick Install Guide</title> |
70 |
<section> |
71 |
<title>Installation Media</title> |
72 |
<body> |
73 |
|
74 |
<p> |
75 |
Download a CD from one of our <uri link="/main/en/mirrors.xml">mirrors</uri>. |
76 |
You can find the minimal CD ISO in |
77 |
<path>releases/x86/<release>/installcd</path> or the LiveCD ISO in |
78 |
<path>releases/x86/<release>/livecd</path>. The <e>minimal</e> |
79 |
installation CD is only useful for Internet-based installations. You can use |
80 |
the <e>LiveCD</e> to perform a networkless installation as documented in the |
81 |
<uri link="/doc/en/handbook/2007.0/handbook-x86.xml">2007.0 x86 installation |
82 |
handbook</uri>. The minimal CD is recommended. |
83 |
</p> |
84 |
|
85 |
<p> |
86 |
<uri link="/doc/en/faq.xml#isoburning">Burn</uri> the CD and boot it. |
87 |
</p> |
88 |
|
89 |
</body> |
90 |
</section> |
91 |
<section> |
92 |
<title>Booting the CD</title> |
93 |
<body> |
94 |
|
95 |
<p> |
96 |
Press |
97 |
<c>F2</c> at the boot screen to find out what boot options exist. You can |
98 |
either start <c>gentoo</c> or <c>gentoo-nofb</c>, the latter disables the |
99 |
framebuffer. If you booted the LiveCD, don't forget to add the <c>nox</c> |
100 |
option to prevent the X graphical environment from starting. Several options |
101 |
allow to enable or disable some features. If all goes well, your hardware will |
102 |
be detected and all modules will be loaded. If the kernel fails to boot |
103 |
properly or if your computer hangs during the boot procedure, you may have to |
104 |
experiment with different configurations. The safest way is probably to use the |
105 |
<c>nodetect</c> option and then load required modules explicitly. |
106 |
</p> |
107 |
|
108 |
<pre caption="Boot the minimal CD"> |
109 |
Gentoo Linux Installation LiveCD http://www.gentoo.org |
110 |
Enter to Boot; F1 for kernels F2 for options. |
111 |
boot: <i>gentoo-nofb</i> |
112 |
<comment>(or in case of problems)</comment> |
113 |
boot: <i>gentoo-nofb nodetect</i> |
114 |
</pre> |
115 |
|
116 |
</body> |
117 |
</section> |
118 |
<section> |
119 |
<title>Optional: loading modules</title> |
120 |
<body> |
121 |
|
122 |
<p> |
123 |
If you used the <c>nodetect</c> option, once booted, load the required modules. |
124 |
You need to enable networking and have access to your disks. The <c>lspci</c> |
125 |
command can help you identify your hardware. |
126 |
</p> |
127 |
|
128 |
<pre caption="Load required modules"> |
129 |
livecd root # <i>lspci</i> |
130 |
<comment>(Use lspci's output to identify required modules)</comment> |
131 |
|
132 |
<comment>(The following is an example, adapt it to your hardware)</comment> |
133 |
livecd root # <i>modprobe 3w-9xxx</i> |
134 |
livecd root # <i>modprobe r8169</i> |
135 |
</pre> |
136 |
|
137 |
</body> |
138 |
</section> |
139 |
<section> |
140 |
<title>Network Configuration</title> |
141 |
<body> |
142 |
|
143 |
<p> |
144 |
If your network does not work already, you can use <c>net-setup</c> to configure |
145 |
your network. You might need to load support for your network card using |
146 |
<c>modprobe</c> prior to the configuration. If you have ADSL, use |
147 |
<c>pppoe-setup</c> and <c>pppoe-start</c>. For PPTP support, first edit |
148 |
<path>/etc/ppp/chap-secrets</path> and <path>/etc/ppp/options.pptp</path> and |
149 |
then use <c>pptp <server ip></c>. |
150 |
</p> |
151 |
|
152 |
<p> |
153 |
For wireless access, use <c>iwconfig</c> to set the wireless parameters and then |
154 |
use either <c>net-setup</c> again or run <c>ifconfig</c>, <c>dhcpcd</c> and/or |
155 |
<c>route</c> manually. |
156 |
</p> |
157 |
|
158 |
<p> |
159 |
If you are behind a proxy, do not forget to initialize your system using |
160 |
<c>export http_proxy</c>, <c>ftp_proxy</c> and <c>RSYNC_PROXY</c>. |
161 |
</p> |
162 |
|
163 |
<pre caption="Configure networking the guided way"> |
164 |
livecd root # <i>net-setup eth0</i> |
165 |
</pre> |
166 |
|
167 |
<p> |
168 |
Alternatively, you can start networking manually. The following example assigns |
169 |
the IP address 192.168.1.10 to your PC and defines 192.168.1.1 as your router |
170 |
and name server. |
171 |
</p> |
172 |
|
173 |
<pre caption="Configure networking the manual way"> |
174 |
livecd root # <i>ifconfig eth0 192.168.1.10/24</i> |
175 |
livecd root # <i>route add default gw 192.168.1.1</i> |
176 |
livecd root # <i>echo nameserver 192.168.1.1 > /etc/resolv.conf</i> |
177 |
</pre> |
178 |
|
179 |
<p> |
180 |
The installation CD allows you to start an <c>sshd</c> server, add additional |
181 |
users, run <c>irssi</c> (a command-line chat client) and surf the web using |
182 |
<c>lynx</c> or <c>links</c>. |
183 |
</p> |
184 |
|
185 |
</body> |
186 |
</section> |
187 |
<section> |
188 |
<title>Optional: connect to your new box over ssh</title> |
189 |
<body> |
190 |
|
191 |
<p> |
192 |
The most interesting feature is of course <c>sshd</c>. You can start it and |
193 |
then connect from another machine and cut and paste commands from this guide. |
194 |
</p> |
195 |
|
196 |
<pre caption="Start sshd"> |
197 |
livecd root # <i>time /etc/init.d/sshd start</i> |
198 |
* Generating hostkey ... |
199 |
<comment>(sshd generates the key and displays more output)</comment> |
200 |
* starting sshd ... [ok] |
201 |
|
202 |
real 0m13.688s |
203 |
user 0m9.420s |
204 |
sys 0m0.090s |
205 |
</pre> |
206 |
|
207 |
<p> |
208 |
Now, set the root password on the liveCD so that you can connect to it from |
209 |
another PC. Please note that allowing root to connect over ssh is not |
210 |
recommended under normal circumstances. If you can't trust your local network, |
211 |
use a long and complex password, you should use it only once as it will |
212 |
disappear after your first reboot. |
213 |
</p> |
214 |
|
215 |
<pre caption="Set the root password"> |
216 |
livecd root # <i>passwd</i> |
217 |
New UNIX password: <comment>type_a_password</comment> |
218 |
Retype new UNIX password: <comment>type_a_password</comment> |
219 |
passwd: password updated successfully |
220 |
</pre> |
221 |
|
222 |
<p> |
223 |
Now, you can start a terminal on another PC and connect to your new box, follow |
224 |
the rest of this guide in another window, and cut and paste commands. |
225 |
</p> |
226 |
|
227 |
<pre caption="Connect to your new box from another PC"> |
228 |
<comment>(Use the IP address of your new box)</comment> |
229 |
$ <i>ssh root@192.168.1.10</i> |
230 |
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. |
231 |
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f. |
232 |
Are you sure you want to continue connecting (yes/no)? <i>yes</i> |
233 |
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts. |
234 |
Password: <comment>type_the_password</comment> |
235 |
</pre> |
236 |
|
237 |
</body> |
238 |
</section> |
239 |
<section> |
240 |
<title>Preparing the Disks</title> |
241 |
<body> |
242 |
|
243 |
<p> |
244 |
Use <c>fdisk</c> or <c>cfdisk</c> to create your partition layout. You need at |
245 |
least a swap partition (type 82) and one Linux partition (type 83). The |
246 |
following scenario creates a <path>/boot</path>, a swap and a main partition |
247 |
as used in our handbook. The device name is likely to be either |
248 |
<path>/dev/sda</path> for a SATA or SCSI disk, or <path>/dev/hda</path> for an |
249 |
IDE disk. |
250 |
</p> |
251 |
|
252 |
<pre caption="Create the partitions"> |
253 |
livecd ~ # <i>fdisk /dev/sda</i> |
254 |
|
255 |
<comment>(The rest of this guide uses the following partitioning scheme)</comment> |
256 |
livecd ~ # <i>fdisk -l /dev/sda</i> |
257 |
|
258 |
Disk /dev/sda: 599.9 GB, 599978409984 bytes |
259 |
255 heads, 63 sectors/track, 72943 cylinders |
260 |
Units = cylinders of 16065 * 512 = 8225280 bytes |
261 |
|
262 |
Device Boot Start End Blocks Id System |
263 |
/dev/sda1 1 12 96358+ 83 Linux |
264 |
/dev/sda2 13 110 787185 82 Linux swap / Solaris |
265 |
/dev/sda3 111 72943 585031072+ 83 Linux |
266 |
</pre> |
267 |
|
268 |
<p> |
269 |
Use <c>mke2fs</c>, <c>mke2fs -j</c>, <c>mkreiserfs</c>, <c>mkfs.xfs</c> and |
270 |
<c>mkfs.jfs</c> to create file systems on your Linux partitions. Initialize your |
271 |
swap partition using <c>mkswap</c> and <c>swapon</c>. |
272 |
</p> |
273 |
|
274 |
<pre caption="Create the file systems and activate swap"> |
275 |
<comment>(ext2 is all you need on the /boot partition)</comment> |
276 |
livecd ~ # <i>mke2fs /dev/sda1</i> |
277 |
|
278 |
<comment>(Let's use ext3 on the main partition)</comment> |
279 |
livecd ~ # <i>mke2fs -j /dev/sda3</i> |
280 |
|
281 |
<comment>(Create and activate swap)</comment> |
282 |
livecd ~ # <i>mkswap /dev/sda2 && swapon /dev/sda2</i> |
283 |
</pre> |
284 |
|
285 |
<p> |
286 |
Mount the freshly created file systems on <path>/mnt/gentoo</path>. Create |
287 |
directories for the other mount points (like <path>/mnt/gentoo/boot</path>) if |
288 |
you need them and mount them too. |
289 |
</p> |
290 |
|
291 |
<pre caption="Mount the file systems"> |
292 |
livecd ~ # <i>mount /dev/sda3 /mnt/gentoo</i> |
293 |
livecd ~ # <i>mkdir /mnt/gentoo/boot</i> |
294 |
livecd ~ # <i>mount /dev/sda1 /mnt/gentoo/boot</i> |
295 |
</pre> |
296 |
|
297 |
</body> |
298 |
</section> |
299 |
<section> |
300 |
<title>Setting Up The Stage</title> |
301 |
<body> |
302 |
|
303 |
<p> |
304 |
First make sure your date and time is set correctly using <c>date |
305 |
MMDDhhmmYYYY</c>. Use UTC time. |
306 |
</p> |
307 |
|
308 |
<pre caption="Set the date and UTC time"> |
309 |
<comment>(Check the clock)</comment> |
310 |
livecd ~ # <i>date</i> |
311 |
Mon Mar 6 00:14:13 UTC 2006 |
312 |
|
313 |
<comment>(Set the current date and time if required)</comment> |
314 |
livecd ~ # <i>date 030600162006</i> <comment>(Format is MMDDhhmmYYYY)</comment> |
315 |
Mon Mar 6 00:16:00 UTC 2006 |
316 |
</pre> |
317 |
|
318 |
<p> |
319 |
Next, download a stage from one of our <uri |
320 |
link="/main/en/mirrors.xml">mirrors</uri>. Go to <path>/mnt/gentoo</path> and |
321 |
unpack the stage using <c>tar xjpf <stage3 tarball></c>. |
322 |
</p> |
323 |
|
324 |
<pre caption="Download a stage3 archive"> |
325 |
livecd ~ # <i>cd /mnt/gentoo</i> |
326 |
livecd gentoo # <i>links http://www.gentoo.org/main/en/mirrors.xml</i> |
327 |
<comment>(Pick a mirror, move to the releases/x86/current/stages directory highlight the |
328 |
stage3 of your choice, probably the i686 stage3 and press D to download it)</comment> |
329 |
|
330 |
<comment>(<b>Or</b> download it directly with wget without choosing a nearby mirror)</comment> |
331 |
livecd ~ # <i>cd /mnt/gentoo</i> |
332 |
livecd gentoo # <i>wget ftp://gentoo.osuosl.org/pub/gentoo/releases/x86/current/stages/stage3-i686*tar.bz2</i> |
333 |
</pre> |
334 |
|
335 |
<pre caption="Unpack the stage3 archive"> |
336 |
livecd gentoo # <i>time tar xjpf stage3*</i> |
337 |
|
338 |
real 1m13.157s |
339 |
user 1m2.920s |
340 |
sys 0m7.230s |
341 |
</pre> |
342 |
|
343 |
<p> |
344 |
Install the latest Portage snapshot. Proceed as for the stage3 archive: choose |
345 |
a nearby mirror from our <uri link="/main/en/mirrors.xml">list</uri>, download |
346 |
the latest snapshot and unpack it. |
347 |
</p> |
348 |
|
349 |
<pre caption="Download the latest Portage snapshot"> |
350 |
livecd gentoo # <i>cd /mnt/gentoo/usr</i> |
351 |
livecd usr # <i>links http://www.gentoo.org/main/en/mirrors.xml</i> |
352 |
<comment>(Pick a mirror, move to the snapshots/ directory, |
353 |
highlight <b>portage-latest.tar.bz2</b> and press D to download it)</comment> |
354 |
|
355 |
<comment>(<b>Or</b> download it directly with wget without choosing a nearby mirror)</comment> |
356 |
livecd gentoo # <i>cd /mnt/gentoo/usr</i> |
357 |
livecd usr # <i>wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2</i> |
358 |
</pre> |
359 |
|
360 |
<pre caption="Unpack the Portage snapshot"> |
361 |
livecd usr # <i>time tar xjf portage*</i> |
362 |
|
363 |
real 0m51.523s |
364 |
user 0m28.680s |
365 |
sys 0m12.840s |
366 |
</pre> |
367 |
|
368 |
</body> |
369 |
</section> |
370 |
<section> |
371 |
<title>Chrooting</title> |
372 |
<body> |
373 |
|
374 |
<p> |
375 |
Mount the <path>/proc</path> file system, copy over the |
376 |
<path>/etc/resolv.conf</path> file, then chroot into your Gentoo environment. |
377 |
</p> |
378 |
|
379 |
<pre caption="Chroot"> |
380 |
livecd usr # <i>cd /</i> |
381 |
livecd / # <i>mount -t proc proc /mnt/gentoo/proc</i> |
382 |
livecd / # <i>cp -L /etc/resolv.conf /mnt/gentoo/etc/</i> |
383 |
livecd / # <i>chroot /mnt/gentoo /bin/bash</i> |
384 |
livecd / # <i>env-update && source /etc/profile</i> |
385 |
>>> Regenerating /etc/ld.so.cache... |
386 |
</pre> |
387 |
|
388 |
</body> |
389 |
</section> |
390 |
<section> |
391 |
<title>Set your time zone</title> |
392 |
<body> |
393 |
|
394 |
<p> |
395 |
Set your time zone information by using the correct listing in |
396 |
<path>/usr/share/zoneinfo</path>. |
397 |
</p> |
398 |
|
399 |
<pre caption="Setting your timezone"> |
400 |
livecd / # <i>ls /usr/share/zoneinfo</i> |
401 |
<comment>(Using Brussels as an example)</comment> |
402 |
livecd / # <i>cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime</i> |
403 |
|
404 |
livecd / # <i>date</i> |
405 |
Wed Mar 8 00:46:05 CET 2006 |
406 |
</pre> |
407 |
|
408 |
</body> |
409 |
</section> |
410 |
<section> |
411 |
<title>Set your host and domain name</title> |
412 |
<body> |
413 |
|
414 |
<p> |
415 |
Set your host name in <path>/etc/conf.d/hostname</path> and |
416 |
<path>/etc/hosts</path>. In the following example, we use <c>mybox</c> as host |
417 |
name and <c>at.myplace</c> as domain name. You can either edit the config |
418 |
files with <c>nano</c> or use the following commands: |
419 |
</p> |
420 |
|
421 |
<pre caption="Set host and domain name"> |
422 |
livecd / # <i>cd /etc</i> |
423 |
livecd etc # <i>echo "127.0.0.1 mybox.at.myplace mybox localhost" > hosts</i> |
424 |
livecd etc # <i>sed -i -e 's/HOSTNAME.*/HOSTNAME="mybox"/' conf.d/hostname</i> |
425 |
<comment>(Use defined host name and check)</comment> |
426 |
livecd etc # <i>hostname mybox</i> |
427 |
livecd etc # <i>hostname -f</i> |
428 |
mybox.at.myplace |
429 |
</pre> |
430 |
|
431 |
</body> |
432 |
</section> |
433 |
<section> |
434 |
<title>Kernel Configuration</title> |
435 |
<body> |
436 |
|
437 |
<p> |
438 |
Install a kernel source (usually <c>gentoo-sources</c>), configure it, compile |
439 |
it and copy the <path>arch/i386/boot/bzImage</path> file to <path>/boot</path>. |
440 |
</p> |
441 |
|
442 |
<pre caption="Install a kernel source, compile it and install the kernel"> |
443 |
livecd etc # <i>time emerge gentoo-sources</i> |
444 |
|
445 |
real 2m51.435s |
446 |
user 0m58.220s |
447 |
sys 0m29.890s |
448 |
livecd etc # <i>cd /usr/src/linux</i> |
449 |
livecd linux # <i>make menuconfig</i> |
450 |
<comment>(Configure your kernel)</comment> |
451 |
livecd linux # <i>time make -j2</i> |
452 |
|
453 |
<comment>(Elapsed time depends highly on the options you selected)</comment> |
454 |
real 3m51.962s |
455 |
user 3m27.060s |
456 |
sys 0m24.310s |
457 |
|
458 |
livecd linux # <i>make modules_install</i> |
459 |
livecd linux # <i>cp arch/i386/boot/bzImage /boot/kernel</i> |
460 |
</pre> |
461 |
|
462 |
</body> |
463 |
</section> |
464 |
<section> |
465 |
<title>Configure the system</title> |
466 |
<body> |
467 |
|
468 |
<p> |
469 |
Edit your <path>/etc/fstab</path> and replace <c>BOOT</c>, <c>ROOT</c> and |
470 |
<c>SWAP</c> with the actual partition names. Don't forget to check that the |
471 |
file systems match your installation. |
472 |
</p> |
473 |
|
474 |
<pre caption="Example fstab"> |
475 |
livecd linux # <i>cd /etc</i> |
476 |
livecd etc # <i>nano -w fstab</i> |
477 |
/dev/<i>sda1</i> /boot ext2 noauto,noatime 1 2 |
478 |
/dev/<i>sda3</i> / ext3 noatime 0 1 |
479 |
/dev/<i>sda2</i> none swap sw 0 0 |
480 |
</pre> |
481 |
|
482 |
<p> |
483 |
Configure your network in <path>/etc/conf.d/net</path>. Add the <c>net.eth0</c> |
484 |
init script to the default run level. If you have multiple NICs, symlink them |
485 |
to the <c>net.eth0</c> init script and add them to the default run level as |
486 |
well. Either edit <path>/etc/conf.d/net</path> with <c>nano</c> or use the |
487 |
following commands: |
488 |
</p> |
489 |
|
490 |
<pre caption="Configure networking"> |
491 |
livecd etc # <i>cd conf.d</i> |
492 |
livecd conf.d # <i>echo 'config_eth0=( "192.168.1.10/24" )' >> net</i> |
493 |
livecd conf.d # <i>echo 'routes_eth0=( "default via 192.168.1.1" )' >> net</i> |
494 |
livecd conf.d # <i>rc-update add net.eth0 default</i> |
495 |
<comment>(If you compiled your network card driver as a module, |
496 |
add it to /etc/modules.autoload.d/kernel-2.6)</comment> |
497 |
livecd conf.d # <i>echo r8169 >> /etc/modules.autoload.d/kernel-2.6</i> |
498 |
<comment>(If you want to reconnect via ssh after you have rebooted your new box:)</comment> |
499 |
livecd conf.d # <i>rc-update add sshd default</i> |
500 |
</pre> |
501 |
|
502 |
<note> |
503 |
Emerge <c>pcmciautils</c> if you need support for PCMCIA cards. |
504 |
</note> |
505 |
|
506 |
<p> |
507 |
Set the root password using <c>passwd</c>. |
508 |
</p> |
509 |
|
510 |
<pre caption="Set the root password"> |
511 |
livecd conf.d # <i>passwd</i> |
512 |
New UNIX password: <comment>type_the_password</comment> |
513 |
Retype new UNIX password: <comment>type_the_password_again</comment> |
514 |
passwd: password updated successfully |
515 |
</pre> |
516 |
|
517 |
<p> |
518 |
Edit <path>/etc/conf.d/clock</path> to define the time zone you used |
519 |
previously. |
520 |
</p> |
521 |
|
522 |
<pre caption="Edit /etc/conf.d/clock"> |
523 |
livecd conf.d # <i>nano -w /etc/conf.d/clock</i> |
524 |
TIMEZONE="Europe/Brussels" |
525 |
</pre> |
526 |
|
527 |
<p> |
528 |
Check the system configuration in <path>/etc/rc.conf</path>, |
529 |
<path>/etc/conf.d/rc</path>, <path>/etc/conf.d/keymaps</path> and edit any of |
530 |
those files if required. |
531 |
</p> |
532 |
|
533 |
<pre caption="Optional: edit some config files"> |
534 |
livecd conf.d # <i>nano -w /etc/rc.conf</i> |
535 |
livecd conf.d # <i>nano -w /etc/conf.d/rc</i> |
536 |
livecd conf.d # <i>nano -w /etc/conf.d/keymaps</i> |
537 |
</pre> |
538 |
|
539 |
</body> |
540 |
</section> |
541 |
<section> |
542 |
<title>Installing System Tools</title> |
543 |
<body> |
544 |
|
545 |
<p> |
546 |
Install a system logger like <c>syslog-ng</c> and a cron daemon like |
547 |
<c>vixie-cron</c>, and add them to the default run level. |
548 |
</p> |
549 |
|
550 |
<note> |
551 |
Cron daemons depend on an MTA. <c>mail-mta/ssmtp</c> will be pulled in as a |
552 |
dependency. If you want to use a more advanced MTA, you might want to install |
553 |
it now. If you are in a hurry, let ssmtp be installed and remove it later when |
554 |
you install the MTA of your choice. |
555 |
</note> |
556 |
|
557 |
<pre caption="Install a syslogger and a cron daemon"> |
558 |
livecd conf.d # <i>time emerge syslog-ng vixie-cron</i> |
559 |
|
560 |
real 1m52.699s |
561 |
user 1m1.630s |
562 |
sys 0m35.220s |
563 |
livecd conf.d # <i>rc-update add syslog-ng default</i> |
564 |
livecd conf.d # <i>rc-update add vixie-cron default</i> |
565 |
</pre> |
566 |
|
567 |
<p> |
568 |
Install the necessary file system tools (<c>xfsprogs</c>, <c>reiserfsprogs</c> |
569 |
or <c>jfsutils</c>) and networking tools (<c>dhcpcd</c> or <c>ppp</c>) if you |
570 |
need any. |
571 |
</p> |
572 |
|
573 |
<pre caption="Install extra tools if required"> |
574 |
livecd conf.d # <i>emerge xfsprogs</i> <comment>(If you use the XFS file system)</comment> |
575 |
livecd conf.d # <i>emerge jfsutils</i> <comment>(If you use the JFS file system)</comment> |
576 |
livecd conf.d # <i>emerge reiserfsprogs</i> <comment>(If you use the Reiser file system)</comment> |
577 |
livecd conf.d # <i>emerge dhcpcd</i> <comment>(If you need a DHCP client)</comment> |
578 |
livecd conf.d # <i>emerge ppp</i> <comment>(If you need PPPoE ADSL connectivity)</comment> |
579 |
</pre> |
580 |
|
581 |
</body> |
582 |
</section> |
583 |
<section> |
584 |
<title>Configuring the Bootloader</title> |
585 |
<body> |
586 |
|
587 |
<p> |
588 |
Emerge <c>grub</c> or <c>lilo</c>. Configure either |
589 |
<path>/boot/grub/grub.conf</path> or <path>/etc/lilo.conf</path> and install |
590 |
the bootloader you have emerged. |
591 |
</p> |
592 |
|
593 |
<p> |
594 |
<b>1. Using grub</b> |
595 |
</p> |
596 |
|
597 |
<pre caption="Emerge grub and edit its configuration file"> |
598 |
livecd conf.d # <i>time emerge grub</i> |
599 |
|
600 |
real 1m8.634s |
601 |
user 0m39.460s |
602 |
sys 0m15.280s |
603 |
livecd conf.d # <i>nano -w /boot/grub/grub.conf</i> |
604 |
</pre> |
605 |
|
606 |
<pre caption="Example grub.conf"> |
607 |
default 0 |
608 |
timeout 10 |
609 |
|
610 |
title=Gentoo |
611 |
root (hd0,0) |
612 |
kernel /boot/kernel root=/dev/sda3 |
613 |
</pre> |
614 |
|
615 |
<pre caption="Install grub"> |
616 |
livecd conf.d # <i>grub</i> |
617 |
Probing devices to guess BIOS drives. This may take a long time. |
618 |
|
619 |
grub> <i>root (hd0,0)</i> |
620 |
Filesystem type is ext2fs, partition type 0x83 |
621 |
|
622 |
grub> <i>setup (hd0)</i> |
623 |
Checking if "/boot/grub/stage1" exists... yes |
624 |
Checking if "/boot/grub/stage2" exists... yes |
625 |
Checking if "/boot/grub/e2fs_stage1_5" exists... yes |
626 |
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded. |
627 |
succeeded |
628 |
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/ |
629 |
grub/menu.lst"... succeeded |
630 |
Done. |
631 |
|
632 |
grub> <i>quit</i> |
633 |
</pre> |
634 |
|
635 |
<p> |
636 |
Now, proceed with the <uri link="#reboot">rebooting section</uri>. |
637 |
</p> |
638 |
|
639 |
<p> |
640 |
<b>2. Using lilo</b> |
641 |
</p> |
642 |
|
643 |
<pre caption="Emerge lilo and edit its configuration file"> |
644 |
livecd conf.d # <i>time emerge lilo</i> |
645 |
|
646 |
real 0m47.016s |
647 |
user 0m22.770s |
648 |
sys 0m5.980s |
649 |
livecd conf.d # <i>nano -w /etc/lilo.conf</i> |
650 |
</pre> |
651 |
|
652 |
<pre caption="Example lilo.conf"> |
653 |
boot=/dev/sda |
654 |
prompt |
655 |
timeout=50 |
656 |
default=gentoo |
657 |
|
658 |
image=/boot/kernel |
659 |
label=Gentoo |
660 |
read-only |
661 |
root=/dev/sda3 |
662 |
</pre> |
663 |
|
664 |
<pre caption="Install lilo"> |
665 |
livecd conf.d # <i>lilo</i> |
666 |
Added Gentoo * |
667 |
</pre> |
668 |
|
669 |
</body> |
670 |
</section> |
671 |
<section id="reboot"> |
672 |
<title>Reboot</title> |
673 |
<body> |
674 |
|
675 |
<p> |
676 |
Exit the chrooted environment, unmount all file systems and reboot: |
677 |
</p> |
678 |
|
679 |
<pre caption="Reboot"> |
680 |
livecd conf.d # <i>exit</i> |
681 |
livecd / # <i>umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo</i> |
682 |
livecd / # <i>reboot</i> |
683 |
<comment>(Don't forget to remove the CD)</comment> |
684 |
</pre> |
685 |
|
686 |
</body> |
687 |
</section> |
688 |
<section id="after-reboot"> |
689 |
<title>Finalizing the Installation</title> |
690 |
<body> |
691 |
|
692 |
<note> |
693 |
The <b>total</b> elapsed time between the display of the boot prompt on the |
694 |
minimal CD and the display of the login prompt after the reboot was |
695 |
<b>00:42:31</b> on our test box. Yes, less than one hour! Note that this time |
696 |
also includes the stage3, Portage snapshot and several packages download time |
697 |
and the time spent configuring the kernel. |
698 |
</note> |
699 |
|
700 |
<p> |
701 |
Log in as <c>root</c>, then add one or more users for daily use with |
702 |
<c>useradd</c>. |
703 |
</p> |
704 |
|
705 |
<pre caption="Connect to your new box from another PC"> |
706 |
<comment>(Clean up your known_hosts file because your new box |
707 |
has generated a new definitive hostkey)</comment> |
708 |
$ <i>nano -w ~/.ssh/known_hosts</i> |
709 |
<comment>(Look for the IP of your new PC and delete the line, |
710 |
then save the file and exit nano)</comment> |
711 |
|
712 |
<comment>(Use the IP address of your new box)</comment> |
713 |
$ <i>ssh root@192.168.1.10</i> |
714 |
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. |
715 |
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f. |
716 |
Are you sure you want to continue connecting (yes/no)? <i>yes</i> |
717 |
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts. |
718 |
Password: <comment>type_the_password</comment> |
719 |
</pre> |
720 |
|
721 |
<pre caption="Add a new user"> |
722 |
mybox ~ # <i>adduser -g users -G lp,wheel,audio,cdrom,portage,cron -m john</i> |
723 |
mybox ~ # <i>passwd john</i> |
724 |
New UNIX password: <comment>Set John's password</comment> |
725 |
Retype new UNIX password: <comment>Type John's password again</comment> |
726 |
passwd: password updated successfully |
727 |
</pre> |
728 |
|
729 |
</body> |
730 |
</section> |
731 |
<section> |
732 |
<title>Last configuration touches</title> |
733 |
<body> |
734 |
|
735 |
<p> |
736 |
Start by selecting nearby mirrors either by defining the <c>SYNC</c> and |
737 |
<c>GENTOO_MIRRORS</c> variables in <path>/etc/make.conf</path> or by using |
738 |
<c>mirrorselect</c>. You can also define the number of concurrent compilation |
739 |
processes at this point. |
740 |
</p> |
741 |
|
742 |
<pre caption="Use mirrorselect and set MAKEOPTS"> |
743 |
mybox ~ # <i>emerge mirrorselect</i> |
744 |
mybox ~ # <i>mirrorselect -i -o >> /etc/make.conf</i> |
745 |
mybox ~ # <i>mirrorselect -i -r -o >> /etc/make.conf</i> |
746 |
<comment>(Usually, (the number of processors + 1) is a good value)</comment> |
747 |
mybox ~ # <i>echo 'MAKEOPTS="-j2"' >> /etc/make.conf</i> |
748 |
</pre> |
749 |
|
750 |
<p> |
751 |
Now is a good time to enable or disable some USE flags. Run <c>emerge -vpe |
752 |
world</c> to list all currently installed packages and their enabled and |
753 |
disabled USE flags. Either edit <path>/etc/make.conf</path> or use the |
754 |
following command to define the USE variable: |
755 |
</p> |
756 |
|
757 |
<pre caption="View USE flags in use and enable or disable some"> |
758 |
mybox ~ # <i>emerge -vpe world</i> |
759 |
<comment>(Portage displays the packages and their USE flags, as an example, let's |
760 |
disable ipv6 and fortran, and enable unicode)</comment> |
761 |
mybox ~ # <i>echo 'USE="nptl nptlonly -ipv6 -fortran unicode"' >> /etc/make.conf</i> |
762 |
</pre> |
763 |
|
764 |
<p> |
765 |
Recent versions of glibc use <path>/etc/locale.gen</path> to define locale |
766 |
settings. |
767 |
</p> |
768 |
|
769 |
<pre caption="Define locales"> |
770 |
mybox ~ # <i>cd /etc</i> |
771 |
mybox etc # <i>nano -w locale.gen</i> |
772 |
</pre> |
773 |
|
774 |
<p> |
775 |
Last but not least, you may want to alter the <c>CFLAGS</c> variable in your |
776 |
<path>/etc/make.conf</path> to optimise the code to your specific needs. Please |
777 |
note that using a long list of flags is rarely needed and can even lead to a |
778 |
broken system. It is recommended to specify the processor type in the |
779 |
<c>march</c> option and stick to <c>-O2 -pipe</c>. |
780 |
</p> |
781 |
|
782 |
<p> |
783 |
You may also want to switch to <b>~x86</b>. You should only do this if you can |
784 |
deal with the odd broken ebuild or package. If you'd rather keep your system |
785 |
stable, don't add the <c>ACCEPT_KEYWORDS</c> variable. Adding |
786 |
<c>FEATURES="parallel-fetch ccache"</c> is also a good idea. |
787 |
</p> |
788 |
|
789 |
<pre caption="Last edit of make.conf"> |
790 |
mybox etc # <i>nano -w make.conf</i> |
791 |
<comment>(Set -march to your CPU type in CFLAGS)</comment> |
792 |
CFLAGS="-O2 -march=<i>athlon-xp</i> -pipe" |
793 |
<comment>(Add the following line)</comment> |
794 |
FEATURES="parallel-fetch ccache" |
795 |
<comment>(Only add the following if you know what you're doing)</comment> |
796 |
ACCEPT_KEYWORDS="~x86" |
797 |
</pre> |
798 |
|
799 |
<p> |
800 |
You might want to recompile your whole system twice to make full use of your |
801 |
latest configuration changes. It would take quite a long time to complete and |
802 |
yield minimal speed benefits. You can let your system optimise itself gradually |
803 |
over time when new versions of packages are released. However, recompiling is |
804 |
a still good idea from the standpoint of maintaining system consistency. Please |
805 |
see the <uri link="/doc/en/gcc-upgrading.xml">Gentoo GCC Upgrading Guide</uri> |
806 |
for a discussion on the benefits of ensuring a consistently built system and |
807 |
world. |
808 |
</p> |
809 |
|
810 |
<p> |
811 |
Recompiling only the packages that have already been updated since the release |
812 |
or that are affected by your new USE flags will take enough time. You might |
813 |
also have to remove packages that block your upgrade. Look for "[blocks |
814 |
<brite>B</brite> ]" in the output of <c>emerge -vpuD --newuse world</c> and |
815 |
use <c>emerge -C</c> to remove them. |
816 |
</p> |
817 |
|
818 |
<pre caption="Update your packages"> |
819 |
<comment>(Install ccache)</comment> |
820 |
mybox etc # <i>emerge ccache</i> |
821 |
|
822 |
<comment>(Please note that the switch to ~x86 causes many packages to be upgraded)</comment> |
823 |
mybox etc # <i>emerge -vpuD --newuse world</i> |
824 |
<comment>(Take a good look at the package list and their USE flags, |
825 |
remove blocking packages if any, and start the lengthy process)</comment> |
826 |
mybox etc # <i>time emerge -vuD --newuse world</i> |
827 |
<comment>(79 packages have been (re)compiled)</comment> |
828 |
|
829 |
real 180m13.276s |
830 |
user 121m22.905s |
831 |
sys 36m31.472s |
832 |
|
833 |
<comment>(Remerge libtool to avoid further potential problems)</comment> |
834 |
mybox etc # <i>emerge libtool</i> |
835 |
|
836 |
<comment>(Update config files, make sure you <b>do not</b> let etc-update |
837 |
update config files you have edited)</comment> |
838 |
mybox etc # <i>etc-update</i> |
839 |
|
840 |
<comment>(If perl has been updated, you should run the perl-cleaner script)</comment> |
841 |
mybox etc # <i>time perl-cleaner all</i> |
842 |
real 1m6.495s |
843 |
user 0m42.699s |
844 |
sys 0m10.641s |
845 |
|
846 |
<comment>(In case of a major upgrade of python, you should run the python-updater script)</comment> |
847 |
mybox etc # <i>python-updater</i> |
848 |
</pre> |
849 |
|
850 |
</body> |
851 |
</section> |
852 |
<section> |
853 |
<title>What to do next</title> |
854 |
<body> |
855 |
|
856 |
<p> |
857 |
Depending on what your new Gentoo machine is supposed to do, you will probably |
858 |
want to install server applications or a desktop system. Just as an example, |
859 |
<c>emerge gnome</c> and <c>emerge kde</c> have been timed on the ~x86 system |
860 |
installed as describe above. Both have been installed from the same starting |
861 |
point. |
862 |
</p> |
863 |
|
864 |
<p> |
865 |
You should check our <uri link="/doc/en/">documentation index</uri> to find out |
866 |
how to install and configure the applications of your choice. |
867 |
</p> |
868 |
|
869 |
<impo> |
870 |
The following is only an example. It is in no way meant as a recommended setup. |
871 |
</impo> |
872 |
|
873 |
<pre caption="Emerge GNOME"> |
874 |
mybox etc # <i>emerge -vp gnome</i> |
875 |
<comment>(Look at the list of packages and their USE flags, |
876 |
then edit make.conf if required.</comment> |
877 |
mybox etc # <i>nano -w /etc/make.conf</i> |
878 |
<comment>(The following USE flags have been defined)</comment> |
879 |
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \ |
880 |
-kde -qt3 -qt4 -arts -eds -esd gnome gstreamer gtk firefox" |
881 |
|
882 |
mybox etc # <i>time emerge gnome</i> |
883 |
<comment>(326 packages have been emerged)</comment> |
884 |
|
885 |
real 520m44.532s |
886 |
user 339m21.144s |
887 |
sys 146m22.337s |
888 |
</pre> |
889 |
|
890 |
<pre caption="Emerge KDE"> |
891 |
mybox etc # <i>emerge -vp kde-meta</i> |
892 |
<comment>(Look at the list of packages and their USE flags, |
893 |
then edit make.conf if required.</comment> |
894 |
mybox etc # <i>nano -w /etc/make.conf</i> |
895 |
<comment>The following USE flags have been defined)</comment> |
896 |
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \ |
897 |
kde qt3 qt4 -arts -eds -esd -gnome -gstreamer -gtk -firefox" |
898 |
|
899 |
mybox etc # <i>time emerge kde-meta</i> |
900 |
<comment>(391 packages have been emerged)</comment> |
901 |
|
902 |
real 1171m25.318s |
903 |
user 851m26.393s |
904 |
sys 281m45.629s |
905 |
</pre> |
906 |
|
907 |
</body> |
908 |
</section> |
909 |
</chapter> |
910 |
</guide> |