Αλλαγή του iPXE με pxelinux

Ξεκίνησε από stam12, 20 Μαΐου 2022, 10:12:38 ΠΜ

« προηγούμενο - επόμενο »

stam12

Εγκατέστησα τελικά το Ubuntu Mate 20.04.4 στο Server  και ρύθμισα τους σταθμούς εργασίας να φορτώνουν απ' αυτόν. Παρουσιάστηκαν μόνο δύο προβλήματα:

  • Ένας σταθμός εργασίας δε φορτώνει. Μετά από απόπειρα που κάνει να φορτώσει (ενώ βλέπει το Server στο δίκτυο), εμφανίζει στο τέλος το μήνυμα: "PRESS A KEY TO REBOOT" και μένει εκεί παγωμένος.
  • Το SETUP του BIOS σ' έναν άλλο σταθμό εργασίας ζητάει "password", το οποίο δε γνωρίζω! Υπάρχει κάποιος τρόπος να παρακαμφθεί αυτό το εμπόδιο;
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.

alkisg

Για το (1), δοκίμασε να το φορτώσεις με το iPXE:
https://ts.sch.gr/wiki/linux/ltsp/netboot/#χρήση-του-ipxe

Αν μπορείς ανέβασε κι ένα screenshot του προβλήματος.

Για το (2), πρέπει να το ανοίξεις, να βγάλεις τη μπαταρία του BIOS και να χρησιμοποιήσεις το jumperάκι που έχει για να μηδενιστούν οι ρυθμίσεις του:
https://www.intel.com/content/www/us/en/support/articles/000025368/processors.html

stam12

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

Ένα άλλο θεματάκι που αντιμετώπισα είναι το εξής: όταν φτιάχνω χρήστες, αυτοί δε φαίνονται στους "clients", αν και δημοσιεύω το δίσκο. Δε ξέρω τι μπορεί να φταίει και γι' αυτό. Μήπως παραλείπω κάποιο βήμα; 
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.


stam12

Εντάξει λύθηκαν τα προβλήματα, εκτός από το 1: PRESS A KEY TO REBOOT

Επισυνάπτω δύο φωτογραφίες από τις οθόνες εκκίνησης:


Μετά την πρώτη οθόνη εμφανίζεται η δεύτερη και δεν εμφανίζεται καθόλου η μπλέ οθόνη εκκίνησης για το ΛΣ Ubuntu.
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.


stam12

Όχι, δυστυχώς το ίδιο πρόβλημα παρουσιάζεται πάλι. Είναι μόνο ένα client! Όλοι οι άλλοι λειτουργούν κανονικά.
Παραθέτω πάλι την οθόνη εκκίνησης: ScreenShot
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.

alkisg

Δοκίμασε τα εξής:

1) Να βγάλεις το καλώδιο ρεύματος από τον Η/Υ. Να πατήσεις το κουμπί power on ώστε να αποφορτιστούν οι πυκνωτές. Να ξαναβάλεις το καλώδιο ρεύματος και να δεις αν έτσι μπουτάρει.

2) Να βγάλεις το "Boot from network" από το BIOS και να εγκαταστήσεις το grub-ipxe ώστε το ipxe να μπει ως επιλογή στον grub boot manager:
https://ts.sch.gr/wiki/linux/ltsp/netboot/#υπολογιστές-με-ubuntu

stam12

#8
Οκ, το πρώτο δε δούλεψε. Έκανα και το δεύτερο (εγκατέστησα δηλαδή το "win32-loader" και το έτρεξα), αλλά το αποτέλεσμα ήταν το ίδιο. Απ' ό,τι καταλαβαίνω δε φορτώνει την μπλε οθόνη για να προχωρήσει μετά στους ελέγχους και να τρέξει το Ubuntu.
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.

alkisg

Το BIOS έχει έναν ενσωματωμένο driver για τις onboard κάρτες δικτύου που λέγεται "undi".
Το iPXE τον χρησιμοποιεί και το καταλαβαίνουμε από τη γραμμή που λέει "... using undionly on ..." στα screenshots.
Μερικές  φορές ο undi driver έχει bugs σαν αυτό που αναφέρεις.

Τότε αντικαθιστούμε το "undionly.kpxe" με το "ipxe.pxe" ώστε να χρησιμοποιηθεί διαφορετικός driver που διατίθεται με το ipxe.pxe. Αυτό κάνει η εντολή wget που έγραψα παραπάνω, καθώς και η εγκατάσταση του grub-ipxe ή του win32-loader.
Τότε στα screenshots θέλουμε να δούμε τη γραμμή να λέει κάποιον driver πέρα από τους undi, για παράδειγμα στο παρακάτω screenshot βλέπουμε "... using rtl8139 on ...".

https://miro.medium.com/max/1400/1*1EeXYdQ0KRskqurqF81gEw.png

Γιατί τα γράφω όλα αυτά. Επειδή στο δικά σου screenshot βλέπω μόνο undionly και undipci, δεν βλέπω μη-undi driver του iPXE.
Αυτό είτε σημαίνει ότι κάτι δεν έκανες καλά, είτε ότι το iPXE δεν έχει driver γι' αυτήν την κάρτα και έτσι υποχρεώνεται να χρησιμοποιήσει τον προβληματικό driver undi του BIOS.

Μπούταρε το τοπικό λειτουργικό (π.χ. Windows) και πήγαινε στις ιδιότητες του driver και γράψε το PCI ID του. Σε Ubuntu μπορείς να το δεις με την παρακάτω εντολή:

Κώδικας: Bash
# lspci -nn -k | grep -A3 Ethernet
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
	Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet [1458:e000]
	Kernel driver in use: r8169

Αν το iPXE δεν έχει driver γι' αυτήν την κάρτα, θα πρέπει είτε να βάλεις άλλη κάρτα δικτύου είτε να κοιτάξουμε αν παίζει με το pxelinux αντί του ipxe.

stam12

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

alkisg

Γράψαμε και μια νέα σχετική σελίδα στο αγγλικό wiki, γι' αυτήν την σπάνια περίπτωση που δεν δουλεύει το ipxe: https://ltsp.org/guides/pxelinux/

Εντωμεταξύ για να δει κάποιος το μοντέλο (pci-id) της κάρτας δικτύου μέσα από το iPXE (χωρίς να χρειαστεί να εκκινήσει λειτουργικό), γίνεται πατώντας Ctrl+B και γράφοντας:

echo ${pci/${busloc}.0.2}:${pci/${busloc}.2.2}

Αν θες έλα και από το chat room κάποια στιγμή να το δούμε live.

stam12

#12
Παράθεση από: alkisg στις 23 Μαΐου 2022, 12:31:23 ΜΜΤο BIOS έχει έναν ενσωματωμένο driver για τις onboard κάρτες δικτύου που λέγεται "undi".
Το iPXE τον χρησιμοποιεί και το καταλαβαίνουμε από τη γραμμή που λέει "... using undionly on ..." στα screenshots.
Μερικές  φορές ο undi driver έχει bugs σαν αυτό που αναφέρεις.
...
Μπούταρε το τοπικό λειτουργικό (π.χ. Windows) και πήγαινε στις ιδιότητες του driver και γράψε το PCI ID του. Σε Ubuntu μπορείς να το δεις με την παρακάτω εντολή:
...
Αν το iPXE δεν έχει driver γι' αυτήν την κάρτα, θα πρέπει είτε να βάλεις άλλη κάρτα δικτύου είτε να κοιτάξουμε αν παίζει με το pxelinux αντί του ipxe.
Οι λεπτομέρειες για την (ενσωματωμένη) κάρτα δικτύου: "Atheros AR8131 PCI-E Gigabit Ethernet Controller (NDIS 6.20)", για το PC που έχει το πρόβλημα, φαίνονται στην επισυναπτόμενη εικόνα. Με βάση την εντολή "echo" από το iPXE το αποτέλεσμα που βγαίνει για το PCI ID είναι: 1969:1063
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.

alkisg

ΟΚ απ' ότι βλέπω θα χρειαστεί το workaround με το pxelinux, αν μπορείς ακολούθησε το https://ltsp.org/guides/pxelinux/ αλλιώς έλα από το chat να το δούμε μαζί.

stam12

#14
Μια ερώτηση μόνο, αν ασχοληθώ αύριο μόνος μου πριν χρειαστεί να έρθω στο chat: αυτή η dhcp-mac που φαίνεται στις παρακάτω εντολές ποια είναι; Μπαίνει ως έχει, ή είναι η mac του server ή του client που έχει το πρόβλημα;

# Documentation=https://ltsp.org/guides/pxelinux/
dhcp-mac=set:pxelinux,52:54:61:67:00:01
pxe-service=tag:pxelinux,X86PC,"pxelinux.0",ltsp/pxelinux.0
dhcp-boot=tag:pxelinux,ltsp/pxelinux.0
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.

alkisg

Για να μην εμφανίζει ο συγκεκριμένος client επιλογή μεταξύ undionly και pxelinux, χρειάζεται να πας στα sch-scripts > Εξυπηρετητής > Αρχεία ρυθμίσεων > ltsp-dnsmasq.conf,

και να αλλάξεις τη γραμμή:

pxe-service=tag:proxy,tag:!ipxe,X86PC,"undionly.kpxe",ltsp/undionly.kpxe

σε:

pxe-service=tag:proxy,tag:!ipxe,tag:!pxelinux,X86PC,"undionly.kpxe",ltsp/undionly.kpxe

...και μετά να εκτελέσεις:

sudo systemctl restart dnsmasq

stam12

#16
Ευχαριστούμε τον Άλκη για τη φιλότιμη υποστήριξη που παρέχει. Υποστήριξη με Υ κεφαλαίο.
Το να κάνεις λάθος είναι ανθρώπινο και το να ρίχνεις το φταίξιμο στον υπολογιστή είναι ακόμη πιο ανθρώπινο.