Σχετικά πρόσφατα δημιουργήθηκε από ένα μέλος της κοινότητας του Arch ένα σύστημα δημιουργίας ενός Arch Live-CD, όπου ο χρήστης έχει (σχεδόν) πλήρη έλεγχο στο τί θα συμπεριλάβει εκεί μέσα, όπως και στο configuration του προκύπτοντος live συστήματος (ρυθμίσεις δικτύου, ποιοί δαίμονες και με ποιές ρυθμίσεις θα σηκωθούν κλπ.).
Το σύστημα αυτό λέγεται Larch και βρίσκεται πλέον στην έκδοση 5.3.
Μέχρι πολύ πρόσφατα έτρεχε και ήταν δοκιμασμένο μόνο σε x86 αρχιτεκτονική, μετά όμως από σχετικές δοκιμές του γράφοντος τροποποιήθηκε, υποστήριξε, δοκιμάστηκε και πιστοποιήθηκε καί για amd64 αρχιτεκτονική.
Το Larch μπορεί να φτιάξει 2 ειδών live-CDs:
α. Από υπάρχουσα εγκατάσταση Arch
Στην περίπτωση αυτή, ΠΡΟΣΟΧΗ πολύ, γιατί την καταστρέφει ανεπιστρεπτί. Άρα προτού το κάνετε, να έχετε φροντίσει να έχετε αποθηκεύσει tar backups όλων των partitions της εγκατάστασης αυτής ώστε μετά την "ζωντανοποίησή" της, να την κάνετε restore.
β. Εκ του μηδενός καινούριο live-CD χωρίς να πειράξει την υπάρχουσα εγκατάστασή μας.
Εδώ δεν διατρέχετε κανένα κίνδυνο, και δεν χρειάζεται να πάρετε κανένα backup.
Εμείς στο παράρτημα αυτό θα ασχοληθούμε με την περίπτωση β.
Ας δούμε τώρα (και στις 2 περιπτώσεις) ποιά μοναδικά και ισχυρότατα πλεονεκτήματα μας παρέχει το Larch:
1. Χρησιμοποιεί τα ίδια ακριβώς conf αρχεία (με 1-2 πολύ μικρές εξαιρέσεις) που χρησιμοποιεί καί το κανονικό Arch.
Άρα:
- Δεν χρειάζεται να μάθουμε τίποτα καινούργιο -> είμαστε σαν το σπίτι μας.
- Ξέρουμε να ρυθμίζουμε το Arch μας -> αυτομάτως ξέρουμε και πώς να ρυθμίσουμε το νέο μας live σύστημα.
- Θέλουμε συγκεκριμένη ρύθμιση-συμπεριφορά στο live σύστημά μας -> όπως θα ρυθμίζαμε κανονικό Arch για να την πετύχουμε (π.χ. kernel modules, δαίμονες, δίκτυο, hosts, sshd, nfs, samba κλπ.) έτσι επακριβώς χωρίς να μυρίζουμε τα νύχια μας και να ψαχνόμαστε θα ρυθμίσουμε και το live σύστημά μας. Πουθενά και για τίποτα δεν θα χρειαστεί να ξαναεφεύρουμε τον τροχό.
2. Χρησιμοποιεί τα ίδια ακριβώς standard εργαλεία, PMS, και repositories που χρησιμοποιεί καί το κανονικό Arch.
Άρα:
- Το live σύστημα χρησιμοποιεί τον standard pacman του Arch, τα standard repositories του Arch, και τα standard ονόματα πακέτων του Arch. Δεν χρειάζεται να μάθουμε τίποτα καινούριο. Είμαστε σαν το σπίτι μας.
- Χωρίς καμμία δική μας απολύτως παρέμβαση, κάθε φορά που από το ίδιο profile (θα εξηγήσουμε τα profiles παρακάτω) χτίζεται live σύστημα, λαμβάνονται τα νεότερα πακέτα από τα επίσημα Arch repositories κανονικότατα, και με τη βούλα, με τον pacman.
3. Υποστηρίζει πολλαπλά profiles (διαμορφώσεις)
- Μπορούμε να έχουμε μόνιμα αποθηκευμένα όσα profiles θέλουμε για να καλύπτουμε ποικίλες ανάγκες.
- Σε κάθε profile έχουμε απόλυτο έλεγχο - ένα-προς-ένα - σε ποιά πακέτα θα συμπεριλάβουμε.
4. Είναι υπερχρήσιμο για δυσπρόσιτα μηχανάκια
Έχετε έναν file server "εις την σοφίταν ψηλά εκεί" και πρέπει να κάνετε κάποιες εργασίες με live-CD πάνω του;
Τί θα κάνατε μέχρι τώρα; Σαν τον Δ. Ψαθά -> ανοίγει την μεγάλη πόρτα, μπαίνει στη μικρή σοφίτα, κλείνει τον μικρούλη server, βγάζει το ρεύμα και το δίκτυο, τον παίρνει παραμάσχαλα, βγαίνει από τη μικρή σοφίτα, κλείνει τη μεγάλη πόρτα, τον κατεβάζει κάτω, κλείνει το δικό του υπολογιστή, βγάζει την οθόνη και το πληκτρολόγιο, τα συνδέει στον μικρούλη server... κλπ. (ήδη ζαλίστηκα)
Τώρα με το Larch απλά χρειάζεται να έχετε από πριν στο BIOS του απομακρυσμένου μηχανήματος το boot sequence -> CD-ROM->SCSI και να βάλετε μέσα το Larch live-CD. Γιατί; Μα γιατί μπορείτε να του ορίσετε να ξεκινάει αυτόματα ο ssh server επιτρέποντας root logins. Και τα πάντα (backup, restore, maintenance, trouble-shooting κλπ.) να τα κάνετε ανετότατα από την υπερδιαστημική καρέκλα, οθόνη σας κλπ.
5. Μπορεί να χτιστεί και από άλλες διανομές Linux
Με λίγο πιο χειροκίνητο τρόπο (δεν το καλύπτουμε στο παρόν).
6. Ένα τέτοιο live-CD είναι πανχρήσιμο και σε άλλες διανομές
Γιατί:
- Backup, restore, ενημέρωση grub, παντός είδους rescue, είναι κοινή ανάγκη για όλες τις διανομές.
- Πολλές διανομές (π.χ. Gentoo και όχι μόνο) χρειάζονται κάποιο live-CD για να εγκατασταθούν. Όσο πιο υπερσύγχρονο είναι αυτό (με υπερπρόσφατο kernel) τόσο ευκολότερη η δουλειά λόγω υπέρμετρα καλύτερης υποστήριξης hardware. Και το Arch (μην ξεχνάτε ότι αυτόματα θα "τραβηχτούν" από τα επίσημα Arch repos ό,τι πιο τελευταίο σε software) είναι ως γνωστόν το πλέον υπερσύγχρονο-ενημερωμένο Linux. Ξεχάστε οι Gentoo χρήστες τα παλαιολιθικά Gentoo Live-CDs ανά 6 μήνες, όπου κολλάει το Realtek 8169 σας γιατί το Live-CD έχει ακόμα 2.6.18 ή παλιότερο, ή είναι τόσο καινούρια η κάρτα δικτύου σας που δεν μπορούν να την σηκώσουν, ή που δεν μπορούν να σηκώσουν τον καινούριο σας SATA disk controller. Τώρα με το Arch Live-CD, αν δεν μπορεί να τα σηκώσει το Arch, απλά δεν μπορεί να τα σηκώσει κανείς.
- Πολλά άλλα Live-CDs (π.χ. Ubuntu) απαιτούν χρονοβόρες διαδικασίες ή και κουνγκ-φου πριν καταφέρετε να τα φέρετε σε τέτοια κατάσταση για να μπορείτε να κάνετε τη δουλειά σας. Ξεχάστε το κουνγκ-φου που πρέπει να παίξετε με τον network-manager του Ubuntu Live-CD (που με περίσσιο θράσος σας αποκαλεί συνεχώς "Μίστερ Άντερσον") απλά και μόνο για να σηκώσετε το τοπικό σας δίκτυο. Ξεχάστε στο Ubuntu που πρέπει να κατεβάσετε θεμελιώδη πακέτα για τη δουλειά σας που δεν τα έχει από τη μάνα του (π.χ. mc-utf8, screen, cfdisk, rpcbind, nfs, samba κλπ.). Ξεχάστε στο Ubuntu που πρέπει να σηκώσετε μόνοι σας απαραίτητους δαίμονες (συνήθως για δίκτυο -> nfs, samba κλπ.). Ξεχάστε στο Ubuntu που δεν έχετε απ' την αρχή υποστήριξη ελληνικών και υποστήριξη Unicode.
Πάμε λοιπόν.
Καταρχήν, εγκαθιστούμε κάποια απαραίτητα πακέτα:
Κώδικας:
pacman -S aufs2
Άρα λοιπόν, πάμε στο pacman.conf μας και δηλώνουμε ΤΕΛΕΥΤΑΙΟ:
Ανάλογα με την αρχιτεκτονική μας:
για amd64
Κώδικας:
[larch5] Server = http://archlinuxgr.tiven.org/archlinux-live-cd/larch-5
Κώδικας:
[larch5] Server = ftp://ftp.berlios.de/pub/larch/larch5.3/i686
Κανονικά κάνουμε sync με τον pacman:
για amd64
Κώδικας:
update-all-repos amd64
Κώδικας:
update-all-repos x86
Μόνο για αυτή τη στιγμή θα πάμε στο pacman.conf μας και θα δηλώσουμε πρώτο-πρώτο (πανω-πάνω) το Larch repository.
Και αφού το κάνουμε, κανονικά:
Κώδικας:
pacman -S larch
Πάμε στο pacman.conf μας και επαναφέρουμε ΤΕΛΕΥΤΑΙΟ (κάτω-κάτω) το Larch repository.
Είμαστε τώρα έτοιμοι να φτιάξουμε το πρώτο μας Arch Live-CD.
Ας δούμε πώς:
Καταρχήν φτιάχνουμε ένα προσωρινό directory κάπου, σε ένα partition που να έχει αρκετό ελεύθερο χώρο (τουλάχιστο 4-6 GBytes).
Ας πούμε ότι φτιάχνουμε π.χ. το:
Κώδικας:
/mnt/larch-temp
Από κάτω του, φτιάχνουμε άλλα δύο directories:
Κώδικας:
build profiles
Κώδικας:
/opt/larch
Στο directory docs βρίσκεται και το documentation του Larch.
Μας ενδιαφέρει καί το directory profiles.
Ολόκληρα τα περιεχόμενά του τα αντιγράφουμε στο directory "profiles" κάτω από αυτό που φτιάξαμε προηγουμένως (που σημειώσαμε καί στο χαρτάκι μας):
π.χ. στο παράδειγμά μας:
Κώδικας:
/mnt/larch-temp/profiles
Πάμε λοιπόν σε ένα πραγματικό παράδειγμα:
Για να λειτουργήσει το παράδειγμά μας κάνουμε τις παρακάτω παραδοχές:
- υπάρχει ενεργός DHCP server στο LAN μας
Άρα λοιπόν ξεκινάμε.
Θα φτιάξουμε ένα δικό μας profile - ας το πούμε (δεν έχει σημασία πώς) "example" - και ας το βασίσουμε στο "mini2".
Άρα λοιπόν κάτω από το directory "/mnt/larch-temp/profiles" φτιάχνουμε ένα νέο directory "example" και εκεί μέσα αντιγράφουμε όλα τα περιεχόμενα του directory "/mnt/larch-temp/profiles/mini2".
Ας δούμε εδώ τί αλλαγές πρέπει να κάνουμε και τί κάνουν ένα-ένα τα αρχεία μέσα στο directory "example":
- Αρχείο locale.gen:
Κάνει ό,τι ακριβώς κάνει και το αντίστοιχο αρχείο στο κανονικό μας Arch.
Άρα λοιπόν πάμε και του βάζουμε κατά τα γνωστά:
Κώδικας:
# locales for larch (/etc/locale.gen) en_US.UTF-8 UTF-8 en_US ISO-8859-1 el_GR.UTF-8 UTF-8 el_GR ISO-8859-7 el_GR@euro ISO-8859-7
- Αρχείο addepacks:
Εδώ ορίζουμε ποιά πακέτα θέλουμε να περιέχει εγκατεστημένα το Live-CD μας. Μπορούμε να χρησιμοποιήσουμε οποιοδήποτε standard πακέτο Arch θέλουμε, και τα ονόματα είναι επακριβώς τα ίδια.
Άρα λοιπόν το διορθώνουμε και βάζουμε οπωσδήποτε:
Κώδικας:
# These are needed to build a live CD squashfs-tools initcpio_larch # You need a kernel. At the moment the only standard Arch kernel # which works (because of needing 'squashfs' and 'unionfs') is 'beyond'. #kernel26 is now in 'base' aufs2 # To eject a cd, also session saving cdrkit dvd+rw-tools # Highly recommended larchin #larch # Needed by the installer python # dialog is now in basepacks! diffutils # If using 'abs': subversion git cvs # Useful for use as installer, etc. ntfsprogs parted mdadm lvm2 hwdetect
Π.χ. συνήθως βάζω:
Κώδικας:
# generally useful tools which don't require X acpid openssh dosfstools lynx mc screen unzip zip fakeroot rpcbind nfs-utils samba tcptraceroute htop chkrootkit util-linux-ng lsof
Εδώ περιέχονται όσα πακέτα από το addedpacks ΔΕΝ θέλουμε να εγκατασταθούν.
Για το παράδειγμά μας, ας τα σχολιάσουμε όλα.
- Αρχείο rcconfx:
Αυτό αποτελεί το rc.conf του Live-CD μας.
Έχει επακριβώς την ίδια δομή - λειτουργία - κανόνες - συμπεριφορά με το γνωστό μας rc.conf.
Π.χ. ένα τυπικό setup θα μπορούσε να είναι:
Κώδικας:
# # patch file for /etc/rc.conf # LOCALE="en_US.utf8" HARDWARECLOCK="localtime" TIMEZONE="Europe/Athens" KEYMAP="us" CONSOLEFONT=iso07u-16.psfu.gz CONSOLEMAP= USECOLOR="yes" MODULES=(powernow-k8 !r8169 !sk98lin !skge) HOSTNAME="liveexample" USELVM="no" eth0="dhcp" DAEMONS=(syslog-ng network rpcbind netfs crond sshd acpid)
Φτιάξτε ανάλογα με τις ανάγκες σας δηλαδή:
- σωστό CPU power-throttling module (αν υπάρχει)
- σωστά ethernet modules με ενεργό το πρώτο, και σε όλα υπόλοιπα θαυμαστικό
- σωστοί δαίμονες (πολύ προσοχή στα παπάκια) και με τη σειρά που απαιτούνται
Επίσης έχετε υπόψη σας ότι ανάλογα με τις ρυθμίσεις σας θα χρειαστεί να ρυθμίσετε και κάποια άλλα αρχεία παρακάτω (π.χ. conf για hosts, nfs, samba, sshd, κλπ.)
- Αρχείο cd-root/isolinux/isolinux.cfg
Αυτό αποτελεί το menu.lst του grub για το Live-CD μας.
Εδώ μπορείτε να ορίσετε τις επιλογές boot, ποιά θα είναι default κλπ.
Πάλι ανάλογα με τις ανάγκες σας.
Π.χ. συνήθως βάζω πρώτη και default επιλογή να αντιγραφούν όλα στη RAM (copy-to-ram -> είναι η "linux-c2r").
ΠΡΟΣΟΧΗ εδώ:
Αν κάνετε κάτι τέτοιο σιγουρευτείτε ότι:
- Έχετε αρκετή RAM (τουλάχιστο 1GByte).
- Έχετε swap partition κάπου στους δίσκους σας.
Άρα ας πούμε για το παράδειγμά μας:
Κώδικας:
default vesamenu.c32 prompt 0 timeout 50 MENU BACKGROUND bkgd.jpg MENU TITLE larch live CD with 'example' profile label linux-c2r MENU LABEL larch-example copy-to-ram (also activates swap) kernel vmlinuz append initrd=larch.img c2r label linux MENU LABEL Default: no swap, no copy-to-ram kernel vmlinuz append initrd=larch.img # or with video mode for beyond kernel: #append initrd=larch.img video=vesafb:ywrap,mtrr,800x600@60 label linux-swap MENU LABEL larch-example with swap kernel vmlinuz append initrd=larch.img swap label memtest MENU LABEL Memory tester kernel memtest
Εδώ μέσα μας προσφέρεται τρομερή ευελιξία.
Αυτό αποτελεί ουσιαστικά το εικονικό "/" directory του καινούριου Live-CD που θα φτιάξουμε.
Δηλαδή, οποιοδήποτε αρχείο ή directory βάλουμε εδώ μέσα, θα συμπεριληφθεί στο Live-CD μας και ΠΡΟΣΟΧΗ επιπλέον, όσα αρχεία βάλουμε εδώ μέσα, αυτόματα σε αυτά έχει πρόσβαση μόνο ο root.
Όπως καταλαβαίνετε, αυτό μας επιτρέπει να συμπεριλάβουμε σχεδόν όποιο conf αρχείο θέλουμε, φέρνοντας έτσι το Live-CD απολύτως στα μέτρα μας.
ΠΡΟΣΟΧΗ πολύ εδώ.
Δεν αρκεί τα directories και αρχεία από δω κάτω, να είναι στη σωστή θέση και με σωστό περιεχόμενο.
Θα πρέπει να έχουν και τα σωστά ownership-permissions, ένα-προς-ένα, και αυτά θα πρέπει εσείς να τα φτιάξετε με το χέρι.
Αν δεν υπάρχουν στα παρακάτω οι κατάλογοι ή τα αρχεία θα πρέπει να τα φτιάξουμε εμείς.
Άρα λοιπόν, πράγματα που πρέπει να πειράξουμε-διορθώσουμε εκεί μέσα:
Πρώτα τα υποχρεωτικά:
Στο etc/ssh/sshd_config:
Κώδικας:
Port 22 Protocol 2 PermitRootLogin yes StrictModes yes RSAAuthentication yes PubkeyAuthentication yes RhostsRSAAuthentication no HostbasedAuthentication no PermitEmptyPasswords yes ChallengeResponseAuthentication no UsePAM no UsePrivilegeSeparation yes Subsystem sftp /usr/lib/ssh/sftp-server
Ποτέ μα ποτέ μην φτιάξετε τέτοιο sshd_config για το κανονικό σας σύστημα. Είναι παντελώς ανασφαλές διότι επιτρέπει root ssh login με κενό password και το password του root στο Live-CD θα είναι όντως κενό.
Επίσης ποτέ μα ποτέ μην βάλετε αυτό το Live-CD σε μηχανάκι στο LAN σας αν δεν είστε σίγουροι ότι είναι επαρκώς προστατευμένο από το WAN (π.χ. aDSL ethernet modem-router με SPI firewall & NAT ή μηχανάκι UNIX με iptables σηκωμένο), και ότι στο LAN σας δεν υπάρχουν συνδεδεμένοι κακόβουλοι χρήστες.
Στο etc/hosts:
Εδώ φροντίζουμε να συμπεριλάβουμε όλα τα hostnames που έχουμε στο LAN μας για δική μας ευκολία.
Άρα στο παράδειγμά μας:
Κώδικας:
192.168.1.7 neo 192.168.1.19 router 192.168.1.21 kitsos 192.168.1.8 theitsa
Κώδικας:
ALL: 127.0.0.1 sshd: ALL
Εδώ αρκούν τα repos core, extra, & community με έναν καλό mirror "καρφωτό" π.χ.:
για amd64
Κώδικας:
[options] LogFile = /var/log/pacman.log NoUpgrade = etc/passwd etc/group etc/shadow etc/sudoers NoUpgrade = etc/fstab etc/raidtab etc/ld.so.conf NoUpgrade = etc/rc.conf etc/rc.local NoUpgrade = etc/modprobe.conf etc/modules.conf NoUpgrade = etc/lilo.conf boot/grub/menu.lst HoldPkg = pacman glibc SyncFirst = pacman CleanMethod = KeepCurrent #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u [core] Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/core/os/x86_64 [extra] Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/extra/os/x86_64 [community] Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/community/os/x86_64
Κώδικας:
[options] LogFile = /var/log/pacman.log NoUpgrade = etc/passwd etc/group etc/shadow etc/sudoers NoUpgrade = etc/fstab etc/raidtab etc/ld.so.conf NoUpgrade = etc/rc.conf etc/rc.local NoUpgrade = etc/modprobe.conf etc/modules.conf NoUpgrade = etc/lilo.conf boot/grub/menu.lst HoldPkg = pacman glibc SyncFirst = pacman CleanMethod = KeepCurrent #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u [core] Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/core/os/i686 [extra] Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/extra/os/i686 [community] Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/community/os/i686
Στο etc/abs/abs.conf:
Να ενεργοποιήσουμε όλα τα abs branches:
Κώδικας:
SUPFILES=(core extra community testing unstable)
Εδώ κανονικά, μπορούμε να ορίσουμε:
- τη μορφή του bash prompt (π.χ. χρωματάκια gentoo)
- aliases
κλπ.
Τέλος θυμηθείτε, αν χρειάζεστε:
- nfs imports
να είναι δηλωμένοι στο rcconfx και με τη σωστή σειρά και παπάκια οι δαίμονες network rpcbind netfs
- nfs exports
να είναι δηλωμένοι στο rcconfx και με τη σωστή σειρά και παπάκια οι δαίμονες network rpcbind netfs nfs-common nfs-server
να φτιάξετε σωστό αρχείο etc/exports
- samba imports
να είναι δηλωμένοι στο rcconfx και με τη σωστή σειρά και παπάκια οι δαίμονες network rpcbind netfs samba
να φτιάξετε σωστό αρχείο etc/samba/smb.conf που να έχει τουλάχιστο σωστό [global] τμήμα
- samba imports
να είναι δηλωμένοι στο rcconfx και με τη σωστή σειρά και παπάκια οι δαίμονες network rpcbind netfs samba
να φτιάξετε σωστό αρχείο etc/samba/smb.conf που να έχει πέρα από σωστό [global] τμήμα και σωστά τμήματα για τα exported directories
Είμαστε έτοιμοι.
Πάμε τώρα να το χτίσουμε:
Για να χτιστεί ένα Live-CD με βάση ένα συγκεκριμένο profile απαιτείται να δώσουμε:
Κώδικας:
mklarch -p <πλήρες-directory-του-profile> <πλήρες-directory-που-χτίζουμε>
Άρα για το παράδειγμά μας:
Κώδικας:
cd /mnt/larch-temp/profiles/example mklarch -p /mnt/larch-temp/profiles/example /mnt/larch-temp/build
Ύστερα από λίγα λεπτά, θα φτιαχτεί ένα έτοιμο ISO:
Κώδικας:
/mnt/larch-temp/build/.larch/mylivecd.iso
Συνιστάται να χρησιμοποιούμε πάντα DVD+ διότι κοστίζουν το ίδιο, αντέχουν περισσότερο, γράφονται γρηγορότερα, και κυρίως, διαβάζονται γρηγορότερα.
Επίσης για όσο κάνουμε δοκιμές, μπορούμε να χρησιμοποιούμε +RW μέσα. Όταν δοκιμάσουμε το αποτέλεσμα και είμαστε σίγουροι, μπορούμε να το κάψουμε μόνιμα σε ένα +R.
Αποθηκεύστε κάπου ασφαλώς το ISO που προέκυψε.
Πλέον μπορείτε να σβήσετε όλα τα περιεχόμενα του directory "/mnt/larch-temp/build".
Μόλις αποκτήσαμε ένα πανάλαφρο - ταχύτατο - υπερσύγχρονο Linux Live-CD, κομμένο και ραμμένο απολύτως για τις ανάγκες μας.
Να ευχαριστήσω εδώ ιδιαιτέρως τους Tiven & Flamelab για την αναντικατάσταση πρωτοβουλία τους και συνδρομή τους για τη δημιουργία αυτού του larch repository.
Μήνυμα