You are on page 1of 62

Contents

1 Introduction
2 Booting the Installation System
2.1 Booting old/other GNU/Linux
2.2 Booting with SystemRescueCd
3 HDD Preparation
3.1 Resize of HDD partitions
3.2 Partitioning scheme
3.3 MBR
3.3.1 unencrypted
3.3.2 encrypted
3.4 GPT/GUID partition table
3.4.1 unencrypted
3.4.2 encrypted
3.5 Cryptocontainer
3.5.1 MBR
3.5.2 GPT/GUID
3.5.3 logical volumes
3.6 filesystem creation
3.6.1 MBR unencrypted
3.6.2 GPT unencrypted
3.6.3 MBR/GPT encrypted
3.7 System Setup
3.7.1 Mounting filesystem
3.7.1.1 MBR unencrypted
3.7.1.2 GPT unencrypted
3.7.1.3 MBR/GPT encrypted
3.7.2 Downloading the System
3.7.3 Installing the base system
3.7.4 Chrooting
3.7.4.1 Updating the Portage tree
3.7.4.2 Setting the default options
3.7.4.2.1 /etc/make.conf
3.7.4.2.1.1 CFLAGS
3.7.4.2.1.2 CXXFLAGS
3.7.4.2.1.3 MAKEOPTS
3.7.4.2.1.4 USE
3.7.4.2.1.5 GENTOO_MIRRORS
3.7.4.2.1.6 LINGUAS
3.7.4.2.1.7 /etc/make.conf example
3.7.4.2.2 /etc/fstab
3.7.4.2.2.1 unencrypted MBR
3.7.4.2.2.2 unencrypted GPT
3.7.4.2.2.3 encrypted
3.7.4.2.3 /etc/conf.d/hostname
3.7.4.2.4 /etc/rc.conf
3.7.4.2.5 /etc/conf.d/keymaps
3.7.4.2.6 /etc/conf.d/hwclock
3.7.4.2.7 /etc/conf.d/consolefont
Installation (Tutorial)
From Funtoo
This is the approved revision of this page, as well as being the most recent.
Note:
If you want to do a standard Funtoo Linux installation, I recommend you use
the shorter, ocial Funtoo Linux Installation Instructions instead. -Daniel
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
1 de 62 01/02/14 12:55
3.7.4.2.8 /etc/env.d/99editor
3.7.4.2.9 /etc/localtime
3.7.4.2.10 /etc/make.profile
3.7.4.2.11 /etc/conf.d/modules
3.7.4.2.12 Localization
3.7.4.3 Kernel
3.7.4.3.1 choosing a kernel
3.7.4.3.2 genkernel
3.7.4.3.2.1 default options for unencrypted/encrypted setup
3.7.4.3.2.2 additional encrypted options
3.7.4.3.3 manual kernel
3.7.4.3.3.1 install and config
3.7.4.3.3.2 default options for unencrypted/encrypted setup
3.7.4.3.3.3 additional encrypted options
3.7.4.3.3.4 building the kernel the manual way
3.7.4.4 Bootloader
3.7.4.4.1 boot-update
3.7.4.4.1.1 encrypted disk with manual kernel
3.7.4.4.1.2 = Updating better-initramfs =
3.7.4.4.1.3 setting up grub2
3.7.4.4.2 Extlinux
3.8 finalize Setup
3.8.1 Necessary System Tools
3.8.1.1 System Logger
3.8.1.2 Optional: Cron Daemon
3.8.1.3 Optional: File Indexing
3.8.1.4 File System Tools ==
3.8.2 Networkconfig
3.8.2.1 The Easy (Dynamic) Way
3.8.2.2 The Modular Way
3.8.2.2.1 Configuration Variables
3.8.2.2.1.1 Interface Variables
3.8.2.2.2 General Variables
3.8.2.3 VLAN Variables
3.8.2.4 OpenResolv and resolv.conf
3.8.2.5 Network-Dependent Services
3.8.2.6 Multiple Network Configurations
3.8.2.6.1 Alternate Configs
3.8.2.6.2 Interface Renaming
3.8.2.6.3 Basic VLAN Configuration
3.8.2.6.4 Custom VLAN Names
3.8.2.7 More Complex Network Configuration
3.8.2.8 netif_create
3.8.2.9 netif_depend
3.8.2.10 netif_pre_up
3.8.2.11 netif_post_up
3.8.2.12 netif_pre_down
3.8.2.13 netif_post_down
3.8.2.14 netif_destroy
3.8.2.15 How It Works
3.8.2.16 Wireless Configuration
3.8.2.17 802.11 Passphrases
3.8.2.18 Wireless Firmware
3.8.3 Set your root password
3.8.4 Create a user account
3.8.5 Verify boot time services
3.8.6 First boot
3.9 What's next
Introduction
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
2 de 62 01/02/14 12:55
This HowTo aims to give the experienced GNU/Linux User a quick way to install Funtoo
Linux in a nice and fast way. Also we will give you all the necessary steps for installing
Funtoo GNU/Linux in this guide, but we won't go deeper into the details of them as need
There are two ways of installing Funtoo GNU/Linux on your PC:
using an already installed GNU/Linux System or 1.
using a LiveCD 2.
If you plan to use a LiveCD, we recommend you to use SystemRescueCd
(http://www.sysresccd.org/) .
All the commands in this guide are performed as "root", unless we indicate it otherwise.
This HowTo will cover the following four setups:
a standard Installation (MBR, HDD not encrypted), 1.
a standard secure Installation (MBR, HDD encrypted), 2.
a modern Installation (GPT/GUID partition table, HDD not encrypted) and 3.
a modern secure Installation (GPT/GUID partition table, HDD encrypted). 4.
These four approaches have the following Pros and Cons:
Setup Pro Contra
1
Easy method mostly used by
all distributions
Well documented everywhere
Time saving method
No special EFI-partition
needed
Dualbootable with Microsoft
Windows
Partition table limited 4 primary
ones only
Needs special 4th partition for
more than 4 partitions
HDD not encrypted, can easily be
cloned
2
Easy method mostly used by
all distributions
Well documented everywhere
No special EFI-partition
needed
HDD encrypted
Dualbootable with Microsoft
Windows
Logical volume groups for
GNU/Linux
Partition table limited 4 primary
ones only
Need special 4th partition for more
than 4 partitions
Needs lot of time for preparing the
HDD to be encrypted
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
3 de 62 01/02/14 12:55
3
Easy method but nearly not
used by other distributions
No special partiton needed for
more than 4 partitions
Time saving method
Need special EFI-partition for
boot-manager
Special kernel attributes are
needed
Not compatible with Microsoft
Windows
Not supported on all platforms
especially for the system volume
HDD not encrypted, can easily be
cloned from other linux systems
4
Easy method but nearly not
used by other distributions
No special partition needed for
more than 4 partitions
HDD encrypted
Logical volume groups
Need special EFI-partition for
boot-manager
Special kernel attributes are
needed
Not compatible with Microsoft
Windows
Not supported on all platforms
especially for the system volume
Needs lot of time for preparing the
HDD to be encrypted
With the help of the the above table you should be able to select your future Hard Disk
(HDD) partitioning scheme. In the further guide we will go through every single step for
all four schemes.
For booting your old/other GNU/Linux System we won't give you a special detailed
howto guide, as you should know how to do so, as concerning the booting with
SystemRescueCd (http://www.sysresccd.org) , we will give you a short step-by-step
guide on how to boot up the system.
This guide will only be split into subparts for the installation process if concerning the
four above mentioned steps, here the split points will be MBR vs. GPT/GUID-partitioning
and encrypted vs. unencrypted HDD. So be aware of these parts if you want to use
them.
Booting the Installation System
Booting old/other GNU/Linux
This step is really simple, as you know your old GNU/Linux System and you need simply
start your Computer, select in the boot-loader your GNU/Linux System, let it start up,
log in as always and start a root-terminal.
Booting with SystemRescueCd
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
4 de 62 01/02/14 12:55
First step is to download SystemRescueCd (http://www.sysresccd.org) , an overview of
the actual version can be found at http://www.sysresccd.org/Download, just follow there
the link to the Sourceforge Download, you will download then about 300 MB to your
HDD. If nished burn this ISO-image with your favorite burning tool like burn-cd,
bashburn, K3B, GNOMEbaker on a GNU/Linux Box or NERO Burning ROM,
CDBurnerXP Pro, and many more on a Microsoft Windows box.
Next insert this CD into your CD-ROM-Drive and boot up the PC with it where you want
to install Funtoo GNU/Linux. Make sure you boot from the CD when booting. The
Booting process with SystemRescueCd (http://www.sysresccd.org) will follow the next
steps:
Selecting your Kernel to boot SystemRescueCd (http://www.sysresccd.org/) with: 1.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
5 de 62 01/02/14 12:55
In that screen you will be greeted with all the power of SystemRescueCd
(http://www.sysresccd.org/) , depending on your CPU we use the boot option 1) for a
32-bit CPU or a 64-bit CPU that should run in 32-bit mode and 6) for a 64-bit CPU in
64-bit mode. If this boot option fails, use the boot option A) or B), will will lead to the
following screen:
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
6 de 62 01/02/14 12:55
That menu will give you more boot options. If you select 1. here, it would be the same
kernel option like in the previous screen 1) and 6). The next step is to select your
keyboard layout for installation.
Selecting your Installation Keyboard Layout 1.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
7 de 62 01/02/14 12:55
That step requires a bit of your atention, as it only gives you 20 seconds time to choose
your keyboard layout, if you are OK with the US keymap, just press Enter to accept the
default setting.
Being ready 1.
Seconds later SystemRescueCd (http://www.sysresccd.org/) welcomes you wit a short
message and is ready fo you to be used to perform your installation.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
8 de 62 01/02/14 12:55
HDD Preparation
As mentioned earlier in this guide we cover four dierent installation variations, the
could be displayed in an installation matrix as below:
MBR GPT
unencrypted See MBR See GPT/GUID partition table
encrypted See MBR See GPT/GUID partition table
If you are going to plan to install Funtoo GNU/Linux on a machine where another O/S is
already installed, you have to make some free space available on your HDD in order to
do so. A resize of most existing lesystems can be done with SystemRescueCd
(http://www.sysresccd.org/) too. You just need to enter the graphical environment and
use gparted. We will give you a short example on how to do so with a sample HDD that
might hold windows, so you get a feeling what to do, but be aware that a resize can be a
dangerous part, so please keep a backup of your data, as Funtoo Technologies wouldn't
take any responsibility for a loss of data that could happen by the process of shrinking a
partition.
Starting the graphical environment in SystemRescueCd (http://www.sysresccd.org/) is
really simple, just execute the following command:
root@sysresccd /root % wizard
and it will start a dialog for the graphical environment setup, for most users the default
options should be OK. Both the dialog and the graphical environment (Xfce) are shown
in the next two images.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
9 de 62 01/02/14 12:55
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
10 de 62 01/02/14 12:55
Resize of HDD partitions
The above screen shows us that there is the tool called GParted right on the frontpanel.
That tool will be used to resize our HDD partitions. The following screen shows us an
example of how the tool looks if you start it.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
11 de 62 01/02/14 12:55
By clicking on the partion you want to resize you make it active right-click on it and use
the point resize and you will see the Resize/Move dialog, here you can edit the resize
options for that partiton.
When you nished setting the resize options, you will see that the grey-green hook in
the menu got green, that means you have jobs added to the working list. If you have all
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
12 de 62 01/02/14 12:55
actions done on the partition, click on the green hook and your resize action will run by
giving you the following feedback window:
when that has nished you will see the resized result and it should look like that:
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
13 de 62 01/02/14 12:55
we are nished with resizing the dis partitions, exit the Tool and close Xfce by clicking
the running exit man in the down right. We are back on the command line and are ready
to partitions our disk. to our needs, for a unied way we will show it with an empty
partition table, so if you have resized some partitions, they will be listed in the MBR
menu, as if you want to use an GPT/GUID partition table we will start from a clean table
anyway.
Partitioning scheme
Warning:
If you are partitioning the hard drive of a SPARC machine, please see
Funtoo Linux Installation on SPARC. Also, note that OpenBoot has no
support for GPT volumes and you won't be able to boot on the
system volume if that later has been partitioned with GPT.
For partitioning we suggest the following schemes:
MBR unencrypted
Partition Size
fdisk
option
Filesystem
(FS)
/boot 200 MB 83 ext2
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
14 de 62 01/02/14 12:55
swap
2x RAM if 1024 MB or less, otherwise 2
GB
82 sw (default)
/ 20-50 GB 83 ext4
/usr/portage ~10 GB 83 ext4
/home As much as possible. 83 xfs
MBR encrypted
Partition Size fdisk option FS
/boot 200 MB 83 ext2
cryptoroot Rest of the Disc 83 none
GPT unencrypted
Partition Size gdisk option FS
/boot 200 MB 0700 ext2
EFI-Boot 512 kB EF02 none
swap 2x RAM if 1024 MB or less, otherwise 2 GB 8200 swap (default)
/ 20 - 50 GB 0700 ext4
/usr/portage ~10 GB 0700 ext4
/home Rest of the Disc 0700 xfs
GPT encrypted
Partition Size gdisk option FS
/boot 200 MB 0700 ext2
EFI-Boot 512 kB EF02 none
cryptoroot Rest of the Disc 0700 none
MBR
Now we will partition the HDD using the above scheme with a disk partitioning tool
named "fdisk". So just invoke it with the following command:
# fdisk /dev/sda
it will greet you like this
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
15 de 62 01/02/14 12:55
by pressing `m` you will get a help context menu that will give you the following options:
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partion
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel <--- SPARC specific, see Funtoo installation notes for SPARC
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
The partitioning scheme is created with the following commands inside of fdisk:
unencrypted
Command (m for help): n
it will ask you now if you want to add a primary or extended partition, we choose
primary by pressing
Command action
e extended
p primary partition (1-4)
p
and use for the next 2 steps the default options and add as the Last Sector for the rst
partition the following:
Partition number (1-4, default 1): (default)
Using default value 1
First sector: (Use default)
Using default value
Last sector, ...: +200M
your input should look like that right now:
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
16 de 62 01/02/14 12:55
next we need to make the partition bootable and add then the rest of the partitions:
Command (m for help): a
Partition number (1-4): 1
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 2): (default)
Using default value 2
First sector: (Use default)
Using default value
Last sector, ...: +2G
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 3): (default)
Using default value 3
First sector: (Use default)
Using default value
Last sector, ...: +20G
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 83
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First sector: (Use default)
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
17 de 62 01/02/14 12:55
Using default value
Last sector, ...: (Use default)
Using default value
Command (m for help): n
First sector: (Use default)
Using default value
Last sector, ...: +10G
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 83
Command (m for help): n
First sector: (Use default)
Using default value
Last sector, ...: (Use default)
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): 83
Command (m for help): p
this will result in the following output
now just write the partition table to your disk by using `w`, this will result in the
following output:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
18 de 62 01/02/14 12:55
If that was your scheme, you are now so far to get to the partition formatting section.
encrypted
Command (m for help): n
it will ask you now if you want to add a primary or extended partition, we choose
primary by pressing
Command action
e extended
p primary partition (1-4)
p
and use for the next 2 steps the default options and add as the Last Sector for the rst
partition the following:
Partition number (1-4, default 2): (default)
Using default value 1
First sector: (Use default)
Using default value
Last sector, ...: +200M
Next we need to make the partition bootable and add then the rest of the partition:
Command (m for help): a
Partition number (1-4): 1
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 2): (default)
Using default value 2
First sector: (Use default)
Using default value
Last sector, ...: (use default)
Command (m for help): p
this will result in the following output
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
19 de 62 01/02/14 12:55
now just write the partition table to your disk by using w, this will result in the following
output:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
next we need to prepare our cryto-container that will keep all the encrypted stu in it.
For that, go to the Cryptocontainer section.
GPT/GUID partition table
This setup is for most users more intuitive, since we don't need to care about extended
partitions. We only need to setup an extra partition for our bootloader. So let us do it for
unencrypted and encrypted partitions.
For setting up the GPT partition table we use the tool "gdisk", that is the GPT equivalent
of fdisk.
Just start it with the following command:
gdisk /dev/sda
it will greet you with the following screen
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
20 de 62 01/02/14 12:55
unencrypted
Next we will create the partitions for our unencrypted setup:
Command (? for help): n
Partition number (1-128, default 1): (Use default)
First sector (34-..., default = 34) or ...: (Use default)
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-..., default = ...) or ...: +200M
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): (ENTER)
Changed type of partition to 'Linux/Windows data'
Command (? for help): n
Partion number (2-128, default 2): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): +512K
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): ef02
Changed type of partition to 'BIOS boot partition'
Command (? for help): n
Partition number (3-128, default 3): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): +2G
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): 8200
Changed type of partition to 'Linux swap'
Command (? for help): n
Partition number 4-128, default 4): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): +20G
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): (ENTER)
Changed type of partition to 'Linux/Windows data'
Command (? for help): n
Partition number 5-128, default 5): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): +10G
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): (ENTER)
Changed type of partition to 'Linux/Windows data'
Command (? for help): n
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
21 de 62 01/02/14 12:55
Partition number 6-128, default 6): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): (Use default)
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): (ENTER)
Changed type of partition to 'Linux/Windows data'
Command (? for help): p
will now show you a disk partitioning like that one:
now write the table to your disk with w;
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): Y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
Now go the section about creating the lesystem on MBR.
encrypted
Next we will create the partitions for our encrypted setup:
Command (? for help): n
Partition number (1-128, default 1): (Use default)
First sector (34-..., default = 34) or ...: (Use default)
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-..., default = ...) or ...: +200M
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
22 de 62 01/02/14 12:55
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): (ENTER)
Changed type of partition to 'Linux/Windows data'
Command (? for help): n
Partion number (2-128, default 2): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): +512K
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): ef02
Changed type of partition to 'BIOS boot partition'
Command (? for help): n
Partition number (3-128, default 3): (Use default)
First sector (...) or ...: (Use default)
Last sector (...) or (...): (Use default
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): (ENTER)
Changed type of partition to 'Linux/Windows data'
Command (? for help): p
will now show you a disk partitioning like that one:
now write the table to your disk with w;
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): Y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
Now go to the Cryptocontainer setup.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
23 de 62 01/02/14 12:55
Cryptocontainer
Setting up the cryptocontainer for our encrypted system is in both cases nearly
identically, but for the easier showing eect we will give both examples in a seperate
subsection.
MBR
First we will prepare the HDD for being encrypted, if you use SystemRescueCd
(http://www.sysresccd.org/) in version 2.0.1 or higher just execute the following
commands:
Note:
If you want to see progress of dd than you have to open another terminal and
execute: kill -s USR1 `pidof dd`
# dd if=/dev/zero of=/dev/sda2 bs=100M
# dd if=/dev/urandom of=/dev/sda2 bs=100M
This part is optional but for security reason we advise you to do so if you like to have a
secure encrypted disk. This part takes a lot of time, let your Computer run and get out
to sleep and work, as it might take a day or two depending on your HDD size. :)
You should also be aware that you will get a hint about reaching the end of your HDD.
That's intended and desired in this case so that the command can work without knowing
your disk-size.
If you ran the above commands you should see an output similar to the one shown in the
screenshot:
Next we need to encrypt our HDD, that will be done with the following commands:
# cryptsetup -c aes-xts-plain luksFormat /dev/sda2
WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.
Are you sure (Type uppercase yes): YES
Enter LUKS passphrase: (Your paranoid passphrase)
Verify passphrase: (Your paranoid passphrase again)
Then we need to mount our HDD:
# cryptsetup luksOpen /dev/sda2 dmcrypt_root
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
24 de 62 01/02/14 12:55
Enter passphrase for /dev/sda2: (your paranoid passphrase)
Next we will creat the logical volumes for our setup, so have a look at the subsection
about logical volumes.
GPT/GUID
This section is nearly the same as above, so if you read the text in one you will reread
the MBR section again only with the GPT enabled stu.
Note:
If you want to see progress of dd than you have to open another terminal and
execute: kill -s USR1 `pidof dd`
First we will prepare the HDD for being encrypted, if you use SystemRescueCd
(http://www.sysresccd.org/) in version 2.0.1 or higher just execute the following
commands:
# dd if=/dev/zero of=/dev/sda3 bs=100M
# dd if=/dev/urandom of=/dev/sda3 bs=100M
This part is optional but for security reason we advise you to do so if you like to have a
secure encrypted disk. This part takes a lot of time, let your Computer run and get out
to sleep and work, as it might take a day or two depending on your HDD size. :)
You should also be aware that you will get a hint about reaching the end of your HDD.
That's intended and desired in this case so that the command can work without knowing
your disk-size.
If you ran the above commands you should see an output similiar to the one shown in
the screenshot:
Next we need to encrypt our HDD, that will be done with the following commands:
# cryptsetup -c aes-xts-plain luksFormat /dev/sda3
WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: (your paranoid passphrase)
Verify passphrase: (your paranoid passphrase again)
Then we need to mount our HDD:
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
25 de 62 01/02/14 12:55
# cryptsetup luksOpen /dev/sda3 dmcrypt_root
Enter passphrase for /dev/sda3: (your paranoid passphrase)
next we will creat the logical volumes for our setup, so have a look at the following
subsection.
logical volumes
Feel free to adjust your sizes here, we will follow our given advices above for that. First
we need to creat the the physical volume, then the volume group and at last the logical
volumes. doing so is really easy, just do the following for if you want to follow our
advices above:
# pvcreate /dev/mapper/dmcrypt_root
Physical volume "/dev/mapper/dmcrypt_root" successfully created
# vgcreate vg /dev/mapper/dmcrypt_root
Volume group "vg" successfully created
# lvcreate -L20G -nroot vg
Logical volume "root" created
# lvcreate -L2G -nswap vg
Logical volume "swap" created
# lvcreate -L10G -n portage vg
Logical volume "portage" created
# lvcreate -l 100%FREE -nhome vg
Logical volume "home" created
lesystem creation
Now that we have created our partitioning scheme, we can go on to create the
lesystems needed for our partitions. Here dierences only occur between the
unencrypted setups. Encrypted volumes are handled the same way, no matter whether
MBR and GPT, so there is no need to split them up in two seperate parts:
MBR unencrypted
For the unencrypted partions in the MBR setup just use the following regarding to our
above given adives, you may feel free to change some parts of it if you like:
# mkfs.ext2 /dev/sda1
# mkswap /dev/sda2
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda5
# mkfs.xfs /dev/sda6
That was all for having your lesystem created. now go to the System Setup.
GPT unencrypted
Now let us create the lesystem for our GUID partition table. It is as easy as above, just
see the dierence in the jump of partition name:
# mkfs.ext2 /dev/sda1
# mkswap /dev/sda3
# mkfs.ext4 /dev/sda4
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
26 de 62 01/02/14 12:55
# mkfs.ext4 /dev/sda5
# mkfs.xfs /dev/sda6
Next step is to mount our partitons, for that go to the System Setup.
MBR/GPT encrypted
If you choose to encrypt your HDD, you will in both cases follow the next steps to setup
your lesystems:
# mkfs.ext2 /dev/sda1
# mkswap /dev/mapper/vg-swap
# mkfs.ext4 /dev/mapper/vg-root
# mkfs.ext4 /dev/mapper/vg-portage
# mkfs.xfs /dev/mapper/vg-home
So far we prepared the disk and will now mount our partitions.
System Setup
Mounting lesystem
As we need to have a mountpoint for our system, we now create it with
# install -d /mnt/funtoo
Note:
The in the following used install -d command just creats all the needed folders
for later mountpoints for us. If you like you can control it by using ls
/mnt/funtoo after the install -d part. Now you are ready to install your base
system, read on in Downloading the System.
MBR unencrypted
Now mount your system partitions like that if you used our above advice:
# swapon /dev/sda2
# mount /dev/sda3 /mnt/funtoo
# install -d /mnt/funtoo/{boot,usr/portage,home}
# mount /dev/sda1 /mnt/funtoo/boot
# mount /dev/sda5 /mnt/funtoo/usr/portage
# mount /dev/sda6 /mnt/funtoo/home
Note:
The install -d command just creats all the needed folders for later mountpoints
for us. If you like you can control it by using ls /mnt/funtoo after the install -d
part. Now you are ready to install your base system, read on in Downloading
the System.
GPT unencrypted
That part is really similiar to the unencrypted MBR, but see for yourself:
# swapon /dev/sda3
# mount /dev/sda4 /mnt/funtoo
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
27 de 62 01/02/14 12:55
# install -d /mnt/funtoo/{boot,usr/portage,home}
# mount /dev/sda1 /mnt/funtoo/boot
# mount /dev/sda5 /mnt/funtoo/usr/portage
# mount /dev/sda6 /mnt/funtoo/home
MBR/GPT encrypted
Now mount the system so we can setup the system in the next step.
# swapon /dev/mapper/vg-swap
# mount /dev/mapper/vg-root /mnt/funtoo
# install -d /mnt/funtoo/{boot,usr/portage,home}
# mount /dev/sda1 /mnt/funtoo/boot
# mount /dev/mapper/vg-portage /mnt/funtoo/usr/portage
# mount /dev/mapper/vg-home /mnt/funtoo/home
Downloading the System
The next step is to download the base system and portage tree and set up both. Here a
list of packages we have:
Arch (32/64
bit)
Processors Stable Release Current Release
64-bit Install
Images for
PC-compatible
processors
64
Generic Intel and
Amd 64-bit
Processors
generic_64
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/x86-64bit
/generic_64/)
generic_64
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-64bit
/generic_64/)
64
Intel Core2 Series
and most Atom
Processors
core2_64
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/x86-64bit
/core2_64/)
core2_64
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-64bit
/core2_64/)
64
Intel Core i3, i5,
i7
N/A
corei7
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-64bit
/corei7/)
64
AMD Athlon 64
and Opteron
Processors (K8
Family or higher)
amd64-k8
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/x86-64bit
/amd64-k8/)
amd64-k8
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-64bit
/amd64-k8/)
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
28 de 62 01/02/14 12:55
32-bit Install
Images for
PC-compatible
processors
32
Intel Core2
Series, i3, i5, i7
and Atom
Processors
N/A
core2_32
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-32bit
/core2_32/)
32 N/A
amd64-k8_32
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-32bit
/amd64-k8_32/)
32
Generic x86
processors
(intel80486+)
i486
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/x86-32bit/i486/)
i486
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-32bit/i486/)
32
Generic P6-class
(Pentium
Pro/Pentium II
compatible)
i686
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/x86-32bit/i686/)
i686
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-32bit/i686/)
32
Athlon XP and
Athlon 64-based
CPU (32-bit
mode)
N/A
athlon-xp
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-32bit
/athlon-xp/)
32
Intel Pentium 4
Processors
N/A
pentium4
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/x86-32bit
/pentium4/)
OpenVZ
Templates for
PC-Compatible
Systems
32
32-bit OpenVZ
Images
OpenVZ x86-32bit
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/openvz
/x86-32bit)
OpenVZ x86-64bit
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/openvz
/x86-32bit)
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
29 de 62 01/02/14 12:55
64
64-bit OpenVZ
Images
OpenVZ x86-64bit
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
stable/openvz
/x86-64bit)
OpenVZ x86-64bit
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/openvz
/x86-64bit)
SPARC
processor
Images
32/64
Generic SPARC v9
processors (use
this one if the
ultrasparc I/II
stages are
inadequate for
you)
N/A
sparc_v9
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/sparc-
64bit/sparc_v9/)
32/64
UltraSPARC I &
UltraSPARC II
series (choose
this one in doubt)
N/A
ultrasparc
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/sparc-
64bit/ultrasparc/)
32/64
UltraSPARC III
and UltraSPARC
IV series
N/A
ultrasparc3
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/sparc-
64bit/ultrasparc3/)
32/64
Niagara
(UltraSPARC T1)
N/A
niagara
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/sparc-
64bit/niagara/)
32/64
Niagara 2
(UltraSPARC T2/
UltraSPARC T2+)
N/A
niagara2
(http://ftp.osuosl.org
/pub/funtoo/funtoo-
current/sparc-
64bit/niagara2/)
If you found your desired image above, just change to /mnt/funtoo and download the
stage3 and portage-tree images.
# cd /mnt/funtoo
# elinks http://ftp.osuosl.org/pub/funtoo/funtoo-current/x86-64bit/generic_64/
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
30 de 62 01/02/14 12:55
this shows you the site presented and by going down with the arrow keys to stage3-
latest.tar.xz until it is highlighted you can download it by pressing D. Then move up in
the directory structure (..-link) and go to the snapshot directory or quit elinks after
downloading nished and start it again with like that
# elinks http://ftp.osuosl.org/pub/funtoo/funtoo-current/snapshots/
here you will now download the portage tree (portage-latest.tar.xz). The Download
dialog will look in both cases like that:(Note outdated image, 'stage3-current.tar.xz' is
now 'stage3-latest.tar.xz')
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
31 de 62 01/02/14 12:55
When both downloads have nished quit elinks by typing q. The downloaded les should
be located in /mnt/funtoo. Now that this is done, let us move on to installing your base
system.
Installing the base system
Now that we have the base system and the portage tree downloaded, we will install it.
First install the stage3. it is really easy.
# tar xfvpJ stage3-latest.tar.xz
That will output many lines, and return a command-prompt line when nished.
Next we need to extract the funtoo-portage-tree. For that we need to change to the
future /usr dir, and extract there the portage.
# cd /mnt/funtoo/usr
# tar xfvpJ ../portage-latest.tar.xz
This time there will be no output, but when the unpacking has nished, the result will be
an empty command prompt. We still need to checkout the tree, but this can only be done
from inside the chroot environment.
At this state of the setup we have setup most of our system. If you choose to use the fast
genkernel method later on, the hardest part is already done. If you choose to manually
congure the kernel, you still have quite a bit work ahead of you.
Chrooting
Before we can nally chroot into your system, there are a couple of things that need to
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
32 de 62 01/02/14 12:55
be done before, like mounting the proc and dev lesystem.
# mount -t proc none /mnt/funtoo/proc
# mount --bind /dev /mnt/funtoo/dev
to have a working network inside of your chrooted system later you need to copy the
resolv.conf le too:
# cp -L /etc/resolv.conf /mnt/funtoo/etc
Now we can chroot into your Funtoo system
# env -i HOME=/root TERM=$TERM SHELL=/bin/bash
# chroot /mnt/funtoo /bin/bash
Now that we are inside your new system, you'll need to update your environment, use
the following commands to do so:
# source /etc/profile
# env-update
We also recommend you to change the default command prompt while you are inside the
chroot, as it will avoid confusions if you have to change terminals for anything. To do so
use the following command:
# export PS1="(chroot) $PS1"
Congratulations! You are now inside your new Funtoo Linux operating system.
Updating the Portage tree
As we have insalled the Portage snapshot during the installation, we now need to
"activate" the Portage tree by selecting the funtoo.org branch.
By default, the master branch is enabled, which saves space when storing the tree
inside a tarball, but that branch only contains a README with the same instructions as
the ones given here.
To activate the funtoo.org branch, do the following:
# cd /usr/portage/
# git checkout funtoo.org
Checking out files: 100% (85007/85007), done.
Switched to branch "funtoo.org"
You'll now be able to see thousands of glorious ebuilds inside your Portage tree :)
After activating the funtoo.org branch you need to sync your tree to the newest glorious
funtoo ebuilds. Run:
# emerge --sync
This will now update the tree to the current state, which normally changes twice a day.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
33 de 62 01/02/14 12:55
Setting the default options
Like any other Linux Distribution, Funtoo Linux has it's share of conguration les, that
need to be edited by you. The following table gives you an overview of these les and for
what they are there:
File Description
/etc/make.conf Parameters used by gcc compiler
/etc/fstab Device to mountpoint denitions
/etc/conf.d/hostname Setting your hostname
/etc/rc.conf OpenRC conguration le.
/etc/conf.d/keymaps Keyboard conguration le.
/etc/conf.d/hwclock System clock to use.
/etc/conf.d
/consolefont
Fonts to be used in console display. This doesn't aect GUI
terminal emulators.
/etc/env.d/99editor Default editor.
/etc/localtime Your timezone.
/etc/make.prole Type of installation (desktop, server...).
/etc/conf.d/modules Kernel modules to load
/etc/locale.gen Localization.
/etc/env.d/02locales Localization for old programs.
If you are installing an english Funtoo, you are lucky, as you won't need to edit many of
the les above, if not, don't be afraid, we will walk through the conguration of these
les in the following together.
First we will get a mighty editor with great syntax highlighting as it is not provided in
our main system we will merge it, if you don't like to please replace in the following edit
sections the part vim <path/filename> with your editor <path/filename> where editor is
replaced by vi or nano -w.
First let us get vim so we have the perfect highlighting from it for our personal help.
# emerge -avt vim
that will result in an output like that
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
34 de 62 01/02/14 12:55
just accept the output with Enter and it will install vim for you, while you wait for vim to
get emerged, here are the some basic usage instructions for ViM. ViM has a multimode
interface, if you start it, it is in Command mode, the second mode is the Edit mode which you
will enter from the Command mode by pressing i, to go back into the Command mode press ESC.
After you have edited a cong le, you want to save it, for that you have to be in Command
mode and then simple press :w<ENTER>, it will save the le, a closing is done with :q<ENTER>, if
you changed content in the le that shouldn't be saved use :q! and for saving and
closing the le :wq, thats all, the visual mode is in that context not very useful, so we
leave it out. Now that you know the basic usage of ViM and it has emerged we will now
start conguring the cong les.
/etc/make.conf
First open that le
# vim /etc/make.conf
This le contains something similar to the following. You may or may not have a
CFLAGS variable set already depending on what stage 3 tarball you used:
ACCEPT_KEYWORDS="~amd64"
SYNC="git://github.com/funtoo/portage-mini-2010.git"
CHOST="x86_64-pc-linux-gnu"
Note:
In ACCEPT_KEYWORDS, ~amd64 is used for current 64-bit builds; There is no
tilde for the stable build. The default value is (~)x86 for 32 bit. The
ACCEPT_KEYWORDS line should not be altered. Keep it as supplied in the
default le. It is also important to not change the CHOST line.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
35 de 62 01/02/14 12:55
CFLAGS
If you're only building packages for your host processor and not any others then the
recommended CFLAGS setting is:
CFLAGS="-march=native -O2 -pipe"
Since gcc-4.2 (http://gcc.gnu.org/gcc-4.2/changes.html) , -mtune=native and
-march=native will produce code optimized for the host processor. -mtune=native has
no eect if GCC does not recognize the processor. More information can be found in the
GCC online docs (http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-
Options.html#i386-and-x86_002d64-Options) .
Note:
The value native selects the best architecture option for the host processor, so
this should not be used if you intend to compile packages for a dierent CPU.
CXXFLAGS
Normally, this ag is set to the same values as CFLAGS:
CXXFLAGS="${CFLAGS}"
MAKEOPTS
With MAKEOPTS you dene how many parallel compilations should occur when you compile
a package. A good choice is the number of CPUs (or CPU threads) in your system plus
one (Note: this guideline isn't always perfect). If for example you have a dual core
processor without hyperthreading, then you would set MAKEOPTS to 3:
MAKEOPTS="-j3"
If you're unsure of how many processors/threads you have, then use /proc/cpuinfo to
help you.
# cat /proc/cpuinfo | grep "model name" | wc -l
16
Set MAKEOPTS to this number plus one:
MAKEOPTS="-j17"
USE
USE ags dene what functionality is enabled when ebuilds are built. It is not
recommended to add a lot of them during installation. You should wait until you have a
working, bootable system to do so. The following USE ags are a recommended starting
point for new systems:
USE="-gnome -gtk -kde -kdeenablefinal -ldap nls -qt3 -qt3support -qt4 userlocales"
The minus(-) sign tells gcc not to use the ag when compiling. USE ags gnome, gtk, kde, qt3,
qt3support, and qt4 will be set later if you install a desktop envrionment.
A Funtoo guide to USE ags will be available in the future. For now, you can nd out more
information about USE ags in the Gentoo Handbook (http://www.gentoo.org/doc/en
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
36 de 62 01/02/14 12:55
/handbook/handbook-amd64.xml?part=2&chap=2) .
GENTOO_MIRRORS
This is the mirror from which emerge gets a lot of the source les. It is usually not
necessary to set this ag. In the following ewxample, the Waterloo University is used (a
fast and reliable Canadian mirror). Please set this variable to a mirror local to your
country.
GENTOO_MIRRORS="ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://distfiles.gentoo.org"
LINGUAS
LINGUAS tells Portage which local language to compile the system and applications in
(those who use LINGUAS variable like OpenOce). It is not usually necessary to set this
if you use English. Otherwise, if you want another language, replace fr (French) for the
code of your mother language, e.g. de for German.
LINGUAS="fr"
or for multiple language support you might also use:
LINGUAS="en de fr"
/etc/make.conf example
An example of a /etc/make.conf le could look like that:
# These settings were set by the metro build script that automatically built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
ACCEPT_KEYWORDS="x86"
FEATURES="mini-manifest"
SYNC="git://github.com/funtoo/portage-mini-2010.git"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
USE="-gnome -gtk -kde -kdeenablefinal -ldap nls -qt3 -qt3support -qt4 userlocales"
GENTOO_MIRRORS="ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://distfiles.gentoo.org"
LINGUAS="fr"
INPUT_DEVICES="evdev synaptics"
VIDEO_CARDS="vesa radeon"
PORT_LOGDIR="/var/log/portage"
PORTAGE_ELOG_CLASSES="log warn error info"
PORTAGE_ELOG_SYSTEM="echo:log,warn save:log,warn,error,info syslog:error"
/etc/fstab
This le is used for the conguration of the mountpoints for the system. As we have two
dierent setups described above, here are the two examples for these.
# vim /etc/fstab
unencrypted MBR
# The root filesystem should have a pass number of either 0 or 1.
# All other filesystems should have a pass number of 0 or greater than 1.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
37 de 62 01/02/14 12:55
#
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
#
# See the manpage fstab(5) for more information.
#
# <fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext4 noatime 0 1
/dev/sda5 /usr/portage ext4 noatime 0 1
/dev/sda6 /home xfs defaults,noatime 0 1
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
unencrypted GPT
# The root filesystem should have a pass number of either 0 or 1.
# All other filesystems should have a pass number of 0 or greater than 1.
#
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
#
# See the manpage fstab(5) for more information.
#
# <fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda3 none swap sw 0 0
/dev/sda4 / ext4 noatime 0 1
/dev/sda5 /usr/portage ext4 noatime 0 1
/dev/sda6 /home xfs defaults,noatime 0 1
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
encrypted
That time the setup is the same for both MBR and GPT partition layout:
# The root filesystem should have a pass number of either 0 or 1.
# All other filesystems should have a pass number of 0 or greater than 1.
#
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
#
# See the manpage fstab(5) for more information.
#
# <fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/mapper/vg-swap none swap sw 0 0
/dev/mapper/vg-root / ext4 noatime 0 1
/dev/mapper/vg-portage /usr/portage ext4 noatime 0 1
/dev/mapper/vg-home /home xfs defaults,noatime 0 1
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
/etc/conf.d/hostname
Here you will set up your hostname for the PC. So choose a name for your PC and set it
up in that le:
# vim /etc/conf.d/hostname
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
38 de 62 01/02/14 12:55
# Set to the hostname of this machine
hostname="<your-hostname>"
/etc/rc.conf
You may use this le as-is. However, it is a good idea to set rc_logger to yes. That will
create a log le which is handy when problems are encountered with OpenRC scripts.
Very helpful for xing things.
Another good option here is the rc_interactive ag, if you are playing around with a new
graphical display manager or aren't that used with the upgrade procedure of the
graphical environement. if rc_interactive is set to yes, you will be able to interactively
manipulate the boot process, what means you can decide what you want to start or not,
like the graphical environment for example.
Other options have really good explainations inside of the /etc/rc.conf le.
/etc/conf.d/keymaps
You do not have to alter that le if you have a US English keyboard. Otherwise, edit le
and set keymap to your keyboard model. For example, cf for French Canadian keyboard, fr
for French Azerty and de for German Qwertz.
/etc/conf.d/hwclock
If you dual boot with Windows, you'll need to edit this le and change clock to local.
Otherwise you should not normally need to edit this le.
You should dene your timezone in /etc/timezone:
# vim /etc/timezone
Europe/Berlin
anoteher value might be
America/Denver
so you might get an idea how it should look like, if not have a look at /usr/share/zoneinfo it
will give you the entry after the path like /usr/share/zoneinfo/<Content of /etc/timezone> like
for Germany you will nd a path in there that looks like /usr/share/zoneinfo/Europe/Berlin.
/etc/conf.d/consolefont
There is nothing to edit in that le.
/etc/env.d/99editor
Create and edit that le to instruct your system about the default editor it should use.
vim /etc/env.d/99editor
Type in :
EDITOR="/usr/bin/vim"
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
39 de 62 01/02/14 12:55
Replace the above line with the editor of your choice, if you had been happy so far with
ViM just paste it in as is, if not use nano, vi or what else you like.
/etc/localtime
If you came here from Gentoo, it was advised to copy the le from the zoneinfo dir to
here. We advise you to create a symbolic link from the zoneinfo dir to /etc/localtime. As in
the hwclock section above, we need your timezone parted in LAND/TOWN like for
Germany Europe/Berlin. Now, create the symbolic link. More info about it can be found
in the /usr/share/zoneinfo dir.
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
That command sets the timezone to Central European Time.
/etc/make.prole
Here you select which type of environment you want the gcc-compiler to take into
account. That will dress up an environment with a list of pre-dened USE ags.
To list all available proles run:
eselect profile list
The output will look like that:
[1] default/linux/x86/2008.0 *
[2] default/linux/x86/2008.0/desktop
[3] default/linux/x86/2008.0/developer
[4] default/linux/x86/2008.0/server
Prole defaults to 2008.0 (See the star). To create a prole for DE (Desktop
Environment) run:
eselect profile set 2
Warning:
Funtoo only supports the 2008.0 prole and the 2008.0 prole children.
Use one of these proles until 'funtoo-1.0' is ready.
/etc/conf.d/modules
With Funtoo, OpenRC loads modules from /etc/conf.d/modules using the line:
modules_2_6="list of modules"
With Funtoo, dene module arguments as follows:
module_module-name_args_2_6="module arg=value"
Localization
/etc/locale.gen and /etc/env.d/02locales are used to support your local language. The last
one is required just in case there still are old programs installed.
You do not need to amend anything if your locales are US English. The following are
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
40 de 62 01/02/14 12:55
examples for German. You can look in /usr/share/i18n/SUPPORTED for the default list of
supported combinations or look in /usr/share/i18n/locales to determine values to use.
# vim /etc/locale.gen
Put this value into the le for German support:
de_DE.UTF-8 UTF-8
for a multiple language support it might look like that:
de_DE.UTF-8 UTF-8
fr_CA.UTF-8 UTF-8
en_US.UTF-8 UTF-8
Edit /etc/env.d/02locales according to that layout:
# vim /etc/env.d/02locales
and put in these lines:
LANG="de_DE.UTF-8"
LANGUAGE="de_DE.UTF-8"
Finally after we editet all the localization les generate the localized environment:
locale-gen && source /etc/profile
Kernel
Now that you have the base system running, you need to install a kernel. If you decided
to use a standard setup with an unencrypted GPT disc layout or the old unencrypted
MBR disc layout, a fast solution would be to use the genkernel solution. If you used the
standard setup with an encrypted GPT disc layout or the old encrypted MBR disc layout,
you have to use the manual kernel steps.
choosing a kernel
First, you need to choose a kernel version you would like to install on your system. The
following table will give you an overview of which kernels are available and who should
use them.
Kernel
ebuild
Description masked
Prefered
Users
eselect
kernel set
sys-kernel/*
generates
symlink
cell-sources
Full sources including the
cell/ps3 patchset for the 2.6
kernel tree
[
Masked
]
unsure
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
41 de 62 01/02/14 12:55
ck-sources
Con Kolivas' high
performance patchset +
Gentoo patchset sources
unsure
debian-
sources
Debian Sources - with
optional OpenVZ support
NO
gentoo-
sources
Full sources including the
Gentoo patchset for the 2.6
kernel tree
default for most
users
YES
git-sources
The very latest -git version of
the Linux kernel
for the versed
user
YES
hardened-
sources
Hardened kernel sources
(kernel series 2.6)
not supported
atm
YES
mips-sources
Linux-Mips GIT sources for
MIPS-based machines, dated
20110207
[
Masked
]
unsure
mm-sources
Andrew Morton's kernel,
mostly xes for 2.6 vanilla,
some vm stu too
unsure
openvz-
sources
Full sources including
OpenVZ patchset for the
2.6.18 kernel tree
For users that
want to build a
OpenVZ server
unsure
pf-sources
Linux kernel fork with new
features, including the -ck
patchset (BFS), BFQ,
TuxOnIce and LinuxIMQ
unsure
rhel5-openvz-
binaries
RHEL5 kernel with OpenVZ
patchset - initrd and bzImage
YES
rhel5-openvz-
sources
Full Linux kernel sources -
RHEL5 kernel with OpenVZ
patchset
unsure
rhel6-openvz-
binaries
RHEL6 kernel with OpenVZ
patchset - initrd and bzImage
unsure
rhel6-openvz-
sources
Full Linux kernel sources -
RHEL5 kernel with OpenVZ
patchset
unsure
sparc-sources
Full sources for the Gentoo
Sparc Linux kernel
[
Masked
]
YES
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
42 de 62 01/02/14 12:55
sysrescue-
std-binaries
System Rescue CD Full
sources for the Linux kernel,
including gentoo and
sysresccd patches - initrd and
bzImage
[
Masked
]
unsure
sysrescue-
std-sources
System Rescue CD Full
sources for the Linux kernel,
including gentoo and
sysresccd patches.
unsure
tuxonice-
sources
TuxOnIce + Gentoo patchset
sources
unsure
usermode-
sources
Full sources for the User
Mode Linux kernel
[
Masked
]
unsure
vanilla-
sources
Full sources for the Linux
kernel
YES
vserver-
sources
Full sources including Gentoo
and Linux-VServer patchsets
for the 2.6 kernel tree.
unsure
xbox-sources
Full sources for the Xbox
Linux kernel
[
Masked
]
unsure
xen-sources
Full sources for a dom0/domU
Linux kernel to run under Xen
unsure
zen-sources The Zen Kernel Sources v2.6 unsure
For the next section, we will assume that you selected gentoo-sources for your kernel
setup. If not, please replace gentoo-sources in the next section with your selection. If
you are unsure, please follow our suggestion to use the gentoo-sources.
genkernel
That part would be fast done in general, we will now guide you through that process.
First, we need to install the needed tools for it. So, let's do it!
# emerge -avt genkernel gentoo-sources
Calculating dependencies... done!
These are the packages that would be merged, in reverse order:
[ebuild N ] sys-kernel/gentoo-sources-2.6.38-r4 USE="-build -deblob -symlink" 134 kB
[ebuild N ] sys-kernel/genkernel-3.4.12.6-r2 USE="-bash-completion (-ibm) (-selinux)" 11,556 kB
Total: 2 packages (2 new), Size of downloads: 11,690 kB
Would you like to merge these packages? [Yes/No]
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
43 de 62 01/02/14 12:55
After answering the above question with "Yes", it will download and install the packages
for you. Next, you need to set the symlink from /usr/src/linux to the /usr/src/linux-
version directory. There are two ways to do so. If you have selected a version that is
supported by eselect, it would be really simple for you, just do:
# eselect kernel list
# eselect kernel set 1
The rst command should list the kernel you have selected. If that isn't the case, the
second command to set this kernel version isn't needed, else the second one sets the
symlink automatically for you. As eselect kernel command will scan your /usr/src directory, it
should list every kernel-sources listed above, if that isn't the case, please report the
failing to the funtoo-dev mailing list (http://groups.google.com/group/funtoo-dev) ,
Funtoo Forums (http://forums.funtoo.org) or contact us directly in IRC at #funtoo
(irc://irc.freenode.net/funtoo) . As a workaround you could use the following steps to
make your kernel-sources usable:
# cd /usr/src
# rm linux
# ls
linux-sources
# ln -s linux-sources linux
where linux-sources is the directory that the ls command above showed you.
When you nished the selection of your kernel you will now bake your rst kernel, using
the genkernel or fast way. Execute for that the following command:
# genkernel --menuconfig all
if you have a special cong predened use
# genkernel --kernel-config=config-name --menuconfig all
else if you have choosen an encrypted setup, use the following command to include all
the tools you need for bootup:
# genkernel --lvm --luks --menuconfig all
the above used options are doing the following:
--kernel-cong: use the given name located in the kernel source tree (/usr/src/linux
by default is taken unless overridden by --kerndir)
all: rebuild the kernel image and the initramfs ramdisk image (aside of kernel
modules, the ramdisk image contains tools such as BusyBox and some generic
startup scripts, depending on options you use on the command line several
additional tools like lvm or raid volume management can be incorporated as well).
--lvm: Includes support for storage using via Logical Volume Management (LVM2)
from static binaries, if available to the system. Relevant (static) LVM2 binaries are
compiled if they are unavailable. Be sure to install the lvm2 package on your
system with emerge lvm2 before enabling this ag.
--luks: Includes support for Linux Unied Key Setup or LUKS. This will allow you to
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
44 de 62 01/02/14 12:55
use a device encrypted by LUKS which contains the root lesystem. On the
bootloader, you then set that encrypted device as the value of crypt_root (and
real_root shall be the unencrypted device LUKS creates).
--menucong: lets you set options for kernel compile manual
The --menuoption will present you the following screen:
default options for unencrypted/encrypted setup
We advized you above to use a partitioning scheme based on the following le system
types:
ext2
swap
ext4
xfs
You now need to activate all of them so you can boot your system later, these options
can be found at:
Kernel option: File Systems --->
<*> Second extended fs support
<*> The Extended 4 (ext4) lesystem
[*] Ext4 extended attributes (NEW)
[ ] Ext4 POSIX Access Control Lists (NEW)
[ ] Ext4 Security Labels (NEW)
[ ] EXT4 debugging support (NEW)
<*> XFS lesystem support
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
45 de 62 01/02/14 12:55
[ ] XFS Quota support (NEW)
[ ] XFS POSIX ACL support (NEW)
[*] XFS Realtime subvolume support
[ ] XFS Debugging support (EXPERIMENTAL) (NEW)
If you furthermore decided to follow our advice and to use a GPT-Partitioning scheme,
which will be your default, you will need to activate it in your kernel by using the
following options:
Kernel option:
File Systems --->
Partition Types --->
[*] Advanced Partition Selection (PARTITION_ADVANCED)
[*] EFI GUID Partition Support (EFI_PARTITION)
additional encrypted options
It is very important to add the following parts in your kernel setup, when you used the
above GPT or MBR encrypted setup. Under
Kernel option: General setup --->
[*] Initial RAM lesystem and RAM disk (initramfs/initrd) support
and under
Kernel option:
Device Drivers --->
[*] Multiple devices driver support
<*> Device Mapper Support
<*> Crypt target support
and nally under
Kernel option: -*- Cryptographic API --->
<*> XTS support (EXPERIMENTAL)
-*- AES cipher algorithms
Finally exit the menucong for your kernel and get a coee. You have done a good bit of
work so far... :)
manual kernel
You can use genkernel to automatically compile your kernel, but this tends to create a
bloated kernel, compatible with just about any computer, anyplace, any time. On the
other hand, you can manually congure and compile your kernel, to give you complete
control, for the smallest and fastest kernel(s) that you can build for your specic
computer. However, manual kernel conguration is often called by many users, the
hardest step in installing Funtoo. But it is also very worth learning how to do it. Be
warned that it make take several recongurations, compiles and reboots, until you have
a working system. Plus, for the encrypted hdd version, you will have to do a bit more
work than above, but if you have gotten this far, you should be able to handle it.
install and cong
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
46 de 62 01/02/14 12:55
First you will have to install the kernel image you selected above. In the following we
again use the kernel we think might be the default choice of you, gentoo-sources, but
you can feel free to replace it with any of the above ones. So now install your kernel-
sources:
# emerge -avt gentoo-sources
After answering the above question with Yes, emerge will download and install the
kernel-sources for you. Next you need to set the symlink from /usr/src/linux to the
/usr/src/linux-version directory. There are two ways to do so, the default way would be to
use the following command sequence:
# eselect kernel list
# eselect kernel set 1
The rst command will list the kernel or kernels for which you have used emerge to
install the corresponding source code packages. The character * is used to indicate the
currently selected default kernel package. In other words, the command eselect kernel
list will scan and list directories in your /usr/src directory , each named after a dierent
kernel source code. It will then show with a * the directory currently pointed to by the
/usr/src/linux link. The second command is not needed, as long as the correct kernel
source has been selected. Otherwise, use this command and the number of the
corresponding kernel directory, to set your /usr/src/linux link.
If the eselect kernel command does not work correctly, please report the failing to the
funtoo-dev mailing list (http://groups.google.com/group/funtoo-dev) , Funtoo Forums
(http://forums.funtoo.org) or contact us directly in IRC at #funtoo (irc://irc.freenode.net
/funtoo) .
As a workaround or for educational purposes, you could use the following equivalent
commands. For example, to make gentoo-sources available for compiling your kernel,
enter:
# cd /usr/src
# rm linux
# ls
gentoo-sources-3.5.4
# ln -s gentoo-sources-3.5.4 linux
where gentoo-sources is the directory that the ls command above showed you.
Now you are nearly ready to congure your kernel. First switch to a second terminal
with Alt+F2 and execute lspci and copy the output, most importantly the names of the
VGA, Ethernet and Network devices currently in your system. Knowing these device
names will be needed if you need help for default options at the Debian GNU/Linux
device driver check page (http://kmuto.jp/debian/hcl/) . Some options there aren't in
your kernel or may have other names but it is a good source for getting default options
help for devices.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
47 de 62 01/02/14 12:55
Now move back to your chrooted system (Alt+F1) and start the congure process with
# cd /usr/src/linux
# make menuconfig
This will present you a screen similar to the following:
start setting the options you know about or the ones the page above gave you. You need
to at least set the following options:
Here are some more sources you may like to read for conguring your kernel the old
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
48 de 62 01/02/14 12:55
fashioned manual way:
http://kernel-seeds.org (http://kernel-seeds.org/)
http://swift.siphos.be/linux_sea/ch07.html
http://www.gentoo.org/doc/en/kernel-cong.xml
default options for unencrypted/encrypted setup
We advised above to use a partitioning scheme based on the following lesystemtypes:
ext2
swap
ext4
xfs
You now need to activate all of them so you can boot your system later, these options
can be fount at:
Kernel option: File Systems --->
<*> Second extended fs support
<*> The Extended 4 (ext4) lesystem
[*] Ext4 extended attributes (NEW)
[ ] Ext4 POSIX Access Control Lists (NEW)
[ ] Ext4 Security Labels (NEW)
[ ] EXT4 debugging support (NEW)
<*> XFS lesystem support
[ ] XFS Quota support (NEW)
[ ] XFS POSIX ACL support (NEW)
[*] XFS Realtime subvolume support
[ ] XFS Debugging support (EXPERIMENTAL) (NEW)
If you furthermore decided to follow our advice and use a GPT-Partitioning scheme, what
will be our default, you need to activate it in your kernel by using the following options:
Kernel option:
File Systems ---> (or Enable the block layer --->)
Partition Types --->
[*] Advanced Partition Selection (PARTITION_ADVANCED)
[*] EFI GUID Partition Support (EFI_PARTITION)
additional encrypted options
It is very important to add the following parts in your kernel setup, when you used the
above GPT or MBR encrypted setup. Under
Kernel option: General setup --->
[*] Initial RAM lesystem and RAM disk (initramfs/initrd) support
and under
Kernel option:
Device Drivers --->
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
49 de 62 01/02/14 12:55
[*] Multiple devices driver support
<*> Device Mapper Support
<*> Crypt target support
and naly under
Kernel option: -*- Cryptographic API --->
<*> XTS support (EXPERIMENTAL)
-*- AES cipher algorithms
building the kernel the manual way
Now that all the options are set exit menuconfig and answer the question about saving
your cong with YES. That already was the hardest part, now bake your kernel.
# make
# make modules_install
# cp arch/<architecture>/boot/bzImage /boot/bzImage-<versionnumber>
This code-sequence will need to be explained, the rst command make will bake your
kernel, it will take some time, so feel free to get a coee. :) if you don't have one
available here is one from us |_|). make modules_install generates the modules for the
kernel and builds them, the third command in the sequence needs to be adjusted by you,
if you use a 32bit system replace <architecture> with x86 and for 64bit systems with
x86_64, nally replace the <versionnumber>-string with a for you readable and unique
versionnumber like 2.6.38-rc7-mykernel-v1 or something like that, then the command
copies over your baked kernel to /boot and you are ready to get to the next step....
Bootloader
boot-update
boot-update is the default boot-loader conguration tool in funtoo. You need to install it
with
# emerge -avt boot-update
This will install boot-update and grub2 for you. Next you need to congure it. That is
done in /etc/boot.conf:
# vim /etc/boot.conf
/etc/boot.conf will look somewhat like the following:
boot {
generate grub
default "Funtoo Linux 64-bit"
timeout 10
}
display {
gfxmode 1440x900
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
50 de 62 01/02/14 12:55
#background /boot/
}
color {
normal cyan/black
highlight black/cyan
}
default {
scan /boot
kernel bzImage[-v] kernel[-v] vmlinuz[-v]
initrd initramfs[-v]
# root=auto will cause the parameter
# from your /etc/fstab. rootfstype=
params video=vesafb root=auto rootfstype=auto
# an alternate graphics mode can be set
# default is inherited from display:
# gfxmode 1024x768
}
"altboot" {
params += init=/bin/bash
}
"Funtoo Linux 64-bit gpt" {
kernel bzImage[-v]
}
"Funtoo Linux genkernel" {
kernel kernel[-v]
initrd initramfs[-v]
params += real_root=auto
}
"Funtoo Linux 64-bit encrypted gpt/mbr manual kernel" {
kernel bzImage[-v]
initrd /initramfs.cpio.gz
params += enc_root=/dev/sda3 lvm luks root=/dev/mapper/vg-root rootfstype=ext4 resume=swap:/dev/mapper/vg-sw
}
If you decided to do a manual kernel, with an encrypted HDD, you will need to read the
next section after you made the changes to your cong. If you decided to use genkernel
or a manual kernel with unencrypted HDD, all is OK and it is now safe for you to go to
the Grub2 setup.
encrypted disk with manual kernel
As you decided to make an encrypted disk setup with a manual kernel, you need to
instal slashbeast's better-initrmafs (http://github.com/slashbeast/better-initramfs) . It is
very simple to do. First clone the git-repository. If you aren't condent with git, feel free
to have a look at our Git Guide.
# install -d /root/.git
# cd /root/.git
# git clone git://github.com/slashbeast/better-initramfs.git
# cd better-initramfs
# git checkout v0.3
# less README.rst
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
51 de 62 01/02/14 12:55
# echo "sys-apps/busybox static" >> /etc/portage/package.use/busybox && echo "sys-fs/cryptsetup static" >> /etc/port
# emerge -avt busybox cryptsetup lvm2
# make
>>> New better-initramfs is not backward compatible, read ChangeLog file.
>>> Preparing binary files...
>>> Adding /bin/busybox...
>>> Adding /sbin/cryptsetup...
>>> Adding /sbin/lvm.static...
>>> Building image...
>>> initramfs.cpio.gz is ready.
# cp initramfs.cpio.gz /boot
Now you are ready to setup grub2. Just go to the next section.
= Updating better-initramfs =
As the better-initrmafs (http://github.com/slashbeast/better-initramfs) project isn't
controlled at the moment by an ebuild, you will need to take care of updating it by
yourself, but it is very easy to do so:
# git checkout master
# git pull
# less ChangeLog
# git checkout vx.x
# make
where x.x is a version announced in the ChangeLog. At the moment the stable is 0.3.
setting up grub2
This step is easy. It is done with two commands;
# grub-install --no-floppy /dev/sda
# boot-update
A successful run of boot-update might will look like this:
boot-update 1.5.2 / Copyright 2009-2011 Funtoo Technologies
[use option "-l" for license info, "-h" for help]
* Generating config for grub...
DEFAULT > Funtoo Linux 64-bit - bzImage-2.6.39-rc7-git-a2b9c1f
Funtoo Linux 64-bit - bzImage-2.6.39-rc7-git-446cc63
Funtoo Linux 64-bit - bzImage-2.6.39-rc7-git-df8d06a
* WARN : multiple matches found for default "Funtoo Linux 64-bit" - most recent used.
* Completed successfully with warnings.
Extlinux
For Extlinux you will nd a guide for setup at Extlinux.
nalize Setup
Necessary System Tools
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
52 de 62 01/02/14 12:55
As some tools are providing the same functionality, it is up to you to choose which ones
you like to use. The next sections are giving you an overview of tools you might like to
use and install, but all are optional.
System Logger
Linux and Unix have an excellent history of logging capabilities, if you want you can log
from only special stu up to everything that happens on your system in logles, for that
behavior is a system logger the reason.
There are several in our repository from which you can choose:
sysklogd, which is a traditional set of system logging daemons,
syslog-ng, which is an advanced system logger and
metalog, which is a highly-congurable system logger,
rsyslog, seems to be a popular choice, default syslog of Fedora, RHEL, openSUSE,
Debian and Ubuntu
there might be others available too, but at the moment we aren't aware of them.
We advice you to install next to sysklogd or syslog-ng the logrotate tool, as those system
loggers don't provide a rotation machanism for the log les.
Just install the desired one like the example shows:
# emerge syslog-ng
# rc-update add syslog-ng default
Optional: Cron Daemon
Although this is optional it is in our opinion very handy and wise to install one. But you
might ask yourself now "What the hell is a cron daemon?" A cron daemon just executes
scheduled commands, so you see it can be very handy if you need to execute commands
regularly.
In our tree there are three possible cron daemons; dcron, fcron and vixie-cron. We
would like to advise you to use fcron, but it depends on what you like. also vixie-cron
might be easier, as you don't need to execute crontab /etc/crontab, fcron might be more
powerful.
# emerge fcron
# rc-update add fcron default
# crontab /etc/crontab
Optional: File Indexing
If you like to index your les for a fast search, you need to install mlocate so you can use
the locate command to quickly search for them:
# emerge mlocate
# updatedb
File System Tools ==
As we used some special lesystems above you need to at least install xfsprogs, but
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
53 de 62 01/02/14 12:55
there might be some others too, the following table gives you an overview:
File System Tool install command needed
XFS xfsprogs emerge xfsprogs X
JFS jfsprogs emerge jfsprogs
reiserfs reiserfsprogs emerge reiserfsprogs
btrfs btrfs-progs emerge btrfs-progs
Networkcong
The Easy (Dynamic) Way
When conguring your network, one option is to skip traditional network conguration
and simply rely on DHCP. This is by far the simplest method of conguring your
network. If you are on a wired network, no other steps are typically required beyond
enabling a DHCP client, and Funtoo Linux includes dhcpcd 5.x by default. To enable
DHCP at system startup, you would add dhcpcd to your default runlevel as follows:
# rc-update add dhcpcd default
Template:Note
The Modular Way
DHCP isn't always an option, and for these situations, Funtoo Linux oers its own
modular, template-based network conguration system. This system oers a lot of
exibility for conguring network interfaces, essentially serving as a "network interface
construction kit." This system can be used by itself, or even combined with dhcpcd -- if
you limit dhcpcd to only manage certain network interfaces.
Here are the key components of the template-based network conguration system:
/etc/init.d/netif.lo -- An init script that congures the localhost interface. 1.
/etc/netif.d -- This is a directory that contains various network conguration
templates. Each of these templates is focused on conguring a particular type of
network interface, such as a general static IP-based interface, a bridge interface, a
bond interface, etc.
2.
/etc/init.d/netif.tmpl -- This is the master init script for the template-based network
conguration system. New interfaces are added to your system by creating
symbolic links to this le in /etc/init.d.
3.
So, if you wanted to use this system to congure eth0 with a static IP address, you
would create a netif.eth0 symlink to netif.tmpl as follows:
# cd /etc/init.d
# ln -s netif.tmpl netif.eth0
Then, you would create an /etc/conf.d/netif.eth0 conguration le that would specify
which template to use from the /etc/netif.d directory:
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
54 de 62 01/02/14 12:55
template="interface"
ipaddr="10.0.1.200/24"
gateway="10.0.1.1"
nameservers="10.0.1.1 10.0.1.2"
domain="funtoo.org"
To complete our static IP network conguration we would need to:
# rc-update add netif.eth0 default
When conguring your own static network interface, one of ipaddr or ipaddrs is
required and should specify the IP address(es) to congure for this interface, in
"a.b.c.d/netmask" format. Optional parameters include gateway, which denes a default
gateway for your entire network, and if set should specify the gateway's IP address. In
addition, domain and nameservers (space-separated if more than one) can be used to
specify DNS information for this interface.
Conguration Variables
Interface Variables
The following variables are supported by the interface and bridge templates:
ipaddr or ipaddrs: specify IPv4 or IPv6 address(es) for the interface. IP addresses
should be specied in "IP/netmask" format, such as "10.0.0.1/24". Multiple IP
addresses can be specied like this:
ipaddrs="10.0.0.1/24 10.0.0.2/24"
Note that in some cases, you may choose to not specify ipaddr or ipaddrs for a bridge
template. That is allowed. If you don't want to specify an IP address for a regular
interface, you can choose to use the interface template without an IP address specied
in the cong, or use the interface-noip template instead, for the sake of clarity.
Also note that if you specify multiple IP addresses, ifcong will only show the rst IP
address. To view all IP addresses associated with the interface, use the ip addr show
command.
General Variables
The following variables are enabled by default for all network scripts, and if specied
will trigger a corresponding conguration action: nameservers: Set DNS nameservers
using OpenResolv. Specify multiple nameservers like this: "1.2.3.4 1.2.3.5 1.2.3.6"
domain: Set DNS domain using OpenResolv.
gateway: Dene a default IP gateway.
route: Specify a semi-colon delimited list of routes to apply when this interface is
brought up. Will be appended to ip route add.
mtu: Set Maximum Transmit Unit for the interface
slaves: Set slave interfaces of this interface (for bridges, etc.) All slaves will
automatically be depended upon, and will also automatically have their mtu set to
that of the current interface, if an mtu is specied for the current interface. This
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
55 de 62 01/02/14 12:55
setting is required for the bond template and optional for the bridge template.
VLAN Variables
VLAN support is enabled by default for all network conguration scripts. If a network
script has a name in the format netif.ethX.Y, then it is assumed to be a VLAN interface
referencing trunk ethX and VLAN ID Y. If you desire a custom name for your VLAN
interface, you can name your interface whatever you'd like and specify the following
variables in your interface cong [le: le:]
trunk: VLAN trunk interface, e.g. "eth0"
vlan: VLAN id, e.g. "32"
OpenResolv and resolv.conf
For the network conguration above, OpenResolv will be used to set DNS information
when the netif.eth0 is brought up. The OpenResolv framework will add entries to
/etc/resolv.conf, and will also handle removing these entries when the interface is
brought down. This way, /etc/resolv.conf should always contain current information and
should not need to be manually edited by the system administrator. dhcpcd will use
OpenResolv for updating system DNS information as well.
Network-Dependent Services
One important dierence between Gentoo Linux and Funtoo Linux is that, in Funtoo
Linux, network-dependent services only strictly depend on netif.lo. This means that if
another network service requires an interface to be up, such as samba requiring eth0,
then the system administrator must specify this relationship by adding the following line
to /etc/conf.d/samba:
rc_need="netif.eth0"
This will have the eect of ensuring that netif.eth0 is started prior to samba and that
samba is stopped prior to stopping netif.eth0.
Many network services, especially those that listen on all network intefaces, don't need
an rc_need line in order to function properly. Avoiding the use of rc_need when required
will optimize boot times and allow more network services to remain available when
network interfaces are brought up and down by the system administrator.
Multiple Network Congurations
For information on how to have multiple, independent network congurations, please
see Stacked Runlevels.
Alternate Congs
If you need to run the same service with dierent conguration parameters depending
upon runlevel, then you'll be happy to know that you can specify runlevel-specic conf.d
les by appending a . <runlevel> sux. In this particular example, we could imagine a
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
56 de 62 01/02/14 12:55
situation where we had two child runlevels named home and work:
/etc/conf.d/netif.eth0.home
/etc/conf.d/netif.eth0.work
Note that this feature works for all init scripts, not just network conguration scripts.
Interface Renaming
Funtoo network scripts now support interface renaming, so you can create an interface
called lan if you would like. To so this, simply specify the MAC address of the interface
you would like to rename using the macaddr variable: macaddr="00:15:17:19:b6:a3" If
this MAC address is part of the netif.lan conguration le, then when this interface
starts, whatever interface currently has the MAC address of 00:15:17:19:b6:a3 (i.e.
eth5) will be renamed to lan prior to the interface being brought up, and will show up in
ifcong and ip commands as being an interface named lan.
Basic VLAN Conguration
The standard interface template supports VLANs. To use VLAN support, rst congure
the trunk interface using the interface-noip template. Assuming eth1 is trunked, you
would create the le /etc/conf.d/netif.eth1 with the following contents:
template="interface-noip"
Then, create a network interface symlink for the trunk and add it to your default
runlevel:
# cd /etc/init.d
# ln -s netif.tmpl netif.eth1
# rc-update add netif.eth1 default
Now, assuming you wanted to congure a VLAN of 32, you would create a cong le
named /etc/conf.d/netif.eth1.32 that looks something like this:
template="interface"
ipaddr="1.2.3.4/24"
gateway="1.2.3.1"# etc...
Then, create a VLAN network interface symlink and add it to your default runlevel:
# cd /etc/init.d
# ln -s netif.tmpl netif.eth1.32# rc-update add netif.eth1.32 default
The Funtoo network conguration scripts will automatically recognize the lename
netif.eth1.32 as being VLAN 32 of trunk interface netif.eth1.
When the VLAN interface is brought up, it will be named eth1.32.
Custom VLAN Names
However, sometimes you may want to turn o automatic le-based VLAN naming and
give your VLAN interface a custom name, such as mgmt. To do this, you would set up
the trunk interface in the exact same way as described above, but instead of creating a
netif.eth1.32 interface, you would create a netif.mgmt interface, and specify vlan and
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
57 de 62 01/02/14 12:55
trunk in the /etc/conf.d/netif.mgmt cong le, as follows:
template="interface"
vlan="32"
trunk="eth1"
ipaddr="1.2.3.4/24"
gateway="1.2.3.1"
# etc...
When you specify trunk and vlan in the interface cong le, lename-based
auto-detecting of VLAN ID and trunk is disabled. Both trunk and vlan must be specied
-- you can't specify just one.
Then you would simply create a VLAN network interface symlink for netif.mgmt:
# cd /etc/init.d
# ln -s netif.tmpl netif.mgmt
# rc-update add netif.mgmt default
When the VLAN interface is brought up, it will be named mgmt.
More Complex Network Conguration
If the standard templates don't work for your needs, simply create a new template -- I
recommend starting from the interface template for most things:
# cd /etc/netif.d
# cp interface custom
You can now call whatever commands you need to /etc/netif.d/custom. The following
shell functions can be dened in a network script:
netif_create
In netif_create, you should call any commands to create the interface if it does not yet
exist.
netif_depend
In netif_depend, you can dene dependencies, using the functions need and use.
netif_pre_up
In netif_pre_up, you can dene network conguration actions to perform prior to
bringing the interface up. You can also ensure certain variables are specied by calling
require var1 [var2...] here.
netif_post_up
In netif_post_up, you can dene network conguration actions to perform after bringing
the interface up.
netif_pre_down
In netif_pre_down, you can dene network conguration actions to perform prior to
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
58 de 62 01/02/14 12:55
bringing the interface down.
netif_post_down
In netif_post_down, you can dene network conguration actions to perform after
bringing the interface down.
netif_destroy
In netif_destroy, you can call any commands necessary to destroy/delete the interface if
it is dynamic in nature (tun/tap, etc.)
How It Works
You do not specify a function for actually bringing up the interface, because the
template-based system does this for you. The template-based system also performs all
normal actions for required for bringing an interface down, so only need to specify
atypical actions that must be performed - such as removing child interfaces or
destroying a bridge using brctl.
When you create your own network conguration template, the following capabilities
are available for use automatically, as long as the appropriate variables are set in the
/etc/conf.d/netif.<ifname> le,, without requiring any explicit steps on your part:
DNS conguration using domain and nameservers cong settings. OpenResolv is
used automatically.
VLAN conguration using auto-naming (netif.ethX.Y) or via custom naming with
trunk and vlan cong settings.
Default gateway and route conguration using the gateway and route settings.
MTU conguration using the mtu setting.
Auto-depend (and auto-MTU conguration) of slave interfaces specied using
slaves setting.
Renaming of existing network interface (specify MAC address using macaddr
setting).
To take advantage of this functionality, simply enable the appropriate variables.
All other necessary network conguration and dependency behavior should be dened
using the netif_-prex functions described above.
Wireless Conguration
Wireless network conguration requires additional steps to the ones outlined above.
For wireless networks, you will need to enable wireless extensions in your kernel, the
appropriate wireless modules, and emerge wireless-tools:
# emerge wireless-tools
I also recommend you emerge wpa_supplicant. wpa_supplicant implements modern
WPA/WPA2 wireless link-layer encryption, which is necessary for connecting to most
modern password-protected wireless networks:
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
59 de 62 01/02/14 12:55
# emerge wpa_supplicant
After emerging, add to your default runlevel as follows:
# rc-update add wpa_supplicant default
802.11 Passphrases
The only remaining step is to use the wpa_passphrase utility to store hashed keys
(passwords) that wpa_supplicant can use to connect to your favorite wireless networks.
This is done as follows:
# wpa_passphrase jims-netgear >> /etc/wpa_supplicant/wpa_supplicant.conf
<enter your passphrase>
Now, when wpa_supplicant encounters an SSID of jims-netgear, it will use the password
you entered to authenticate with this access point.
At this point, ensure that dhcpcd has been enabled in your current runlevel and type rc
to start everything up. wpa_supplicant should be able to automatically associate with
SSIDs in its cong le, at which point dhcpcd will take over and acquire an IP address
from a DHCP server. This should all happen seamlessly. Use the iwcong command to
see if you have successfully associated with an access point.
Wireless Firmware
Many wireless adapters will now have everything they need to work. However, if you
have an Intel wireless adapter, then you may need to install the proper microcode for
your device in addition to ensuring that the proper Intel Wireless kernel drivers are
available. For my Intel Corporation PRO/Wireless AGN [Shiloh] Network Connection, I
need to do the following:
# emerge net-wireless/iwl5000-ucode
udev (running by default) and the Linux kernel rmware loader support
(CONFIG_FW_LOADER) will automatically load the microcode when needed.
Note that Gentoo and Funtoo provide dierent versions of the Intel microcode because
the version you need will depend on the kernel you are using. For my RHEL5-based
kernel, I had emerge an older version of the microcode to match what my kernel
wireless driver was expecting by typing:
emerge =net-wireless/iwl5000-ucode-5.4.0.11 1.
This installed this le iwlwi-5000-1.ucode which was required by my RHEL5-based
kernel. Just typing emerge net-wireless-iwl5000-ucode installed iwlwi-500-2.ucode,
which my kernel could not use. Before I had the right version of the microcode, I saw an
error like this when I viewed the kernel messages by typing dmesg: iwl5000: iwlwi-
5000-1.ucode rmware le req failed: Reason -2
This error message generally means "I can't nd this le iwlwi-5000-1.ucode that I'm
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
60 de 62 01/02/14 12:55
looking for in /lib/rmware." With the proper rmware in place, then the wireless driver
will be happy and wpa-supplicant can then bring the wireless interface up.
Set your root password
It's imperative that you set your root password before rebooting:
# passwd
Create a user account
Logging in as root is a bad idea on a Linux system. Before rebooting, create a user
account for everyday use. Adjust the groups in the example below to match your needs.
Some of them may not exist yet on your system. Replace '<user_name>' with the name
your going to use for your everyday user. The '-m' option instructs useradd to create a
home directory for your user. See the useradd manpage for more info.
useradd -m -G audio,cdrom,cdrw,floppy,usb,users,video,wheel -s /bin/bash <user_name>
Don't forget to set a password for your new user:
passwd <user_name>
Verify boot time services
You should verify that all of your needed services have been added to the appropriate
runlevel.
eselect rc list | less
Scroll though the list and check. Example of things you might need to add:
lvm if you use logical volumes
Your system logger if you installed one
hibernate-cleanup if you use tuxonice
iptables
dbus
Add anything you need with the following command:
eselect rc add <script> <runlevel>
First boot
Now is the time to leave chroot, to unmount Funtoo Linux partitions and les and to
restart your PC. If you installed GRUB, you will get an option to launch Funtoo Linux.
Otherwise you will get to your already installed Linux and you will have to update your
GRUB menu.
Leave the chroot, change directory to /, and unmount your funtoo partitions. Adjust the
unmount command to match your setup
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
61 de 62 01/02/14 12:55
exit
cd /
umount /mnt/funtoo/home /mnt/funtoo/boot /mnt/funtoo/dev /mnt/funtoo/proc /mnt/funtoo/usr/portage /mnt/funtoo
Note:
In case of LVM2 also: swapoff /dev/mapper/vg-swap, vgchange -a n , if not You will see:
Device dmcrypt_root is busy. In case of luks: cryptsetup luksClose dmcrypt_root to
close the container.
Restart
shutdown -r now
What's next
Funtoo Linux First Steps
Retrieved from "http://www.funtoo.org/index.php?title=Installation_(Tutorial)&
oldid=502"
Categories: HOWTO Install Tutorial
This page was last modied on 23 September 2013, at 23:10.
This page has been accessed 4,119 times.
Installation (Tutorial) - Funtoo http://www.funtoo.org/Installation_(Tutorial)
62 de 62 01/02/14 12:55

You might also like