Καλησπέρα.
*** Ακολουθεί κατεβατό ***
Χρόνια τώρα όλο λέω θα γράψω κάποια πράγματα για το NetBSD είτε εδώ είτε στο blog μου, πιο πολύ για να ανατρέχω εγώ αν ξεχάσω κάτι αλλά και για όσους θέλουν να τα διαβάσουν αλλά όλο το αναβάλλω.
Τώρα που γίνεται αυτός ο ντόρος με τον systemd διαβάζω πολλά μηνύματα και εδώ και σε άλλα φόρα με κόσμο να έχει τσατιστεί με κάποιους στην κοινότητα του linux και να σκέφτεται να μεταβεί σε FreeBSD οπότε μου ξύπνησε και πάλι η ιδέα να γράψω για το NetBSD.
[Περιγραφή του NetBSD και rant]
Spoiler:
Ένα πράγμα που με τσάτιζε πάντα ήταν η κακή προώθηση που γινόταν στο NetBSD από το foundation και γενικά τους devs του. Εντάξει καταλαβαίνω ότι υπάρχει κόσμος που δεν γνωρίζει καν ότι υπάρχουν τα *BSD (εδώ πολύς κόσμος δεν γνωρίζει το λίνουξ και ότι υπάρχει κάτι πέρα από τα windows) αλλά τα άτομα του FreeBSD (και του PCBSD) προσπαθούν να προωθήσουν το λειτουργικό και υπάρχει πολύς κόσμος που όχι μόνο έχει ακούσει για αυτό αλλά το έχει στήσει και σε κάποιο VM και το δουλεύει.
Όποιος ακούσει για τα υπόλοιπα 2 μεγάλα BSD και προσπαθήσει να μάθει κάτι για αυτά θα διαβάσει σίγουρα τα εξής:
* FreeBSD εστιάζει στις καλύτερες δυνατές επιδόσεις.
* OpenBSD εστιάζει στην καλύτερη δυνατή ασφάλεια.
* NetBSD εστιάζει στη μεγαλύτερη δυνατή φορητότητα.
Αυτό ο τρόπος λανσαρίσματος κατ εμέ είναι τεράστιο λάθος της πλευράς του NetBSD γιατί διώχνει κόσμο. Όποιος διαβάζει το παραπάνω θα πάει κατευθείαν σε Free χωρίς δεύτερη σκέψη (και όχι άδικα μια και παρέχει τέλεια υποστήριξη ZFS, nvidia binary οδηγό, μεγάλο αριθμό ports, κτλ). Ακόμη και το Open έχει το κοινό του γιατί πολλοί αρχίζουν να δίνουν σημασία στην ασφάλεια (ειδικά μετά από όσα γράφτηκαν από τον Snowden) και τους αρέσει που οι devs του Open εστιάζουν στον καθαρό κώδικα. Στο Net όμως δεν βλέπει κανένα λόγο να πάει. Το μόνο θετικό που διαβάζει στις περισσότερες κριτικές είναι ότι θα μάθεις το λειτουργικό μια φορά και θα δουλεύει με τον ίδιο τρόπο και σε x86 και σε sparc και παντού αλλά ποιος έχει τέτοια μηχανήματα οπότε δεν κερδίζει τίποτα σε σχέση με τα υπόλοιπα δύο.
Αυτό που δεν γίνεται γνωστό είναι ότι το Net έχει συμβάλει πάρα πολύ στην ανάπτυξη όλων των BSD. Παλαιότερα, το Net ήταν ίσως το πιο τεχνολογικά ανεπτυγμένο και ένας μεγάλος αριθμός υποδομών που χρησιμοποιούνταν από όλα τα BSD, είχε αναπτυχθεί στο Net. Για παράδειγμα, πριν κάμποσα χρόνια η usb stack του Free δεν ήταν καθόλου καλή και ακόμη και ένα απλό πράγμα όπως ένα flashάκι δεν έπαιζε απροβλημάτιστα. Έτσι ενσωμάτωσαν για κάποιο διάστημα αυτήν του Net, το οποίο τους έδωσε το χρόνο να αναπτύξουν από την αρχή μια πολύ καλή usb stack. Άλλο παράδειγμα είναι η υποδομή rcorder των initscripts η οποία αναπτύχθηκε στο Net και ενσωματώθηκε και από άλλα BSD. Άλλη μια καινοτομία ήταν ότι το Net ήταν το μόνο που μπορούσε να εγκατασταθεί σε επεκταμένη κατάτμηση. Επίσης το Net έχει από τις πιο γρήγορες networking stack και όποτε κάποιο πανεπιστήμιο ή δίκτυο κορμού ενσωμάτωνε μια νέα τεχνολογία και γίνονταν δοκιμές συνήθως το NetBSD έπιανε την μεγαλύτερη ταχύτητα.
Σημειωτέον ότι τα παραπάνω δεν τα αναφέρω επικριτικά. Η κοινότητα των *BSD έχει μακρά ιστορία συνεργασίας και ενσωμάτωσης κώδικα από το ένα στο άλλο, το οποίο είναι πολύ καλό γιατί επωφελούνται όλοι και δεν σπαταλούνται ώρες να αναπτυχθεί ξανά το ίδιο πράγμα. Το Net για παράδειγμα έχει πάρει την KMS υποδομή για τις κάρτες γραφικών η οποία έχει αναπτυχθεί από το Open. Τα ανέφερα απλά σαν παράδειγμα για να δείξω ότι το Net έχει προσφέρει, αντίθετα με την αντίληψη μερικών ότι είναι ένα παρωχημένο λειτουργικό χωρίς κανένα σκοπό και με μοναδικό του ατού την portability.
Πάντα το Net είχε λίγο κόσμο αλλά ήταν γενικά ο κόσμος των BSD μικρός. Με τους γρήγορους επεξεργαστές όμως και την εύκολη virtualization μπορούσαμε όλοι να δοκιμάσουμε εύκολα όποιο λειτουργικό θέλουμε. Έτσι σιγά σιγά άρχισαν όλο και περισσότεροι χρήστες να δοκιμάζουν *BSD. Λόγω του κακού αυτού λανσαρίσματος όμως, το Net δεν προσέλκυσε και τόσους πολλούς νέους χρήστες και μάλιστα έχασε και κάποιους σε άλλα BSD λόγω αργοπορημένης ανάπτυξης (πχ ακόμη και τώρα δεν υπάρχει καλή υποστήριξη για ZFS). Και έτσι γίνεται ένας μύλος όπου λόγω αργής ανάπτυξης δεν προσελκύει κόσμο και λόγω έλλειψης κόσμου υπάρχει αργή ανάπτυξη.
Ακόμη και σήμερα όμως που δεν είναι στα καλύτερά του, συνεχίζει να παρέχει κάποιες καινοτομίες. Έχει υποστήριξη για τον LVM το οποίο εκτός ότι επιτρέπει την ανάγνωση δίσκων που έχουν προέλθει από κάποιο linux σύστημα, παρέχει μια ευελιξία σε σχέση με τις στατικές κατατμήσεις μέχρι να υλοποιηθεί το ZFS (στο Free υπάρχει εδώ και καιρό καταπληκτική υποστήριξη για ZFS). Επίσης είναι από τα πρώτα BSD που υποστήριξε εκκίνηση από GPT (και το Free έχει) και κατά συνέπεια μπορεί να εγκατασταθεί ακόμη και σε νέα μηχανήματα με UEFI (υπάρχει UEFI boot loader αλλά ακόμη δεν έχει ενσωματωθεί στο -current οπότε για την ώρα πρέπει να γίνει εγκατάσταση σε κατάσταση συμβατότητας και μετά να χρησιμοποιηθεί κάποιος άλλος bootloader) ενώ πχ το Open δεν μπορεί ακόμη να δουλέψει GPT οπότε μπορεί να εκκινήσει μόνο από τον κλασικό MBR άρα μόνο σε κατάσταση συμβατότητας.
Επίσης μια υποδομή που μου αρέσει πάρα πολύ είναι το build system του Net γιατί με έχει σώσει πολλές φορές. Πολλές φορές μου τύχαινε να θέλω να εγκαταστήσω σε μια σχετικά νέα μητρική η οποία να έχει κάποιο συστατικό που δεν υποστηρίζεται (πχ ο ελεγκτής sata). Μια περίπτωση που μου είχε τύχει ήταν να υπάρχει AHCI υποστήριξη στο -current αλλά όχι στην επίσημη έκδοση. Υπάρχει βέβαια ο releng server που παρέχει ISO από nightly builds αλλά μερικές φορές ούτε αυτό αρκεί γιατί ο οδηγός που χρειάζεσαι δεν είναι ενεργοποιημένος στον πυρήνα.
Σε κάποιο άλλο λειτουργικό θα αναγκαζόμουν να περιμένω μέχρι να βγει κάποια έκδοση που να υποστηρίζει το υλικό που θέλω ώστε να μπορέσω να εγκαταστήσω. Στο NetBSD μπορώ να κατεβάσω τον πηγαίο κώδικα του βασικού συστήματος, να ενεργοποιήσω τον οδηγό που θέλω και να παράγω ένα "custom" ISO με το οποίο να μπορώ να κάνω την εγκατάσταση. Το build system χρειάζεται μόνο ένα C compiler και ένα Posix shell. Στην αρχή χρησιμοποιείται ο compiler του συστήματος για να παραχθεί ένας cross compiler ο οποίος μετά μεταγλωττίζει όλο το βασικό σύστημα οπότε μπορείς να το τρέξεις από οποιοδήποτε linux, MacOS, ακόμη και από Windows. Μπορεί να μην ακούγεται σπουδαίο και ειδικά σήμερα που έχει ψιλο-σταθεροποιηθεί το hardware και για όλα τα συστατικά υπάρχει κάποιο πρότυπο (πχ AHCI, xHCI, κτλ) σίγουρα μπορεί να μην είναι κάτι ιδιαίτερο αλλά με έχει βγάλει από δυσκολίες πολλές φορές.
Αρκετά σας έπρηξα με ιστορίες. Στη συνέχεια θα προσπαθήσω να δείξω τα στάδια μιας τυπικής εγκατάστασης και τι μπορούμε να κάνουμε μετά το τέλος αυτής.
[Κατέβασμα αρχείων]
Spoiler:
Για κάθε έκδοση υπάρχει στους mirrors το αντίστοιχο install cd καθώς επίσης και το source cd για όποιον θέλει να μην κατεβάζει μετά τα sources. Εγώ όμως θέλω να δείξω κάποιες λειτουργίες που δυστυχώς ακόμη δεν έχουν περάσει στην stable έκδοση (6.1.5 αυτή τη στιγμή) για αυτό θα εγκαταστήσω μια από τις nightly εκδόσεις. Δυστυχώς δεν υπάρχει installcd αλλά μόνο boot cd που χρησιμοποιείται για αναβαθμίσεις και εγκατάσταση μέσω δικτύου. Έτσι η διαδικασία θα είναι λίγο πιο μανούρα από ό,τι όταν βγει τελικά η 7.0 έκδοση.
Αν μπούμε στον releng server που υπάρχουν όλες οι nightly εκδόσεις βλέπουμε διάφορους καταλόγους μερικοί εκ των οποίων είναι οι εξής:
Ο κάθε κατάλογος συμβολίζει μια διαφορετική γραμμή ανάπτυξης. Αυτή τη στιγμή υπάρχουν δύο branches με τελευταίες επίσημες εκδόσεις 5.2.3 και 6.1.5 αντίστοιχα. Οι netbsd-5 και netbsd-6 κατάλογοι περιέχουν όλες τις αλλαγές των δύο branches και από τις οποίες κάποια στιγμή στο μέλλον θα προκύψει η επόμενη minor έκδοση (5.3 και 6.2 αντίστοιχα).Κώδικας:HEAD/ netbsd-5/ netbsd-6/ netbsd-7/
Ο netbsd-7 κατάλογος συμβολίζει την επόμενη γραμμή ανάπτυξης και δεν έχει κάποια επίσημη έκδοση αυτή τη στιγμή αλλά κάποια στιγμή στο μέλλον θα μας δώσει την πρώτη major έκδοση 7.0.
Ο HEAD κατάλογος συμβολίζει την -current γραμμή ανάπτυξης στην οποία ενσωματώνονται όλες οι αλλαγές μέχρι να ωριμάσουν και να περάσουν σε κάποιο branch.
Εδώ εξηγεί καλύτερα από εμένα τα πάντα για το κάθε branch και τις εκδόσεις του.
Εμείς θα εγκαταστήσουμε την έκδοση netbsd-7. Μέσα σε κάθε κατάλογο θα βρούμε καταλόγους με όνομα την ημερομηνία του εκάστοτε build. Αυτή τη στιγμή που γράφω το παρόν μήνυμα οι κατάλογοι είναι οι εξής:
Ο κατάλογος που κατέβασα εγώ και θα εγκαταστήσω έχει όνομα 201501181820Z γιατί τον κατέβασα πριν λίγες ημέρες. Εφόσον η εγκατάστασή μας θα κατεβάσει τα απαραίτητα πακέτα μέσω δικτύου, χρειάζεται να κατεβάσουμε μόνο το boot cd, έτσι κατεβάζω το αρχείο netbsd-7/ΗΜΕΡΟΜΗΝΙΑ/amd64/installation/cdrom/boot.iso μια και μιλάμε για 64bitο επεξεργαστή.Κώδικας:201501230010Z/ 201501231250Z/ 201501241500Z/
[Εκκίνηση εγκατάστασης]
Spoiler:
Όταν εκκινήσουμε τον υπολογιστή με το boot.iso, το πρώτο που βλέπουμε είναι η παραπάνω εικόνα. Παλαιότερα όταν πρωτοβγήκε το πρότυπο ACPI (και για κάμποσο διάστημα μετά) υπήρχαν κακές υλοποιήσεις που δεν τηρούσαν το πρότυπο με συνέπεια να μην μπορεί να εκκινηθεί ο υπολογιστής ή να κρασάρει σε κάποιο σημείο. Έτσι μια συνήθης συμβουλή, είτε μιλάμε για εγκατάσταση linux ή για bsd, ήταν "δοκίμασε να κλείσεις το acpi". Για αυτό τον λόγο υπάρχουν οι επιλογές 2 και 3 αλλά σήμερα σχεδόν παντού παίζει σωστά το ACPI οπότε δεν υπάρχει λόγος να τις χρησιμοποιήσουμε. Εμείς θα επιλέξουμε την επιλογή 1 (ή απλά πατάμε enter).
Αφού φορτώσει ο πυρήνας τους διάφορους οδηγούς και ξεκινήσει το σύστημα, θα τρέξει το πρόγραμμα της εγκατάστασης και θα δούμε την παραπάνω εικόνα όπου μας ενημερώνει ότι μπορούμε να μετακινούμαστε στις επιλογές με τα βελάκια αλλά και με τα γράμματα που φαίνονται δίπλα στη κάθε επιλογή. Πατάμε enter ώστε να επιλέξουμε μηνύματα στα αγγλικά.
Το επόμενο βήμα είναι να επιλέξουμε την γλώσσα πληκτρολογίου που θέλουμε να χρησιμοποιήσουμε. Για την εγκατάσταση δεν παίζει κανένα ρόλο η γλώσσα (ίσως μόνο αν θέλουμε να δηλώσουμε ελληνικά στο κωδικό του root αλλά και αυτό ακόμη μπορεί να γίνει μετά την εγκατάσταση).
Πατάμε απλά το k ώστε να επιλέξουμε Ελληνικά όπως φαίνεται στην παραπάνω εικόνα και enter για να πάμε στο επόμενο στάδιο.
Πλέον βρισκόμαστε στο κεντρικό μενού της εγκατάστασης. Το config menu θα το χρησιμοποιήσουμε στο τελικό στάδιο της εγκατάστασης. Από το utility menu μπορούμε να εκτελέσουμε ένα shell ώστε να τρέξουμε κάποια εντολή που θέλουμε. Η επιλογή "Upgrade" είναι για αναβάθμιση του NetBSD σε επόμενη έκδοση για όσους δεν θέλουν να το κάνουν κατευθείαν από το σύστημά τους. Εμείς θα πατήσουμε enter ώστε να επιλέξουμε την a επιλογή και να εγκαταστήσουμε ένα νέο σύστημα.
Εδώ διαβάζουμε ένα ενημερωτικό μήνυμα ότι έχουμε επιλέξει νέα εγκατάσταση και αυτό μπορεί να σβήσει πληροφορίες που υπάρχουν στον σκληρό δίσκο και άλλα τέτοια. Επιλέγουμε b Yes φυσικά.
[Δημιουργία κατατμήσεων]
Spoiler:
Εδώ βρίσκεται η πρώτη διαφοροποίηση του NetBSD-7.0. Η επιλογή "Extended partitioning" είναι νέα και δεν υπάρχει στις επίσημες εκδόσεις και είναι αυτή που μας επιτρέπει να πειράξουμε πολλές επιλογές καθώς και να χρησιμοποιήσουμε GPT layout αντί για MBR. Επιλέγουμε b για να χρησιμοποιήσουμε την προχωρημένη λειτουργία.
Όπως βλέπουμε, το πρόγραμμα εγκατάστασης έχει πλέον υποστήριξη για πολλές λειτουργίες που μέχρι τώρα έπρεπε να τις κάνουμε χειροκίνητα όπως LVM, κρυπτογράφηση (CGD), RAID. Το πρώτο που έχουμε να κάνουμε είναι να πούμε ότι θέλουμε να χρησιμοποιήσουμε GPT αντί για MBR. Αυτό γίνεται πατώντας enter πάνω στο σκληρό δηλαδή στην επιλογή a που είναι ήδη επιλεγμένη.
Πατάμε το πλήκτρο c γιατί μας ενδιαφέρει να χρησιμοποιήσουμε το νεότερο τρόπο δημιουργίας κατατμήσεων GPT.
Εδώ βλέπουμε ένα ενημερωτικό μήνυμα ότι θα διαγραφούν όλες οι υπάρχουσες κατατμήσεις του σκληρού δίσκου. Αν υπάρχουν MBR κατατμήσεις στον σκληρό δίσκο, αυτές θα πάψουν να υφίστανται επειδή θα χρησιμοποιήσουμε ένα διαφορετικό τρόπο δημιουργίας τώρα. Αν στον σκληρό έχουμε δεδομένα ή λειτουργικά συστήματα που χρησιμοποιούν MBR (πχ 32bit windows), τότε δεν πρέπει να συνεχίσουμε γιατί αυτά θα διαγραφούν.
Ξαναβλέπουμε τον διαχειριστή κατατμήσεων αλλά αυτή τη φορά διαβάζουμε ότι έχουμε GPT-labeled δίσκο. Πάμε λοιπόν να δημιουργήσουμε τις κατατμήσεις μας. Για να γίνει αυτό πατάμε πάλι enter πάνω στον σκληρό και θα μας ανοίξει και πάλι ένα μενού επιλογών.
Εδώ θα επιλέξουμε το a ώστε να δημιουργήσουμε κατατμήσεις.
Το πρόγραμμα εγκατάστασης έχει επιλέξει για εμάς το απλό σενάριο της μίας κατάτμησης για όλο το σύστημα αρχείων / και μία για swap. Το swap θα έχει μέγεθος 2GB και το / θα έχει μέγεθος 4GB με τη διαφορά ότι βλέπουμε ένα + δεξιά από τον αριθμό των τομέων. Όπως βλέπουμε, ο δίσκος έχει ακόμη 14GB ελεύθερα που δεν έχουν χρησιμοποιηθεί για καμμία κατάτμηση. Αυτό το κάνει το πρόγραμμα ώστε να μας δώσει τη δυνατότητα να δημιουργήσουμε και άλλες κατατμήσεις αν θέλουμε. Το + σημαίνει ότι αφού δημιουργήσουμε όσες κατατμήσεις θέλουμε, όσος χώρος υπάρχει ελεύθερος, να δοθεί στο /. Δηλαδή αν πατήσουμε όπως είμαστε τώρα το πλήκτρο x για να δεχτούμε αυτές τις δύο κατατμήσεις, το swap θα έχει μέγεθος 2GB και το / θα έχει 18GB.
Επειδή δεν θέλω να χρησιμοποιώ την κατάσταση συμβατότητας, θα δημιουργήσω ακόμη μία κατάτμηση με FAT32 σύστημα αρχείων που θα χρησιμοποιηθεί ώστε να μπορεί να εκκινηθεί το σύστημα σε καθαρή κατάσταση UEFI. Άρα πατάω το πλήκτρο g για να δημιουργήσω μία άλλη κατάτμηση.
Για mountpoint βάζουμε ό,τι να ναι γιατί θα επιλέξουμε να μην γίνεται mount σε επόμενο στάδιο. Έπειτα επιλέγουμε το μέγεθος που θέλουμε να έχει η κατάτμηση ανάλογα με τις ανάγκες μας. Έδωσα 256MB (και 512MB είναι σύνηθες) δηλαδή κάτι μεγάλο ώστε να μας επιτρέπει να εγκαταστήσουμε πολλούς loaders και images (πχ 5-6 εκδόσεις πυρήνων linux). Μετά μας ξαναγυρνάει στην προηγούμενη οθόνη όπου βλέπουμε και την νέα κατάτμηση. Πατάμε το πλήκτρο x ώστε να δεχτούμε τις κατατμήσεις και να πάμε στο επόμενο στάδιο των λεπτομερών ρυθμίσεων.
Εδώ μας δείχνει την γενική εικόνα του δίσκου και μας επιτρέπει να κάνουμε αλλαγές αν θέλουμε πριν συνεχίσει η εγκατάσταση. Το πρώτο πράγμα που κάνουμε είναι να πατήσουμε το πλήκτρο h και να ζητήσουμε τομείς ως μονάδα εμφάνισης ώστε να έχουμε καλύτερη εποπτεία.
Και πάλι έχουμε την εικόνα του δίσκου αλλά τώρα βλέπουμε τομείς αντί για τα χαζό megabyte και μπορούμε να δούμε καλύτερα τι παίζει. Εγκυκλοπαιδικά να πούμε σε αυτό το σημείο ότι το κλασικό layout των BSD όταν εγκαθίστανται σε μία MBR κατάτμήση είναι να δημιουργείται το λεγόμενο disklabel το οποίο μας επιτρέπει να έχουμε πολλαπλές "κατατμήσεις". Είθισται αυτές να ονομάζονται a αυτή που είναι το /, b το swap, η c συμβολίζει την MBR κατάτμηση του NetBSD και η d συμβολίζει ολόκληρο τον δίσκο. Από την e και πέρα είναι οι custom κατατμήσεις που τυχόν δημιουργεί ο διαχειριστής. Επειδή εμείς χρησιμοποιούμε GPT δεν μας ενδιαφέρει και τόσο αυτό αλλά μας τις εμφανίζει και πάλι με αυτό το μοτίβο.
Ο GPT περιέχει δύο headers (ένα στην αρχή και ένα στο τέλος) που καταλαμβάνουν 34 τομείς ο καθένας, για αυτό το λόγο βλέπουμε να αρχίζει η πρώτη κατάτμηση από τον τομέα 34. Σε ένα απλό κλασικό σκληρό δίσκο που έχει τομείς των 512 bytes δεν μας ενδιαφέρει που θα πέσει η κάθε κατάτμηση. Αν όμως έχουμε ένα δίσκο από τους "καινούριους" που έχουν τομείς των 4K (σχεδόν όλοι από 1TB και πάνω) ή ένα SSD, τότε θα έχουμε μεγάλη πτώση των επιδόσεων. Για αυτό το λόγο θα αλλάξουμε τις κατατμήσεις ώστε να τις ευθυγραμμίσουμε με την επιθυμητή τιμή των 4KB (8 τομείς των 512).
Αυτό που μας ενδιαφέρει είναι η αρχή της κάθε κατάτμησης να πέφτει σε τομέα που να είναι πολλαπλάσιο του 8. Εμείς έχουμε ως αρχή 34 (/8 = 4.250), 37222450 (/8 = 4652806.250), 41417746 (/8 = 5177218.250) άρα πρέπει να μετακυλίσουμε την αρχή και των τριών κατατμήσεων. Για ευκολία θα ξεκινήσουμε πρώτα από την 3η οπότε πατάμε το πλήκτρο e.
Η τελική εικόνα που πρέπει να πάρουμε είναι η παραπάνω. Αλλάζουμε τον τύπο συστήματος αρχείων από FFSv2 που ήταν η μανίσια επιλογή σε MSDOS, μετακινούμε την αρχή της κατάτμησης 2 τομείς νωρίτερα στο 41417744 ώστε να είναι πολλαπλάσιο του 8, επιλέγουμε να μην γίνει mount και σβήνουμε το mount point. Έπειτα επιλέγουμε x ώστε να αλλάξουμε την επόμενη κατάτμηση.
Μετά έρχεται η σειρά του swap. Εδώ η δουλειά μας είναι ακόμη πιο εύκολη. Μετακινούμε την αρχή 2 τομείς νωρίτερα στο 37222448 ώστε να είναι πολλαπλάσιο του 8 και εφόσον κάναμε την ίδια ακριβώς αλλαγή και στην 3η κατάτμηση, το τέλος του swap θα ταιριάζει και δεν χρειάζεται να το αλλάξουμε.
Ερχόμαστε και στην περίπτωση του / που είναι η πιο σημαντική. Πρέπει και πάλι να αλλάξουμε την αρχή ώστε να είναι πολλαπλάσιο του 8. Εδώ επέλεξα τη κλασική ευθυγράμμιση στο 1MB και έτσι η κατάτμηση αρχίζει στους 2048 τομείς (θα μπορούσα να είχα επιλέξει τους 40 τομείς ή οποιοδήποτε άλλο πολλαπλάσιο). Έπειτα πρέπει να μικρύνω το μέγεθος από 37222416 σε 37220400 ώστε να μην πέσουμε μέσα στον χώρο του swap και άλλαξα και το fragment size (αυτό που σε άλλα συστήματα αρχείων λέγεται block size δηλαδή η μικρότερη μονάδα με την οποία δουλεύει το σύστημα αρχείων) σε 4K που έχει ο δίσκος μας.
Εδώ βλέπουμε πάλι την εικόνα του δίσκου μας μετά από τις αλλαγές που έχουμε κάνει και αφού όλα τα έχουμε κάνει σωστά, πατάμε το πλήκτρο x για να γυρίσουμε στο κεντρικό μενού του διαχειριστή κατατμήσεων.
Να μαστε στο κεντρικό μενού όπου βλέπουμε να έχουν δημιουργηθεί οι 3 GPT κατατμήσεις μας. Τα dk που βλέπουμε είναι τα λεγόμενα wedges και είναι τα αντικείμενα που χρησιμοποιεί το NetBSD για να προσπελάσεις τις GPT (και όχι μόνο) κατατμήσεις. Είμαστε πλέον έτοιμοι να εγκαταστήσουμε το σύστημα και πατάμε το πλήκτρο x για να το κάνουμε.
Η κλασική πια ερώτηση αν θέλουμε να συνεχίσουμε όπου εννοείται επιλέγουμε Yes. Σε αυτό το σημείο θα δημιουργηθούν οι κατατμήσεις, τα wedges, καθώς και τα συστήματα αρχείων. Ενδέχεται να εμφανιστεί ένα μήνυμα λάθους στην δημιουργία του wedge της Fat32 κατάτμησης. Η έκδοση του προγράμματος εγκατάστασης (τουλάχιστον στην ημερομηνία που δοκίμασα εγώ) έχει ένα μικρο-πρόβλημα και δεν την δημιουργεί αλλά δεν μας πειράζει μια και μπορούμε να την δημιουργήσουμε μετά εμείς (άλλωστε θα την χρειαστούμε στο απώτερο μέλλον).
Εγκατάσταση του boot loader. Ο περισσότερος κόσμος δεν χρησιμοποιεί σειριακή κονσόλα οπότε απλά πατάει enter στην μανίσια επιλογή a.
[Εγκατάσταση συστήματος]
Spoiler:
Σε αυτό το σημείο επιλέγουμε τον τύπο εγκατάστασης. Μπορούμε να κάνουμε πλήρη εγκατάσταση, πλήρη χωρίς γραφικό, να βάλουμε το ελάχιστο δυνατό, και αυτό που θα χρησιμοποιήσουμε εμείς δηλαδή την επιλογή d custom εγκατάσταση.
Το πρόγραμμα εγκατάστασης μας έχει επιλέξει τα απολύτως απαραίτητα πακέτα αλλά εμείς θα επιλέξουμε και άλλα. Επιλέγουμε τον compiler, τις manpages, τα επιμέρους misc προγράμματα, τα προγράμματα επεξεργασίας κειμένου και τέλος κάποια πακέτα από τον πηγαίο κώδικα.
Ο πυρήνας DRMKMS είναι και αυτός ένας από τους λόγους που επιλέξαμε αυτή την nightly έκδοση και δεν υπάρχει στην επίσημη έκδοση 6.1.5. Ανάλογα με πόσο νέα κάρτα γραφικών έχουμε, μπορεί να μην παίζει σωστά για αυτό και δεν έχει ενεργοποιηθεί ο οδηγός στον GENERIC πυρήνα αλλά δίνεται ξεχωριστά. Μπορούμε να επιλέξουμε έναν από τους δύο. Εγώ συνηθίζω να επιλέγω τον GENERIC ώστε να είμαι σίγουρος ότι το σύστημα θα εκκινηθεί σωστά μετά την εγκατάσταση και αφού γίνει αυτό τον εγκαθιστώ χειροκίνητα εγώ για να τον δοκιμάσω άφοβα.
Επίσης, επειδή τα πακέτα του πηγαίου κώδικα είναι μεγάλα (περίπου 500MB) και θα μεγαλώσουν τον χρόνο εγκατάστασης, μπορούμε να μην τα επιλέξουμε τώρα ώστε να τελειώσουμε γρήγορα την εγκατάσταση και να τα κατεβάσουμε σε επόμενο στάδιο όταν θα δούμε πώς αναβαθμίζεται το σύστημα.
Αν τελικά αποφασίσουμε να εγκαταστήσουμε τον πηγαίο κώδικα, επιλέγουμε τα τέσσερα πρώτα πακέτα όπως φαίνεται στην παραπάνω εικόνα και έπειτα πατάμε το πλήκτρο x για να γυρίσουμε πίσω.
Εδώ βλέπουμε την τελική εικόνα με τα πακέτα που πρόκειται να εγκατασταθούν και πατάμε και πάλι το πλήκτρο x για συνέχεια.
Βλέπουμε ότι πρόκειται να εγκατασταθούν 12 πακέτα. Εφόσον δεν μπορούμε να εγκαταστήσουμε γρήγορα μέσω CD, αναγκαστικά επιλέγουμε δικτυακή εγκατάσταση μέσω HTTP.
Τα μόνα πεδία που πειράζουμε είναι τα a, b. Ως διακομιστή θα ορίσουμε τον releng server που είναι ο nyftp.netbsd.org από τον οποίον και είχαμε κατεβάσει το boot.iso. Ως αρχικό κατάλογο θα ορίσουμε τον κατάλογο που περιέχει τα αρχεία μας δηλαδή τον pub/NetBSD-daily/netbsd-7/ΗΜΕΡΟΜΗΝΙΑ όπου ημερομηνία αυτήν του nightly build που χρησιμοποιήσαμε. Έπειτα θα πατήσουμε το πλήκτρο j για να ρυθμιστεί προσωρινά η κάρτα δικτύου μας και να μπορέσουν να κατέβουν τα πακέτα.
Επιλέγουμε το interface που θέλουμε να ρυθμίσουμε και στη δική μου περίπτωση λέγεται wm0. Εδώ έχουμε μια διαφοροποίηση με το linux. Στο linux οι κάρτες δικτύου ονομάζονται eth0, eth1, κτλ. Στα BSD, το interface εξαρτάται από τον οδηγό. Η δική μου κάρτα είναι Intel e1000 οπότε ονομάζεται wm0. Μία κάρτα με realtek chipset μπορεί να ονομαζόταν rl0 ή κάτι παρόμοιο. Αυτό ήταν κάτι πολύ χρήσιμο σε υπολογιστές με πολλές κάρτες δικτύου γιατί σου επέτρεπε εύκολα να ξεχωρίσεις την κάρτα που θέλεις ενώ στο linux ήταν πολύ πιο δύσκολο να ορίσεις ότι η Χ κάρτα να εμφανίζεται πάντα ως eth0 (πριν να βγει η udev).
Επιλέγουμε autoselect στο media type, αυτόματη διευθυνσιοδότηση μέσω DHCP, δηλώνουμε domain και όνομα υπολογιστή. Έπειτα μας εμφανίζει τις πληροφορίες και μας ρωτάει αν όλα είναι καλά και ξαναγυρνάμε πίσω. Εδώ θα πατήσουμε κλασικά το πλήκτρο x ώστε να κατέβουν τα πακέτα από τον διακομιστή (στη δική μου έκδοση αφού πάτησα το x με γύρισε στην προηγούμενη εικόνα και ξανα-επέλεξα HTTP και Get Distribution και τότε κατέβασε κανονικά και εγκατέστησε τα πακέτα.
Τελειώσαμε την εγκατάσταση και τώρα απλά θα κάνουμε κάποιες απλές ρυθμίσεις.
[Τελικές ρυθμίσεις της εγκατάστασης]
Spoiler:
Εδώ είμαστε στο config menu που λέγαμε. Ας ξεκινήσουμε με το να ορίσουμε τη ζώνη ώρας μας οπότε πατάμε το πλήκτρο b.
Επιλέγουμε πρώτα Europe και μετά Athens και βλέπουμε να εμφανίζεται η σωστή ώρα.
Το επόμενο βήμα είναι η επιλογή c δηλαδή να ορίσουμε το κέλυφος που θέλουμε να έχει ο χρήστης root. Εγώ επιλέγω πάντα το korn shell γιατί είναι πιο βολικό από το απλό bourne shell, τουλάχιστον μέχρι να εγκαταστήσουμε bash, zsh ή όποιο άλλο θέλουμε. Επόμενο βήμα ο ορισμός κωδικού στο χρήστη root.
Με την επιλογή o δημιουργώ ένα νέο χρήστη και επιλέγω να είναι μέλος της ομάδας wheel (η μανίσια επιλογή στα BSD είναι να επιτρέπει να κάνει su μόνο όποιος χρήστης είναι μέλος της ομάδας wheel).
Εδώ βλέπουμε τους δαίμονες που θα ξεκινήσουν με το σύστημα. Όπως βλέπουμε έχω απενεργοποιήσει τους cgd και raidframe μια και δεν χρησιμοποιήσαμε αυτές τις υποδομές και έχω ενεργοποιήσει τον sshd.
Όπως διαβάζουμε στις επιλογές e, f, το πρόγραμμα εγκατάστασης μας επιτρέπει να εγκαταστήσουμε binary πακέτα και να φέρουμε την pkgsrc για χτίσιμο πακέτων. Αυτό είναι επίσης νέα λειτουργία της έκδοσης 7.0 και δεν υπάρχει στην επίσημη έκδοση. Στο επόμενο μήνυμα, θα γράψω για την αναβάθμιση του βασικού συστήματος καθώς και τα binary πακέτα και την pkgsrc οπότε δεν τα εγκαθιστώ τώρα για να τα δούμε εκεί με μεγαλύτερη λεπτομέρεια.
Η εγκατάστασή μας έχει τελειώσει. Το παρόν μήνυμά μου είναι τεράστιο και ίσως δίνει την εντύπωση ότι χρειάζεται πολύς χρόνος αλλά στην πραγματικότητα τα OpenBSD, NetBSD είναι τα συστήματα που εγκαθίστανται πιο γρήγορα από όλα. Όσο έκανα να γράψω το παρόν μήνυμα θα μπορούσα να είχα στήσει 30 μηχανήματα
[Πρώτη εκκίνηση]
Spoiler:
Την πρώτη φορά που θα εκκινήσουμε το σύστημα, πολύ πιθανώς να δούμε ένα μήνυμα λάθους που να λέει ότι τα init scripts swap2 και postfix δεν έχουν εκκινηθεί σωστά. Λίγο πιο πάνω θα δούμε ότι αφενός δεν έχει οριστεί swap space και αφετέρου ότι είναι άδειο το hostname. Επειδή όπως είπαμε έχουν προστεθεί πολλές νέες λειτουργίες στον εγκαταστάτη της έκδοσης 7.0, υπάρχουν κάποια τέτοια προβληματάκια (τα οποία μπορεί να έχουν λυθεί σε μετέπειτα έκδοση από αυτήν που δοκίμασα εγώ).
Για να ορίσουμε hostname έχουμε δύο επιλογές. Η μία είναι θέτοντας τιμή στην μεταβλητή hostname στο /etc/rc.conf. Η άλλη είναι να δημιουργήσουμε το αρχείο /etc/myname και να θέσουμε εκεί το όνομα. Στην επόμενη επανεκκίνηση θα έχει τεθεί σωστά το όνομα και δεν θα πάρουμε μήνυμα λάθους. Αντί για επανεκκίνηση μπορούμε απλά να τρέξουμε το init script που είναι για αυτή τη δουλειά δηλαδή να τρέξουμε /etc/rc.d/network restart. Έπειτα αρκεί να τρέξουμε /etc/rc.d/postfix start ώστε να ξεκινήσουμε τον δαίμονα ηλεκτρονικού ταχυδρομείου postfix.
Όσον αφορά το πρόβλημα με το swap, τα init scripts είναι ρυθμισμένα έτσι ώστε να ψάχνουν στο αρχείο /etc/fstab και να ενεργοποιούν όσες κατατμήσεις έχουν τύπο swap. Στην περίπτωσή μας όμως για κάποιο λόγο το πρόγραμμα εγκατάστασης δεν δημιούργησε καταχώρηση για το swap στο αρχείο fstab (ίσως μπερδεύτηκε επειδή χρησιμοποιήσαμε GPT). Έτσι εμείς θα ανοίξουμε το αρχείο /etc/fstab με τον κειμενογράφο vi και θα προσθέσουμε την παρακάτω καταχώρηση.
και έπειτα θα εκτελέσουμε τα κατάλληλα init scriptsΚώδικας:/dev/dk1 none swap sw 0 0
Τα προβλήματα που είχαμε διορθώθηκαν και στην επόμενη επανεκκίνηση δεν θα δούμε κανένα μήνυμα λάθους.Κώδικας:# /etc/rc.d/swap1 start # /etc/rc.d/swap2 start
Το σύστημά μας είναι έτοιμο. Έχουμε εγκαταστήσει όλο το βασικό σύστημα και το οποίο περιέχει όλους τους απαραίτητους δαίμονες για ένα τυπικό διακομιστή. Για desktop χρήση εννοείται πως θα χρειαστούμε πολλά περισσότερα πακέτα.
Ένα πράγμα που με ενοχλεί σε πολλά εγχειρίδια είναι ότι σε καθοδηγούν στην εγκατάσταση αλλά μετά σε παρατάνε χωρίς να ξέρεις τι να κάνεις. Υπάρχουν βέβαια οδηγίες για το κάθε πρόγραμμα και υποδομή αλλά είναι η πληροφορία είναι διάσπαρτη. Για να διαβάσω εγώ την manpage του X πρέπει πρώτα να ξέρω ότι υπάρχει το X πράγμα το οποίο δεν θα συμβαίνει αν δεν έχω ασχοληθεί καθόλου με το λειτουργικό.
Στα BSD υπάρχει μια manpage με όνομα afterboot η οποία έχει ακριβώς αυτό το σκοπό, να σου μάθει τι υπάρχει από εδώ και πέρα και σε καθοδηγεί για διάφορες βασικές λειτουργίες όπως να ορίσεις δίκτυό σου, να δημιουργήσεις νέους χρήστες, αναφέρει ποιοι δαίμονες υπάρχουν και την λειτουργία του καθενός, περιγράφει τα init scripts, μέχρι και πληροφορίες για να κάνεις compile νεότερο πυρήνα έχει. Επειδή λοιπόν η manpage εξηγεί τα πάντα, εγώ θα αναφέρω περιληπτικά κάποιες βασικές ρυθμίσεις που μπορούμε να κάνουμε.
Το πρώτο που χρειάζεται να πειράξουμε είναι φυσικά οι ρυθμίσεις του δικτύου μας ώστε να μπορούμε να κατεβάσουμε και να εγκαταστήσουμε πακέτα ή ό,τι άλλο θέλουμε να κάνουμε.
[Στατική IP]
Ένα σενάριο είναι να έχουμε στατικές IP στο δίκτυό μας οπότε πρέπει να ορίσουμε διεύθυνση IP (και IPv6 αν θέλουμε), Πύλη, Διακομιστές ονομάτων.
Η δήλωση της διεύθυνσης IP γίνεται και πάλι με δύο τρόπους είτε με μεταβλητή στο αρχείο rc.conf ή σε ξεχωριστό αρχείο στο /etc. Πρώτα πρέπει να δούμε ποιο interface μας ενδιαφέρει να ρυθμίσουμε. Στην δική μου περίπτωση είχαμε intel e1000 κάρτα οπότε έχουμε το interface wm0. Άρα η μεταβλητή που πρέπει να ορίσουμε στο rc.conf είναι η ifconfig_wm0 ενώ το ξεχωριστό αρχείο είναι το /etc/ifconfig.wm0
Δημιουργούμε λοιπόν το αρχείο /etc/ifconfig.wm0 και μέσα γράφουμε
Αν έχουμε και IPv6 τότε αυτό δηλώνεται με inet6.Κώδικας:inet 192.168.1.50 netmask 255.255.255.0
Η πύλη δηλώνεται στην μεταβλητή defaultroute στο rc.conf ή στο αρχείο /etc/mygate. Οι διακομιστές ονομάτων δηλώνονται στο αρχείο /etc/resolv.conf με την μορφή "nameserver τάδε_ip" πχ
[DHCP]Κώδικας:nameserver 192.168.1.5
Για να ορίσουμε δυναμική εκχώρηση διεύθυνσης υπάρχουν 3-4 τρόποι. Ο απλός τρόπος είναι να δημιουργήσουμε το αρχείο /etc/ifconfig.wm0 και μέσα να
γράψουμε απλά dhcp. Μαζί με την διεύθυνση IP θα δηλωθούν αυτόματα και η πύλη και οι διακομιστές ονομάτων οπότε δεν χρειάζεται να πειράξουμε κανένα άλλο αρχείο.
Ένας πιο σύνθετος αλλά καλύτερος τρόπος είναι να ορίσουμε στο αρχείο rc.conf την μεταβλητή dhcpcd=YES (ή dhclient=YES ανάλογα με ποιον δαίμονα προτιμούμε). Έτσι έχουμε τη δυνατότητα να αλλάξουμε την συμπεριφορά του δαίμονα ανάλογα με τις προτιμήσεις μας (οι ρυθμίσεις μπορούν να γίνουν είτε θέτοντας τιμή στην μεταβλητή dhcpcd_flags στο αρχείο rc.conf ή ακόμη καλύτερα στο αρχείο /etc/dhcpcd.conf)
Όλα τα παραπάνω περιγράφονται περιληπτικά στην manpage afterboot και λεπτομερώς στην manpage ifconfig.if. Επίσης απαραίτητο είναι να διαβάσουμε την manpage του rc.conf και να δηλώσουμε τι θέλουμε να ξεκινά κατά την εκκίνηση και τι όχι.
Στο επόμενο μήνυμα θα γράψω για την αναβάθμιση του βασικού συστήματος και την εγκατάσταση πακέτων.
Εννοείται πως δεν τα εξηγώ τέλεια αλλά ελπίζω να αποτελέσει το έναυσμα για να εγκαταστήσει κάποιος το πολύ καλό αυτό λειτουργικό που είναι το NetBSD. Ευχαριστώ για την υπομονή σας.
- - - Updated - - -
Ένας τελικός χρήστης που χρησιμοποιεί linux (ειδικά κάποιος που δουλεύει μόνο γραφικό περιβάλλον) δεν θα δει μεγάλες διαφορές.
Κάποιες διαφορές που μου έρχονται στο μυαλό είναι πχ στην απόκτηση πληροφοριών όπως οι εξής:
Spoiler:
* Στο βασικό σύστημα δεν υπάρχει η εντολή free που χρησιμοποιούμε στο linux για να δούμε πόση ελεύθερη μνήμη υπάρχει. Μπορούμε να πάρουμε πληροφορίες όμως χρησιμοποιώντας άλλες εντολές όπως οι παρακάτω:
Με την vmstat βλέπουμε ότι αυτή τη στιγμή χρησιμοποιούνται 36MB και μένουν 1,950MB ελεύθερα. Με την swapctl βλέπουμε ότι έχουμε 2GB swap και αυτή τη στιγμή δεν χρησιμοποιείται καθόλου.Κώδικας:# vmstat procs memory page disks faults cpu r b avm fre flt re pi po fr sr f0 c0 in sy cs us sy id 1 0 36196 1950848 454 0 0 0 0 0 0 0 10 613 44 0 1 99 # swapctl -l Device 1K-blocks Used Avail Capacity Priority /dev/dk1 2097648 0 2097648 0% 0
* Για να πάρουμε πληροφορίες για το σκληρό δίσκο μπορούμε να χρησιμοποιήσουμε την εντολή atactl (σε αντιστοιχία με τις hdparm και smartctl)
Πληροφορίες για τον επεξεργαστή (αντίστοιχη του /proc/cpuinfo) μπορούμε να πάρουμε τρέχοντας την εντολή cpuctlΚώδικας:# atactl wd0 identify Model: QEMU HARDDISK, Rev: 2.2.0, Serial #: QM00001 Device type: ATA, fixed Capacity 21 Gbytes, 41943040 sectors, 512 bytes/sector . . . # atactl wd0 smart status SMART supported, SMART enabled id value thresh crit collect reliability description raw 1 100 6 yes online positive Raw read error rate 0 3 100 0 yes online positive Spin-up time 16 4 100 20 no online positive Start/stop count 100 5 100 36 yes online positive Reallocated sector count 0 9 100 0 yes online positive Power-on hours count 1 12 100 0 yes online positive Device power cycle count 0 190 69 50 yes online positive Airflow Temperature 31 Lifetime min/max 31/0
Πληροφορίες για τις pci συσκευές παίρνουμε με την εντολή pcictl (αντίστοιχη της lspci)Κώδικας:# cpuctl identify 0 . . . cpu0: "Intel Core Processor (Haswell)" cpu0: Intel 4th gen Core, Xeon E3-12xx v3 (Haswell) (686-class), 3192.78 MHz cpu0: family 0x6 model 0x3c stepping 0x1 (id 0x306c1) cpu0: features 0x178bfbfd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA> . . .
Μια άλλη διαφορά είναι σχετικά με την επανεκκίνηση και τερματισμό του συστήματος. Πολύς κόσμος έχει συνηθίσει στο linux να τρέχει reboot ή halt. Στην manpage πχ του reboot διαβάζουμε το παρακάτωΚώδικας:# pcictl pci0 list 000:00:0: Intel 82G33/P35 Host Bridge (host bridge) 000:01:0: unmatched vendor 0x1234 product 0x1111 (VGA display, revision 0x02) 000:02:0: Intel i82540EM 1000baseT Ethernet (ethernet network, revision 0x03) . . .
Δηλαδή όταν τρέχουμε reboot ή halt από ένα κανονικό runlevel, εκτελείται πρώτα η shutdown η οποία διαβάζει τα init scripts και εκτελεί τις απαραίτητες διεργασίες για να κλείσει το σύστημα. Έτσι ενώ το σωστό είναι να τρέξουμε "shutdown -r now", τρέχοντας reboot όλα παίζουν σωστά. Στα BSD όμως δεν γίνεται αυτό και όταν τρέχουμε reboot ή halt απλά σκοτώνονται οι εφαρμογές αντί να εκτελεστούν τα απαραίτητα scripts. Έτσι καλό είναι να συνηθίσουμε να τρέχουμε shutdown -h/-r/-p now.NAME
halt, reboot, poweroff - stop the system.
DESCRIPTION
If halt or reboot is called when the system is not in runlevel 0 or 6,
in other words when it's running normally, shutdown will be invoked
instead (with the -h or -r flag). For more info see the shutdown(8)
manpage.
[Αλλαγές στο fstab]
Spoiler:
Χτες ξέχασα να αναφέρω ότι δεν εγκατέστησα το πακέτο για τον X και τον πηγαίο του κώδικα επειδή θα χρησιμοποιήσουμε όχι την έκδοση που βρίσκεται στο βασικό σύστημα αλλά την modular έκδοση που μπορούμε να εγκαταστήσουμε σαν πακέτο. Επίσης ξέχασα να αναφέρω μια αλλαγή που μπορούμε να κάνουμε στο /etc/fstab. Άλλη μια λειτουργία που υπάρχει στην 7.0 έκδοση είναι ότι δεν χρειάζεται να χρησιμοποιούμε τις απλές devices που μπορούν να αλλάξουν αν προστεθεί ή αφαιρεθεί ένας δίσκος αλλά μπορούμε όπως και στο linux να χρησιμοποιήσουμε σταθερές ετικέτες.
Για να το κάνουμε αυτό πρέπει πρώτα να ορίσουμε τις ετικέτες και επ ευκαιρίαν θα δημιουργήσουμε και την FAT32 κατάτμηση σε περίπτωση που απέτυχε να δημιουργηθεί κατά την εγκατάσταση.
Όπως με το πρόγραμμα gdisk βλέπουμε τον GPT πίνακα κατατμήσεων στο linux, το ίδιο κάνουμε και εδώ με την εντολή gpt. Βλέπουμε ότι μετά τον πρωτεύοντα header έχουμε μια κενή περιοχή επειδή ευθυγραμμίσαμε την κατάτμησή μας στο 1MB, μετά έχουμε τις δύο κατατμήσεις και μετά ένα κενό χώρο. Αυτό γίνεται επειδή δεν δημιουργήθηκε η FAT32 κατάτμηση. Ας την δημιουργήσουμε τώρα.Κώδικας:# gpt show wd0 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2014 2048 36696240 1 GPT part - NetBSD FFSv1/FFSv2 36698288 4195296 2 GPT part - NetBSD swap 40893584 1049423 41943007 32 Sec GPT table 41943039 1 Sec GPT header
Δημιουργούμε την 3η κατάτμηση με ετικέτα ESP και τύπο efi. Επίσης θέτουμε τιμή ετικέτας στις υπάρχουσες κατατμήσεις. Με αυτό τον τρόπο αντί να έχουμε στο fstab συσκευές όπως "/dev/dk0", μπορούμε να ορίσουμε την ετικέτα. Έτσι οι καταχωρήσεις θα γίνουν ως εξήςΚώδικας:# gpt add -b 40893584 -i 3 -l ESP -t efi wd0 Partition 3 added, use: dkctl wd0 addwedge <wedgename> 40893584 1049423 <type> to create a wedge for it # gpt label -i 1 -l ROOT wd0 partition 1 on rwd0d labeled ROOT # gpt label -i 2 -l SWAP wd0 partition 2 on rwd0d labeled SWAP
Κώδικας:NAME=ROOT / ffs rw 1 1 NAME=SWAP none swap sw 0 0
Εμφάνιση 1-15 από 15
-
26-01-15, 17:33 [Οδηγός / How-To] Εγκατάσταση NetBSD #1
Καλησπέρα.
*** Ακολουθεί κατεβατό ***
Χρόνια τώρα όλο λέω θα γράψω κάποια πράγματα για το NetBSD είτε εδώ είτε στο blog μου, πιο πολύ για να ανατρέχω εγώ αν ξεχάσω κάτι αλλά και για όσους θέλουν να τα διαβάσουν αλλά όλο το αναβάλλω.
Τώρα που γίνεται αυτός ο ντόρος με τον systemd διαβάζω πολλά μηνύματα και εδώ και σε άλλα φόρα με κόσμο να έχει τσατιστεί με κάποιους στην κοινότητα του linux και να σκέφτεται να μεταβεί σε FreeBSD οπότε μου ξύπνησε και πάλι η ιδέα να γράψω για το NetBSD.
[Περιγραφή του NetBSD και rant]
Spoiler:
Αρκετά σας έπρηξα με ιστορίες. Στη συνέχεια θα προσπαθήσω να δείξω τα στάδια μιας τυπικής εγκατάστασης και τι μπορούμε να κάνουμε μετά το τέλος αυτής.
[Κατέβασμα αρχείων]
Spoiler:
[Εκκίνηση εγκατάστασης]
Spoiler:
[Δημιουργία κατατμήσεων]
Spoiler:
[Εγκατάσταση συστήματος]
Spoiler:
[Τελικές ρυθμίσεις της εγκατάστασης]
Spoiler:
[Πρώτη εκκίνηση]
Spoiler:
Στο επόμενο μήνυμα θα γράψω για την αναβάθμιση του βασικού συστήματος και την εγκατάσταση πακέτων.
Εννοείται πως δεν τα εξηγώ τέλεια αλλά ελπίζω να αποτελέσει το έναυσμα για να εγκαταστήσει κάποιος το πολύ καλό αυτό λειτουργικό που είναι το NetBSD. Ευχαριστώ για την υπομονή σας.
- - - Updated - - -
Ένας τελικός χρήστης που χρησιμοποιεί linux (ειδικά κάποιος που δουλεύει μόνο γραφικό περιβάλλον) δεν θα δει μεγάλες διαφορές.
Κάποιες διαφορές που μου έρχονται στο μυαλό είναι πχ στην απόκτηση πληροφοριών όπως οι εξής:
Spoiler:
[Αλλαγές στο fstab]
Spoiler:Τελευταία επεξεργασία από το μέλος imitheos : 26-01-15 στις 14:19.
"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
27-01-15, 00:28 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #2
- Εγγραφή
- 20-06-2007
- Περιοχή
- Chicago, Illinois
- Ηλικία
- 32
- Μηνύματα
- 30.620
- Downloads
- 96
- Uploads
- 25
- Άρθρα
- 14
- Τύπος
- FTTH
- Ταχύτητα
- 1 Gbps
- ISP
- Nova
Εξαιρετικη δουλεια !
Dies, died, will die.
Lived, lives, will live.
-
27-01-15, 01:13 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #3
-
27-01-15, 02:50 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #4
-
27-01-15, 04:28 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #5
Δε πάει να ναι και 500 κατεβατα, άμα είναι από imitheo είναι το λιγότερο άριστο
-
28-01-15, 01:24 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #6
Ευχαριστώ για τα καλά λόγια. Από το άριστο απέχει πάρα πολύ μια και άλλες παράγραφοι είναι τεράστιες και ποιος ξέρει πόσο χάλια σύνταξη έχω . Παλιά που μπορούσες να αλλάξεις σελίδα ήταν πολύ βολικό για τέτοια μηνύματα. Επίσης δυστυχώς το φόρουμ δεν έχει (από όσο ξέρω) κάποια δυνατότητα "wiki" ώστε να μπορεί να διορθώσει κανείς το μήνυμα και να προσθέσει και άλλες πληροφορίες που μπορεί να ξέχασα. Αν πάντως παρακινήσει κάποιον να δουλέψει NetBSD (ή έστω και κάποιο άλλο BSD), τα έβγαλε τα λεφτά του.
Υπάρχει και το επίσημο guide που έχει και αυτό φωτογραφίες και είναι πολύ πιο καλογραμμένο αλλά αφορά τις επίσημες εκδόσεις οπότε χρησιμοποιεί MBR, disklabels, κτλ. Εγώ ήθελα να δείξω μια εγκατάσταση που να εκμεταλλεύεται καλύτερες "σύγχρονες" τεχνολογίες. Αν υπήρχε και υπόστηριξη για κάποιο πιο σύγχρονο fs όπως ZFS, btrfs, τότε θα έλεγα ότι δεν έχει να ζηλέψει κάτι σε σχέση με το linux.
Αν μπορέσω σήμερα, θα γράψω πώς μπορούμε να αναβαθμίσουμε το βασικό σύστημα και έπειτα πώς μπορούμε να εγκαταστήσουμε binary πακέτα ή να τα χτίσουμε από τον πηγαίο κώδικα. Προσπάθησα να "δεσμεύσω" τα 2, 3 μηνύματα για αυτό το σκοπό αλλά ό,τι και να έκανα το έκανε auto-merge με το πρώτο μου μήνυμα.
- - - Updated - - -
[Εισαγωγή]
Πολλές φορές διαβάζουμε κάποιο μήνυμα να αναφέρει "Linux" και κάποιος που είναι τυπικός να διορθώνει "το σωστό είναι GNU/Linux" ή να το πηγαίνει ακόμη πιο πέρα και να προτείνει ένα ολόκληρο κατεβατό για τίτλο. Μπορεί βέβαια να έχουμε συνηθίσει τον όρο Linux και με αυτόν να εννοούμε ολόκληρο το σύστημα αλλά τυπικά Linux ονομάζεται μόνο ο πυρήνας.
Τα παρακάτω είναι κάποια από τα προγράμματα που χρειαζόμαστε στο ελάχιστο μόνο για να εκκινηθεί το σύστημα και να κάνουμε βασικές λειτουργίες. Ακόμη και για ένα πολύ minimal λειτουργικό χωρίς διαχειριστή πακέτων και χωρίς καμμία από τις ευκολίες που παρέχει μια τυπική διανομή, θα χρειαστούμε πολλά ακόμη προγράμματα.
* Linux για πυρήνα
* libc για shared βιβλιοθήκες
* bash για κέλυφος
* bzip2 / gzip / xz για αποσυμπίεση
* coretuils για ls, rm , cat, du, df, κτλ
* τάδεfsprogs για το σύστημα αρχείων που χρησιμοποιούμε
* elvis / vi / nano / κτλ για κειμενογράφο
Τα BSD (Free, Net, Open, κτλ) λοιπόν δεν παρέχουν μόνο ένα πυρήνα αλλά ένα ολοκληρωμένο λειτουργικό που ονομάζεται "βασικό σύστημα" και που αναπτύσσεται μαζί σαν μία οντότητα από την ομάδα του εκάστοτε λειτουργικού (παρέχονται και κάποια "εξωτερικά" προγράμματα όπως πχ ο gcc όταν ο όγκος δουλειάς που χρειάζεται για την ανάπτυξη δεν είναι εφικτό να παραχθεί από την ομάδα). Συνήθως το βασικό σύστημα περιέχει όλα τα απαραίτητα συστατικά για χρήση διακομιστή και από εκεί και πέρα υπάρχει ο διαχειριστής πακέτων που επιτρέπει τον χρήστη να εγκαταστήσει εξωτερικά προγράμματα όπως γίνεται και στο Linux.
Ας δούμε λοιπόν πως μπορούμε να αναβαθμίσουμε το βασικό σύστημα. Καλό υλικό για διάβασμα αποτελούν οι επίσημοι οδηγοί αναβάθμισης για stable έκδοση και για current. Όπως πάντα, υπάρχουν πολλοί τρόποι για να κάνουμε μια εργασία.
Ένας τρόπος είναι η αναβάθμιση με την χρήση binary πακέτων. Στο προηγούμενο μήνυμα, είδαμε στο κεντρικό μενού του προγράμματος εγκατάστασης να υπάρχει μια επιλογή "Upgrade NetBSD". Πηγαίνουμε δηλαδή και κατεβάζουμε από τον releng server, τα binary πακέτα (στον κατάλογο αρχιτεκτονική/binary/sets) από την έκδοση που θέλουμε καθώς και το νέο boot.iso και εκκινούμε από αυτό. Η επιλογή Upgrade κάνει την ίδια δουλειά με την Install απλά δεν δημιουργεί κατατμήσεις. Έτσι εγκαθιστά τα νέα πακέτα αποσυμπιέζοντας τα πάνω στα παλιά αρχεία και στο τέλος έχουμε την επιλογή να κάνουμε merge τα αρχεία ρυθμίσεων του /etc. Αυτός είναι ο πιο απλός τρόπος αναβάθμισης (αν δεν κάνω λάθος, αυτόν τον τρόπο προτείνουν και στο OpenBSD). Εδώ δεν έχει κάτι ιδιαίτερο να περιγράψω για αυτό θα εστιάσω στο χτίσιμο του συστήματος από τον πηγαίο κώδικα.
[Κατέβασμα και ενημέρωση πηγαίου κώδικα]
Spoiler:
[Χτίσιμο του κώδικα]
Το πρώτο πράγμα που πρέπει να κοιτάξουμε είναι το αρχείο UPDATING το οποίο περιέχει οδηγίες για σημαντικές αλλαγές που έχουν γίνει και που μπορεί να σπάσουν το σύστημα (σπάνιο πράγμα να υπάρχει βέβαια). Εκτός από το UPDATING υπάρχει και το αρχείο BUILDING το οποίο σε συνδυασμό με την manpage mk.conf εξηγούν λεπτομερώς αυτά που θα περιγράψω παρακάτω.
1) Παλαιός τρόπος χτισίματος
Spoiler:
2) Νέος τρόπος χτισίματος
Στο σχολείο στη μία τάξη του γυμνασίου μας μάθαιναν ένα τρόπο που ήθελε μία ώρα να λύσουμε ένα τύπο άσκησης και στην επόμενη τάξη μας μάθαιναν ένα κανόνα που την έλυνε σε μία σειρά. Έτσι και εδώ έπρεπε πρώτα να δείξουμε τον παλιό χειροκίνητο τρόπο για να εξοικειωθούμε με το πώς δουλεύει το πράγμα, άσχετα αν δεν τον χρησιμοποιεί πια κανείς, και τώρα ήρθε η ώρα να δούμε πώς χρησιμοποιούμε το build.sh που μας κάνει τη ζωή πιο εύκολη.
Spoiler:
3) Βελτίωση νέου τρόπου
Το build.sh βελτίωσε την κατάσταση (ειδικά στο cross-compiling) αλλά έχει το κακό ότι κάθε φορά πρέπει να δώσεις ένα κάρο παραμέτρους. Έτσι έπρεπε να γράψουμε ένα άλλο script που να το καλεί με τις ίδιες παραμέτρους κάθε φορά. Για αυτό το λόγο δημιουργήθηκαν κάποια προγράμματα που μας βοηθάνε. Θα δείξω απλά πώς μπορούμε να τα binary πακέτα τους χωρίς να εξηγήσω την διαδικασία γιατί θα το κάνω στην επόμενη ενότητα.
Κώδικας:# export PKG_PATH="ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/7.0_BETA/All" # pkg_add sysbuild sysbuild-2.7nb1: copying /usr/pkg/share/examples/sysbuild/default.conf to /usr/pkg/etc/sysbuild/default.conf
Κώδικας:BUILD_ROOT="/usr/work" INCREMENTAL_BUILD="yes"
Κώδικας:# export PKG_PATH="ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/7.0_BETA/All" # pkg_add sysupgrade sysupgrade-1.5nb1: copying /usr/pkg/share/examples/sysupgrade/default.conf to /usr/pkg/etc/sysupgrade.conf
Αυτός ο τρόπος είναι ο πιο εύκολος για ένα νέο χρήστη γιατί απλά χρειάζεται να πειράξει μόλις δύο μεταβλητές σε δύο αρχεία (και ούτε καν αυτές αν θα χτίσει στο δικό του home κατάλογο).Τελευταία επεξεργασία από το μέλος imitheos : 28-01-15 στις 20:37.
"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
28-01-15, 16:18 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #7
Διάβασα το rant κομμάτι και όντως η άποψή μου για τα BSD συμφωνεί με αυτά που έγραψες.
Μπορείς να γράψεις και 2 λογάκια για το dragonflybsd; Μου αρέσει που καινοτομεί σε διάφορεσ τεχνολογίες αλλά το userbase του πρέπει να είναι αρκετά μικρότερο απο τα υπόλοιπα.
-
28-01-15, 20:40 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #8"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
28-01-15, 22:50 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #9
Δεν εννοούσα οδηγό, μια παράγραφο με εντυπώσεις, αλλά αφού δεν έχεις ασχοληθεί δεν πειράζει.
Sorry για το hijack.
-
01-02-15, 01:15 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #10
Μια σημαντική ενότητα που δεν είδαμε πριν είναι η εγκατάσταση των "εξωτερικών" προγραμμάτων που απαρτίζουν ένα λειτουργικό σύστημα. Η εγκατάσταση μπορεί να γίνει με δύο τρόπους που είναι η χρήση binary πακέτων και το χτίσιμο του προγράμματος από τον πηγαίο του κώδικα.
[Binary πακέτα]
Spoiler:
[pkgsrc και χτίσιμο]
Spoiler:"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
03-02-15, 22:13 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #11
Να δώσω και εγώ τα συγχαρητήρια μου στον imitheo, για τo εξαιρετικό post του.
Η πρώτη μου επαφή με το NetBSD ήταν το 2004, με την έκδοση 1.6.2 τότε, όταν ήμουν ακόμα προπτυχιακός φοιτητής.
Αν και αυτή τη στιγμή δεν το έχω εγκατεστημένο κάπου, παρακολουθώ την εξέλιξή του και το χρησιμοποιώ κατά περιόδους, είτε στο κυρίως pc μου είτε στο raspberry pi.
Πάντως, πιστεύω ότι η έκδοση 7.0 έχει βαλτώσει αρκετά, αφού την περιμένουμε από το καλοκαίρι, με προβλήματα που αφορούν ουσιαστικά του porting του drm για intel & amd κάρτες γραφικών. Ελπίζω τα προβλήματα αυτά να λυθούν σύντομα, για να του ξαναδώσω μια ευκαιρία στο desktop. Την αξίζει άλλωστε!NetBSD Rocks!
http://www.netbsd.org
-
15-10-15, 20:14 Απάντηση: [Οδηγός / How-To] Εγκατάσταση NetBSD #12
Για να μην ανοίγω άλλο νήμα, ενημερώνω ότι προς τα τέλη Σεπτέμβρη/αρχές Οκτώβρη κυκλοφόρησε επιτέλους η έκδοση 7 του NetBSD.
Για όποιον θέλει να ρίξει μια ματιά, το σχετικό announcement είναι εδώ:
http://www.netbsd.org/releases/formal-7/NetBSD-7.0.html
Μόλις βρω λίγο χρόνο, θα την περάσω στο raspberry pi μου (που τρέχει μια beta από το Μάιο).NetBSD Rocks!
http://www.netbsd.org
-
13-01-17, 00:32 Help εκτύπωση freebsd (pc-bsd,freebsd,Netbsd είναι παρόμοια). Οχι απάντηση. #13
Ένα και μισό χρόνο δούλευα freedsd.Τέλειο. Είχα βάλει όλα τα desktop gnome,kde,Xfce.(Επίσης δούλευα Linux 7 διανομές και είχα βάλει τα πάντα και
τον εκτυπωτη LaserJet Pro MFP M125nw.)΄Hxo,video,κλπ.
Το μόνο πρόβλημα ήταν με τον εκτυπωτή.Mου φαίνεται κατάφερα να βλέπει την πόρτα usb και μετά τι cup (cup δικαιώματα file sudoers), τι spooler,δοκίμασα παπάδες, τι φίλτρα κλπ
Εκτυπωτής :LaserJet Pro MFP M125nw
Κάπου κάνω λάθος
Ερώτηση:Μήπως μπορεί να βοηθήσει κανένας να εκτυπώσω,έστω και μόνο text από terminal.Text είναι αρκετό.
΄Οπως στο dos (cmd) path όνομα > prn δεν θυμάμαι καλά ή print path name file σε εκτυπωτή με παράλληλη σύνδεση.
Help.
Thanks.
-
13-01-17, 01:01 Απάντηση: Help εκτύπωση freebsd (pc-bsd,freebsd,Netbsd είναι παρόμοια). Οχι απάντηση. #14
Συνήθως σε αυτούς τους εκτυπωτές όλα τα κάνει ο επεξεργαστής οπότε θέλεις "ειδικό" οδηγό για να παίξουν σωστά σε αντίθεση με ένα κανονικό εκτυπωτή που δεν χρειάζεσαι τίποτα. Και με αυτόν τον οδηγό, πολλές φορές έχεις προβλήματα με τέτοιους εκτυπωτές. Παρόλα αυτά όμως βλέπω στην σελίδα του hplip ότι υποστηρίζεται πλήρως από την έκδοση 3.14.3. Το FreeBSD από ό,τι βλέπω στα ports παρέχει την 3.16.11 οπότε λογικά θα πρέπει να παίζει.
Έχεις εγκατεστημένα τα print/cups, print/hplip, print/hplip-plugin ?"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
14-01-17, 12:23 Απάντηση: Help εκτύπωση freebsd (pc-bsd,freebsd,Netbsd είναι παρόμοια). Οχι απάντηση. #15
Ναι.Thanks πολύ χρήσιμη η βοήθεια σου.
Παρόμοια Θέματα
-
Οδηγός Freetz για Fritz!box
Από MarkoDiMarko στο φόρουμ AVM ADSL modems και routersΜηνύματα: 82Τελευταίο Μήνυμα: 31-05-20, 17:23 -
Οδηγος: Κεραιες τηλεοπτικού σήματος - Εγκατάσταση
Από graphist83 στο φόρουμ DVB-T, Tηλεοράσεις, IPTVΜηνύματα: 74Τελευταίο Μήνυμα: 26-03-20, 22:05 -
Συμβούλιο της Ευρώπης: οδηγός για τα ανθρώπινα δικαιώματα στο διαδίκτυο
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 2Τελευταίο Μήνυμα: 18-04-14, 02:43
Bookmarks