Archiso (Ελληνικά)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale-modified.pngH μετάφραση του άρθρου ή τμήματος αυτού, δεν αντικατοπτρίζει το αρχικό κείμενο.Tango-preferences-desktop-locale-modified.png

Αιτία: Last updated in 2012 (194650), out of sync with English page (Discuss)

Το Archiso είναι μια μικρή συλλογή από δέσμες εντολών του κελύφους bash (bash scripts) οι οποίες είναι ικανές να παράγουν ένα πλήρως λειτουργικό live CD βασισμένο στο Arch Linux καθώς επίσης και εικόνες USB. Είναι ένα εργαλείο γενικού σκοπού, οπότε θα μπορούσε να χρησιμοποιηθεί ώστε να παράγει οτιδήποτε ξεκινώντας από συστήματα αποκατάστασης/ανάκτησης, δίσκους εγκατάστασης, έως live συστήματα CD/DVD/USB ειδικού σκοπού, και ποιός ξέρει τι άλλο. Με δύο λόγια, εάν το αποτέλεσμα περιλαμβάνει το Arch, μπορεί να το κάνει. Η καρδιά και η ψυχή του Archiso είναι το mkarchiso. Όλες οι πιθανές επιλογές του είναι καταγεγραμμένες στις οδηγίες χρήσης του, οπότε η κατευθείαν χρήση του δεν θα καλυφθεί εδώ. Αντιθέτως, το άρθρο αυτό θα λειτουργήσει ως οδηγός δημιουργίας του δικού σας live μέσου στο άψε σβήσε!

Προετοιμασία

Πριν ξεκινήσουμε, πρέπει να έχουμε στην κατοχή μας τις δέσμες ενεργειών του archiso οι οποίες φέρουν εις πέρας τον όγκο της εργασίας για μας. Μπορείτε να αποκτήσετε το archiso από το Git (συνιστάται) ή από το archiso-gitAUR. Επίσης χρειαζόμαστε κάποια πακέτα στα οποία βασίζεται το archiso; Οι ακόλουθες εντολές το φροντίζουν αυτό για μας:

# pacman -S make git libisoburn squashfs-tools rsync --needed
# git clone https://gitlab.archlinux.org/archlinux/archiso.git
# make -C archiso/archiso install

Δημιουργήστε έναν κατάλογο εργασίας, εκεί θα λαμβάνουν χώρα όλες οι τροποποιήσεις της live εικόνας: ~/archlive είναι μια χαρά.

$ mkdir ~/archlive

Οι δέσμες ενεργειών του archiso που εγκαταστάθηκαν στο σύστημα σας νωρίτερα τώρα πρέπει να αντιγραφούν στο καινούριο κατάλογο εργασίας που δημιουργήσαμε. Το Archiso φέρει δυο "προφιλ": releng, και baseline. Εάν θέλετε να δημιουργήσετε μια πλήρως προσαρμοσμένη live έκδοση του Arch Linux, με όλα τα αγαπημένα σας προγράμματα και τις ρυθμίσεις προ-εγκατεστημένα, χρησιμοποιήστε το "releng". Εάν απλά θέλετε να δημιουργήσετε ένα βασικό μέσο, χωρίς προ-εγκατεστημένα πακέτα και ελάχιστες ρυθμίσεις, τότε χρησιμοποιήστε το "baseline".

Ανάλογα με τις ανάγκες σας, εκτελέστε τα ακόλουθα, αντικαθιστώντας το 'PROFILE' με το releng ή baseline.

# cp -r /usr/share/archiso/configs/PROFILE/ ~/archlive

Αν χρησιμοποιείτε το προφίλ 'releng' ώστε να δημιουργήσετε μια πλήρως προσαρμοσμένη εικόνα, μπορείτε να προχωρήσετε στο τμήμα Archiso#Profile structure.

Αν χρησιμοποιείτε το προφίλ 'baseline' ώστε να δημιουργήσετε μια βασική εικόνα εγκατάστασης, τότε δεν θα χρειαστεί να κάνετε κάποιες προσαρμογές και μπορείτε να προχωρήσετε στο τμήμα Archiso#Build the ISO

Προετοιμασία (χειροκίνητος τρόπος)

Εάν έχετε ήδη ολοκληρώσει την διαδικασία της προετοιμασίας ακολουθώντας τον 'αυτόματο' τρόπο, δεν χρειάζεται να διαβάσετε αυτό το τμήμα. Εγκατάσταση βασικού συστήματος αρχείων

# mkarchiso init

Εγκατάσταση περισσότερων πακέτων (προαιρετικό)

# mkarchiso -p "pkg1 pkg2 pkg3 ... pkgN" install

Σε αυτό το σημείο, προσαρμόστε οτιδήποτε επιθυμείτε στην root-image, και αποσυνδεθείτε μόλις τελειώσετε.

# mkarchiso-r "bash" run

Εγκατάσταση εικόνας initramfs. Αντιγράψτε τα απαιτούμενα hooks στην root-image

# cp /lib/initcpio/hooks/archiso work/root-image/lib/initcpio/hooks
# cp /lib/initcpio/install/archiso work/root-image/lib/initcpio/install

Δημιουργήστε ένα αρχείο ρυθμίσεων για το mkinitcpio work/root-image/etc/mkinitcpio-archiso.conf

HOOKS="base udev archiso pata scsi sata usb fw filesystems usbinput"
COMPRESSION="xz"

Δημιουργήστε ένα κατάλογο με όνομα την αρχιτεκτονική του υπολογιστή σας, και παράγετε την εικόνα initramfs:

# mkdir work/root-image/boot/i686
# mkarchiso -r "mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/i686/archiso.img" run

μετακινήστε τα kernel/initramfs στον κατάλογο boot/

# mkdir -p work/iso/arch/boot/i686
# mv work/root-image/boot/vmlinuz-linux work/iso/arch/boot/i686/vmlinuz
# mv work/root-image/boot/i686/archiso.img work/iso/arch/boot/i686/archiso.img

Εγκατάσταση syslinux

Δημιουργήστε έναν κατάλογο.

 # mkdir -p work/iso/arch/boot/syslinux

Δημιουργήστε το αρχείο work/iso/arch/boot/syslinux/syslinux.cfg.

DEFAULT menu.c32
PROMPT 0
MENU TITLE Arch Linux
TIMEOUT 300

LABEL arch
MENU LABEL Arch Linux
LINUX /arch/boot/i686/vmlinuz
INITRD /arch/boot/i686/archiso.img
APPEND archisolabel=MY_ARCH

ONTIMEOUT arch

Αντγράψτε το αρχείο menu.c32 καθώς είναι απαραίτητο για τις προηγούμενες ρυθμίσεις.

# cp work/root-image/usr/lib/syslinux/menu.c32 work/iso/arch/boot/syslinux/

Εγκατάσταση isolinux (προαιρετικό, χρειάζεται μόνο στην περίπτωση δημιουργίας εκκινήσιμης εικόνας iso)

# mkdir work/iso/isolinux
# cp work/root-image/usr/lib/syslinux/isolinux.bin work/iso/isolinux/
# cp work/root-image/usr/lib/syslinux/isohdpfx.bin work/iso/isolinux/

Δημιουργήστε το αρχείο work/iso/isolinux/isolinux.cfg

DEFAULT loadconfig

LABEL loadconfig
  CONFIG /arch/boot/syslinux/syslinux.cfg
  APPEND /arch/boot/syslinux/

Δημιουργήστε το αρχείο work/iso/arch/aitab.

# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
root-image      /                     i686     xz          ext4       50%

Δημιουργήστε όλες τις εικόνες συστημάτων αρχείων που ορίζονται στο αρχείο aitab (.fs .fs.sfs .sfs)

# mkarchiso prepare

Παράγετε μια εικόνα ISO 9660 εφοδιασμένη με την εικόνα εκκίνησης "El Torito" (προαιρετικό)

# mkarchiso -L "MY_ARCH" iso "my-arch.iso"

Παραμετροποίηση του live μέσου

Σε αυτό το τμήμα περιγράφεται αναλυτικά η διαδικασία παραμετροποίησης της εικόνας την οποία πρόκειται να δημιουργήσετε, επιτρέποντας σας να ορίσετε τα πακέτα και τις ρυθμίσεις που επιθυμείτε να περιέχονται στην live εικόνα.

Μεταβείτε στον κατάλογο που δημιουργήσαμε νωρίτερα (~/archlive/releng/ αν ακολουθήσατε αυτόν τον οδηγό), θα δείτε μια πλειάδα αρχείων και καταλόγων, θα ασχοληθούμε όμως μόνο με κάποιους εξ' αυτών, κυρίως: packages.* - σε αυτό το σημείο μπορείτε να ορίσετε, ένα προς ένα, τα πακέτα που επιθυμείτε να εγκαταστήσετε, και ο κατάλογος root-image - αυτός ο κατάλογος λειτουργεί ως ένα επικαλύπτον στρώμα μέσα στο οποίο θα κάνετε τις όποιες προσαρμογές.

Εγκατάσταση πακέτων

Θα χρειαστεί να δημιουργήσετε μια λίστα πακέτων τα οποία επιθυμείτε να εγκατασταθούν στο σύστημα του live CD σας. Ένα αρχείο της μορφής ένα πακέτο ανά γραμμή είναι κατάλληλο για την επίτευξη του στόχου. Ο τρόπος αυτός είναι ιδανικός για live CDs ειδικού σκοπού, απλά ορίστε τα πακέτα που επιθυμείτε και δημιουργείστε την εικόνα. Επεξεργαστείτε τα αρχεία packages.i686, ή packages.x86_64 ανάλογα με το αν επιθυμείτε να δημιουργήσετε μια εικόνα 32, ή 64 bit.

Συμβουλή: Μπορείτε ακόμη να δημιουργήσετε ένα custom local repository (προσαρμοσμένo τοπικό σύστημα εναπόθεσης πακέτων) με σκοπό την προετοιμασία προσαρμοσμένων πακέτων ή πακέτων που παρέχονται από τα AUR/ABS. απλά προσθέστε το εν λόγω σύστημα στην πρώτη θέση (για μέγιστη προτεραιότητα) του αρχείου pacman.conf του συστήματος που χρησιμοποιείτε ως βάση για την δημιουργία του έργου σας και είστε έτοιμοι!

Προσθήκη χρήστη

Υπάρχουν δύο μέθοδοι για την δημιουργία ενός χρήστη: προσθέτοντας την αντίστοιχη εντολή useradd στο αρχείο rc.local, ή αντιγράφοντας και αντικαθιστώντας (και τροποποιώντας) τα αρχεία /etc/shadow, /etc/passwd, και /etc/group. Η τελευταία μέθοδος θα συζητηθεί σε αυτό το τμήμα.

Αντιγράψτε τα αρχεία /etc/shadow, /etc/passwd, και /etc/group απο το τοπικό σύστημα στον υπο-κατάλογο /etc/ του καταλόγου εργασίας (ο οποίος θα έπρεπε να είναι ο ~/archlive/releng/root-image/etc) π.χ.

# cp /etc/{shadow,passwd,group} ~/archlive/releng/root-image/etc/
Προσοχή: Το αρχείο passwd θα περιέχει το κρυπτογραφημένο συνθηματικό σας. Σας συνιστώ πρίν την αντιγραφή του αρχείου passwd, να αλλάξετε το συνθηματικό του τοπικού λογαριασμού χρήστη σας σε εκείνο το οποίο επιθυμείτε να χρησιμοποιεί ο χρήστης του live μέσου, εν συνεχεία να αντιγράψετε το αρχείο passwd στην αντίστοιχη θέση του καταλόγου εργασίας, και τέλος να αλλάξετε ξανά το συνθηματικό σας.

Προσθήκη αρχείων στην εικόνα

Σημείωση: Πρέπει να είστε ο χρήστης root για να το πετύχετε αυτό, μην αλλάξετε τα δικαιώματα ιδιοκτησίας κανενός εκ των αρχείων που αντιγράφετε, τα πάντα μέσα στον κατάλογο root-image πρέπει να είναι ιδιοκτησία του χρήστη root. Οι κατάλληλοι κανόνες ιδιοκτησίας θα ξεκαθαριστούν σύντομα.

Ο κατάλογος root-image λειτουργεί ως ένα επικαλύπτον στρώμα, σκεφτείτε τον σαν τον ριζικό κατάλογο '/' στο τρέχον σύστημα σας, οπότε οποιαδήποτε αρχεία τοποθετήσετε μέσα σε αυτόν τον κατάλογο θα αντιγραφεί κατά την εκκίνηση του συστήματος.

Εάν λοιπόν έχετε μία ομάδα δεσμών ενεργειών για το iptables στο συστημά σας τις οποίες θέλετε να χρησιμοποιήσετε στην live εικόνα σας, αντιγράψτε τις με τον ακόλουθο τρόπο:

# cp -r /etc/iptables ~/archlive/releng/root-image/etc

Η τοποθέτηση αρχείων στον αρχικό κατάλογο (εκκίνησης) χρηστών είναι λίγο διαφορετική διαδικασία. Μην τα τοποθετήσετε στον κατάλογο root-image/home, αντ'αυτού δημιουργήστε έναν υπο-κατάλογο skel στον root-image/ και τοποθετήστε τα εκεί. Εν συνεχεία θα προσθέσουμε τις αντίστοιχες εντολές στο αρχείο rc.local που θα δημιουργήσουμε στη συνέχεια ώστε να αντιγραφούν κατά την εκκίνηση και να ορίσουμε τα δικαιώματα χρήστη.

Καταρχήν, δημιουργήστε τον κατάλογο skel, αφού βεβαιωθείτε ότι βρίσκεστε μέσα στον κατάλογο (εάν δουλεύετε εκεί):

# cd ~/archlive/releng/root-image/etc && mkdir skel

Τώρα αντιγράψτε τα αρχεία που προρίζονται για τον 'αρχικό' κατάλογο χρήστη στον κατάλογο skel, και πάλι ενεργώντας ως ο χρήστης root! π.χ για το αρχείο .bashrc.

# cp ~/.bashrc ~/archlive/releng/root-image/etc/skel/

Μέσα στον κατάλογο root-image/etc/, δημιουργήστε το αρχείο rc.local, και βεβαιωθείτε ότι το ορίσατε ως εκτελέσιμο:

# cd ~/archlive/releng/root-image/etc && touch rc.local && chmod +x rc.local

Τώρα προσθέστε τα ακόλουθα στο αρχείο rc.local, αντικαθιστώντας τον όρο 'youruser' με το όνομα χρήστη που ορίσατε νωρίτερα.

# Δημιουργήστε τον κατάλογο χρήστη για την live συνεδρία
if [ ! -d /home/youruser ]; then
    mkdir /home/youruser && chown youruser /home/youruser
fi
# αντιγράψτε τα αρχεία στον αρχικό κατάλογο χρήστη
su -c "cp -r /etc/skel/.[a-zA-Z0-9]* /home/youruser/" youruser

aitab

Το υπάρχον/προκαθορισμένο αρχείο πρέπει να λειτουργήσει μια χαρά, οπότε δεν θα έπρεπε να το τροποποιήσετε.

Το αρχείο aitab περιέχει πληροφορίες που αφορούν τις εικόνες των συστημάτων αρχείων τα οποία πρέπει να δημιουργηθούν απο το mkarchiso και να προσαρτηθούν στο σύστημα στο στάδιο του initramfs απο το archiso hook. Αποτελείται απο κάποια πεδία τα οποία ορίζουν την συμπεριφορά των εικόνων.

# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
<img>
Το όνομα εικόνας χωρίς την επέκταση (.fs .fs.sfs .sfs).
<mnt>
Σημείο προσάρτησης.
<arch>
Αρχιτεκτονική { i686 | x86_64 | any }.
<sfs_comp>
Τύπος συμπίεςσης SquashFS { gzip | lzo | xz }. Η ειδική τιμή "none" υποδηλώνει την μη χρήση του SquashFS.
<fs_type>
Ορισμός του τύπου του συστήματος αρχείων της εικόνας { ext4 | ext3 | ext2 | xfs }. Η ειδική τιμή "none" υποδηλώνει την μη χρήση ενός συστήματος αρχείων. Σε αυτή την περίπτωση όλα τα αρχεία ενσωματώνοντε κατευθείαν στο σύστημα αρχείων SquashFS.
<fs_size>
Η απόλυτη τιμή του μεγέθους της εικόνας του συστήματος αρχείων σε MiB (παράδειγμα: 100, 1000, 4096, κτλ) Μια σχετική τιμή του μεγέθους του ελέυθερου χώρου του συστήματος αρχείων [επι τοις εκατό] {1%..99%} (παράδειγμα 50%, 10%, 7%). ο αριθμός αυτός αποτελεί απλά μια εκτίμηση, και υπολογίζεται με έναν απλό τρόπο. Ο χώρος που χρησιμοποιήται + 10% (εκτιμώμενος για χρήση απο τα μετα-δεδομενα) + ο επιθυμητός χώρος%
Σημείωση: Μερικοί συνδυασμοί είναι μη αποδεκτοί. Επί παραδείγματι ο ορισμός της τιμής none στα πεδία sfs_comp και fs_type

Boot Loader

Το υπάρχον/προκαθορισμένο αρχείο πρέπει να λειτουργήσει μια χαρά, οπότε δεν θα έπρεπε να το τροποποιήσετε.

Λόγω της αρθρωτής φύσης του isolinux, μπορείτε να χρησιμοποιήσετε μια πληθώρα πρόσθετων μιας και όλα τα αρχεία *.c32 αντιγράφονται και είναι διαθέσιμα σε εσάς. Συμβουλευτείτε το official syslinux site και το archiso git repo. Χρησιμοποιώντας τα πρόσθετα, είναι δυνατόν να δημιουργήσετε οπτικά ελκυστικά και σύνθετα μενού. Συμβουλευτείτε εδώ.

Τελειώνοντας την root-image

Κάποιες συμβουλές οι οποίες δεν θα καλυφuούν από το παρόν άρθρο καθώς υπάρχουν ήδη άλλα άρθρα σε αυτό το wiki τα οποία πραγματεύονται τα θέματα αυτά, μπορείτε όμως ελεύθερα να τα προσθέσετε εδώ.

  • Ρυθμίστε το αρχείο inittab ώστε να εκκινείτε κατευθείαν στο γραφικό περιβάλλον X
  • Ρυθμίστε το αρχείο hosts
  • Ρυθμίστε το αρχείο rc.conf (δεν απαιτούνται ειδικά αρθρώματα σε αυτό το σημείο)
  • Ρυθμίστε το αρχείο sudoers
  • Ρυθμίστε το αρχείο rc.local
  • Συμπεριλάβετε περεταίρω artworks στο μέσο
  • Συμπεριλάβετε περεταίρω εκτελέσιμο υλικό στον κατάλογο opt/

Δημιουργία του ISO

Πλέον είστε έτοιμοι να μετατρέψετε τα αρχεία σας σε.iso το οποίο μπορείτε εν συνεχεία να γράψετε σε CD ή USB: Μέσα στον κατάλογο εργασίας, ~/archlive/releng, ή ~/archlive/baseline, εκτελέστε:

# ./build.sh -v build single netinstall

Μπορείτε να αντικαταστήσετε τον όρο 'netinstall' με τον όρο 'core' αν το επιθυμείτε; όμως, αυτό θα έχει σαν αποτέλεσμα την ενσωμάτωση όλων των πακέτων τα οποία ο pacman μεταφορτώνει στο αρχείο iso, κάτι το οποίο θα αυξήσει υπερβολικά το μεγεθός του.

Η δέσμη ενεργειών θα μεταφορτώσει και θα εγκαταστήσει τα πακέτα που ορίσατε στον κατάλογο work/*/root-image, θα δημιουργήσει τον πυρήνα και τις εικόνες init, θα εφαρμώσει τις προσαρμογές σας και τέλος θα δημιουργήσει το αρχείο iso στον κατάλογο out/.

Τώρα μπορείτε να αντιγράψετε το αρχείο iso με την εντολή dd σε ένα USB, για παράδειγμα:

# dd if=~/archlive/releng/out/*.iso of=/dev/sdx

Θα πρέπει να προσαρμόσετε την εντολή αναλόγως, και να βεβαιωθείτε ότι επιλέξατε το σωστό αρχείο εξόδου! Ένα μικρό λάθος θα καταστρέψει τα δεδομένα στον σκληρό σας δίσκο.

Δείτε επίσης