Οδηγός Γρήγορης (?) Εγκατάστασης Funtoo Linux για x86 (για τολμηρούς χρήστες!)

rpil | Δευ, 09/17/2012 - 12:39 | 16'

Αναλαμβάνω τη σύνταξη ενός -όσο γίνεται- σύντομου οδηγού για την εγκατάσταση του Funtoo Linux σε ότι αφορά την x86 αρχιτεκτονική πάντα.
Το Funtoo είναι ένα πειραματικό project του ιδρυτή του Gentoo και πρώην προέδρου του Gentoo Foundation, Daniel Robbins.  Έχει πολλές ομοιότητες με το αρχικό project, αλλά διαφέρει σε αρκετά σημεία και αυτό γίνεται κάθε φορά όλο και πιο αισθητό. Το Funtoo Linux διαθέτει εγγενή υποστήριξη UTF-8 ενεργοποιημένη από προεπιλογή, ένα Portage tree βασισμένο στο git, αυτοματοποιημένη εισαγωγή των νέων αλλαγών στο Gentoo κάθε 12 ώρες, υποστήριξη GPT / GUID, εκκίνηση που πατάει σε Grub2 , βελτιωμένη διαμόρφωση του δικτύου, ενημερωμένα καθημερινά σταθερά και τρέχοντα stages του Funtoo - όλα κτισμένα με τη χρήση του Metro build του Funtoo.

Ξεκινάμε την εγκατάσταση μπουτάροντας το Live CD του SystemRescue, το οποίο βασίζεται σε Gentoo αλλά περιέχει αρκετά χρήσιμα εργαλεία, υποστηρίζοντας παράλληλα τόσο τα 32-bit όσο και τα 64-bit συστήματα. Δεν προτείνεται πλέον το live CD του Gentoo, καθώς δεν περιέχει το εργαλείο κατάτμησης gdisk. 

Οπότε, καίμε ένα SystemRescueCd. Μπουτάρουμε τον υπολογιστή μας από αυτό. Επιλέγουμε την αρχιτεκτονική που μας ενδιαφέρει (στην περίπτωσή μας, το 32-bit σύστημα).

Μόλις βρεθούμε στο live περιβάλλον, ανοίγει αυτόματα ένα τερματικό σε root.
Ακολουθούμε τα εξής βήματα:


Αρχικά θα κάνουμε την κατάτμηση (partitions) του σκληρού μας δίσκου με το εργαλείο gdisk:

Κώδικας:
# gdisk /dev/sda

Δημιουργία Boot partition (1):

Πληκτρολογούμε: n ↵
Partition Number: (γράφουμε)1 ↵
First sector: ↵ (πατάμε enter)
Last sector: (γράφουμε) +500M ↵
Hex Code: ↵ (πατάμε enter)

Δημιουργία Grub Partition (2):

Πληκτρολογούμε: n ↵
Partition Number: 2 ↵
First sector: ↵
Last sector: +32M ↵
Hex Code: EF02 ↵

Δημιουργία Swap Partition (3):

Πληκτρολογούμε: n ↵
Partition Number: 3 ↵
First sector: ↵
Last sector: +4G ↵
Hex Code: 8200 ↵

Δημιουργία Root Partition (4):

Πληκτρολογούμε: n ↵
Partition Number: 4 ↵
First sector: ↵
Last sector: ↵ (for rest of disk)
Hex Code: ↵

Ανάμεσα στη δημιουργία των partitions, μπορούμε να πληκτρολογούμε p και Enter, για να παρακολουθούμε αν οι κατατμήσεις έγιναν σωστά.  Στο τέλος, για να σώσουμε το Partition Table, πληκτρολογούμε:

Command: w ↵
Do you want to proceed? (Y/N): Y ↵

Αφού πατήσουμε p θα πρέπει να δούμε κάτι σαν αυτό:

Command (? for help): p
Disk /dev/sda: 234441648 sectors, 111.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): A4E5208A-CED3-4263-BB25-7147DC426931
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 234441614
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

 

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          206847   500.0 MiB   8300  Linux filesystem
   2          206848          272383   32.0 MiB    EF02  BIOS boot partition
   3          272384         8660991   4.0 GiB     8200  Linux swap
   4         8660992       234441614   107.7 GiB   8300  Linux filesystem

Command (? for help):

Άμα το δούμε, τότε πάμε στο επόμενο βήμα.

Δημιουργούμε τα filesystems των κατατμήσεων:

Κώδικας:
# mke2fs -t ext2 /dev/sda1 
# mkfs.xfs /dev/sda4
# mkswap /dev/sda3
# swapon /dev/sda3


Αφού ολοκληρώσουμε, πάμε να ενσωματώσουμε στο σύστημα τα partitions που φτιάξαμε:

Κώδικας:
# mkdir /mnt/funtoo
# mount /dev/sda4 /mnt/funtoo
# mkdir /mnt/funtoo/boot
# mount /dev/sda1 /mnt/funtoo/boot


Ρυθμίζουμε την ώρα και την ημερομηνία:

Κώδικας:
# date

Αν η ημερομηνία είναι λάθος, τότε την αλλάζουμε με την εντολή "date":

Κώδικας:
# date 091711002012 (όπου 09 ο μήνας, 17 η ημερομηνία, 11 η ώρα, 00 τα λεπτά και 2012 η χρονολογία)

Όταν πατήσουμε Enter, θα δούμε:
Mon Sep 17 11:00:00 UTC 2012


Πάμε τώρα να κατεβάσουμε το stage tarball για την εγκατάσταση.

Μπαίνουμε στο mnt/funtoo, που δημιουργήσαμε και εκεί θα αποθηκεύσουμε το stage3, με την εντολή wget:

Κώδικας:

Αφού κατέβει, το αποσυμπιέζουμε με την εντολή:

Κώδικας:
# tar xJpf stage3-latest.tar.xz

Και τώρα ήρθε η ώρα να μπούμε στο νέο μας σύστημα, με την εντολή chroot!

Πριν από αυτό, ενσωματώνουμε τα /proc και /dev στο νέο μας σύστημα

Κώδικας:
# mount --bind /proc proc
# mount --bind /dev dev

Αντιγράφουμε και το /etc/resolv.conf για να έχουμε δίκτυο στο νέο μας σύστημα:

Κώδικας:
# cp /etc/resolv.conf etc

Γινόμαστε chroot με τις παρακάτω εντολές:

Κώδικας:
# env -i HOME=/root TERM=$TERM chroot . bash -l
# export PS1="(chroot) $PS1"

Τώρα στο τερματικό μας θα δούμε την ένδειξη (chroot)
Δίνουμε την εντολή emerge --sync για να δημιουργήσουμε το αποθετήριο του Portage, από το GitHub.

Κώδικας:
(chroot) # emerge --sync

Αν όλα πάνε καλά, θα ολοκληρωθεί κάπως έτσι:

Κώδικας:
>>> Using /usr/portage.sync/portage as temporary clone directory...
>>> Starting initial git clone with git://github.com/funtoo/ports-2012.git...
Cloning into 'portage'...
remote: Counting objects: 1385112, done.        
remote: Compressing objects: 100% (208747/208747), done.        
remote: Total 1385112 (delta 1201168), reused 1356181 (delta 1172249)        
Receiving objects: 100% (1385112/1385112), 240.82 MiB | 1.56 MiB/s, done.
Resolving deltas: 100% (1201168/1201168), done.
Checking out files: 100% (117797/117797), done.

Αν ξαναδώσουμε την εντολή, για σιγουριά, θα μας δώσει:

Κώδικας:
(chroot) sysresccd / # emerge --sync
>>> Starting git pull...
Already up-to-date.
>>> Git pull in /usr/portage successful


Φτιάχνουμε τώρα κάποια αρχεία μας.

Αρχικά το /etc/fstab:

Κώδικας:
(chroot) # nano -w /etc/fstab

Θα πρέπει να γίνει κάπως έτσι:
# 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      /      xfs      noatime               0 1
#/dev/cdrom      /mnt/cdrom   auto      noauto,ro            0 0
none                    /dev/shm        tmpfs           nodev,nosuid,noexec      0 0

 

Οι αλλαγές στον nano, σώζονται με Ctrl+O (όμικρον) και Enter και βγαίνουμε από το αρχείο με Ctril+X.


/etc/localtime
:

Αν θέλουμε το σύστημά μας, να παρακολουθεί την τοπική ώρα, τότε φτιάχνουμε symlink στη ζώνη ώρας που επιθυμούμε:

Κώδικας:
(chroot) # ln -sf /usr/share/zoneinfo/Europe/Athens /etc/localtime


/etc/make.conf
:

Εδώ θέλουμε:
ACCEPT_KEYWORDS="~x86"
CHOST="i686-pc-linux-gnu"

Για να ρυθμίσουμε την παράμετρο MAKEOPTS, δίνουμε την εντολή

Κώδικας:
(chroot) # grep "processor" /proc/cpuinfo | wc -l

για να δούμε πόσους επεξεργαστές διαθέτει το σύστημά μας. Αν π.χ. διαθέτει 2, θα πρέπει να γράψουμε έναν παραπάνω. Άρα:

Κώδικας:
MAKEOPTS="-j3"

H παράμετρος LINGUAS δηλώνει στο Portage σε ποια γλώσσα να κάνει compile το σύστημα και τις εφαρμογές του (όσες φυσικά χρησιμοποιούν το LINGUAS, όπως π.χ. το OpenOffice). Αν χρησιμοποιείτε ως γλώσσα συστήματος τα Αγγλικά, δεν είναι απαραίτητο να ρυθμίσετε την παράμετρο αυτή. Διαφορετικά:
LINGUAS="gr"


/etc/conf.d/hwclock

Αν χρησιμοποιείτε dual boot με Windows (λέω, τώρα! Γλώσσα), θα πρέπει να αλλάξετε την επιλογή σε local, γιατί τα Windows κάθε φορά που μπουτάρουν θα σας αλλάζουν το hardware clock στην τοπική ώρα. Διαφορετικά δεν υπάρχει λόγος να το αλλάξετε.

Κώδικας:
(chroot) # nano -w /etc/conf.d/hwclock


Βάζουμε τα Ελληνικά:

Κώδικας:
(chroot) sysresccd / # nano -w /etc/locale.gen

To αρχείο μας θα πρέπει να δείχνει έτσι:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
el_GR ISO-8859-7
el_GR.UTF-8 UTF-8

Σώζουμε τις ρυθμίσεις:

Κώδικας:
(chroot) sysresccd / # locale-gen
 * Generating 4 locales (this might take a while) with 1 jobs
 *  (1/4) Generating en_US.UTF-8 ...                                                   [ ok ]
 *  (2/4) Generating en_US.ISO-8859-1 ...                                              [ ok ]
 *  (3/4) Generating el_GR.ISO-8859-7 ...                                              [ ok ]
 *  (4/4) Generating el_GR.UTF-8 ...                                                   [ ok ]
 * Generation complete

Και:

Κώδικας:
(chroot) sysresccd / # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...


Ρυθμίζουμε τώρα το δίκτυο:

Κώδικας:
(chroot) # rc-update add dhcpcd default


Και τώρα, ο πυρήνας!

Αν δεν είμαστε εξοικιωμένοι με το να χτίζουμε πυρήνες για να περνάει η ώρα μας, το Funtoo φρόντισε να μας παράσχει τον πυρήνα που χρησιμοποιεί το SystemRescueCd, αφού βάλουμε το USE flag binary, ώστε να τον χτίσει με τον Genkernel.  Αυτός ο πυρήνας είναι βασισμένος σε Fedora Core.

Κώδικας:
(chroot) # echo "sys-kernel/sysrescue-std-sources binary" >> /etc/portage/package.use
(chroot) # emerge sysrescue-std-sources

Αυτό ήταν!


Τώρα περνάμε τον bootloader

To Funtoo χρησιμοποιεί grub2, ο οποίος χρειάζεται το εργαλείο boot-update για να λειτουργήσει:

Κώδικας:
(chroot) # emerge boot-update

Ελέγχουμε να δούμε εάν η ένδειξη "Funtoo Linux" έχει αντικατασταθεί από την "Funtoo Linux genkernel".  Αυτό θα το δούμε με το άνοιγμα του αρχείου /etc/boot.conf.

Κώδικας:
#nano -w /etc/boot.conf

To /etc/boot.conf θα πρέπει να δείχνει έτσι:

boot {
        generate grub
        default "Funtoo Linux genkernel"
        timeout 3 
}

"Funtoo Linux" {
        kernel bzImage[-v]
        # params += nomodeset
}

"Funtoo Linux genkernel" {
        kernel kernel[-v]
        initrd initramfs[-v]
        params += real_root=auto 
        # params += nomodeset

 


Περνάμε τον grub και ενημερώνουμε το /boot.conf:

Κώδικας:
(chroot) # grub-install --no-floppy /dev/sda
(chroot) # boot-update

Θα πρέπει να μας βγάλει αυτό το μήνυμα:
boot-update 1.6.4 /
Copyright 2009-2012 Funtoo Technologies

 [use option "-l" for license info, "-h" for help]

 * Generating config for grub...

 DEFAULT > Funtoo Linux genkernel - kernel-sysrescue-std-x86-3.0.21-sysrescue-std302

 * Completed successfully.

 


Ρυθμίζουμε το password για να μπορούμε να κάνουμε login:

Κώδικας:
(chroot) # passwd
New password: (το δίνουμε)
Retype new password: (το ξαναδίνουμε)
passwd: password updated successfully


Και τώρα πάμε για επανεκκίνηση!

Κώδικας:
(chroot) # exit
# cd /
# umount /mnt/funtoo/boot /mnt/funtoo/dev /mnt/funtoo/proc /mnt/funtoo
# reboot

 

ΤΕΛΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ!
Φόρουμ
Δώσε αστέρια!