Screenshots machen von Installation mit bsdinstall möglich?

cabriofahrer

Well-Known Member
Ich würde gerne die Installation von FreeBSD mit 3 Festplatten und ZFS doumentieren und brauche dazu dann doch individuelle Screenshots. In einer VM geht das natürlich, aber auf einer realen Maschine? Gibt es da irgendeine Möglichkeit?
 
Smartphone, Digicam, DSLR mit Stativ

Alternativ, installation per Serieller konsole geht ja auch glaub ich bei Freebsd, da kannst du bei den meisten clients komplett mitloggen oder zumindest einfach screenshots erstellen.
 
Alternativ, installation per Serieller konsole geht ja auch glaub ich bei Freebsd, da kannst du bei den meisten clients komplett mitloggen oder zumindest einfach screenshots erstellen.

Etwas genauer bitte? Muss man da wirklich 2 PC's mit seriellem Kabel miteinander verbinden? Dann habe ich auch gehört mit vidcontrol(1), ich kann aber mit der man nicht viel anfangen...
 
Etwas genauer bitte? Muss man da wirklich 2 PC's mit seriellem Kabel miteinander verbinden? Dann habe ich auch gehört mit vidcontrol(1), ich kann aber mit der man nicht viel anfangen...

Ja, idr schon, alternativ bieten einige integrierte Managementcontroller auch eine serielle konsole an auf die man dann per ssh o.ä. zugreifen kann.

Je nach alter kann man auch dadrüber hinaus u.U. auf die AMT-Sachen von Intel per VNC zugreifen e.t.c. - das hängt aber extrem vom Firmwarestand e.t.c. ab und ich weiß garnicht so genau was bei modernernen versionen möglich oder nicht mehr möglich ist.
 
Das geht ganz einfach via SSH. Am Anfang <LIVECD> wählen. "/etc" ist aber schreibgeschützt. Daher muss man ein paar Sachen für SSHD voreinstellen:
Code:
mkdir /tmp/etc
mount_unionfs /tmp/etc /etc
vi /etc/ssh/sshd_config
  PermitRootLogin yes
/etc/rc.d/sshd onestart
passwd root
dhclient <NIC>
Danach kannst du dich per SSH verbinden und "bsdinstall" starten.
 
Wenn du (leihweise) an einen IP-KVM oder Screengrabber/Capture-Card kommst und ein BMC/IPMI/Serial nicht möglich ist, wäre das eine Alternative
 
Das geht ganz einfach via SSH. Am Anfang <LIVECD> wählen. "/etc" ist aber schreibgeschützt. Daher muss man ein paar Sachen für SSHD voreinstellen:
Code:
mkdir /tmp/etc
mount_unionfs /tmp/etc /etc
vi /etc/ssh/sshd_config
  PermitRootLogin yes
/etc/rc.d/sshd onestart
passwd root
dhclient <NIC>
Danach kannst du dich per SSH verbinden und "bsdinstall" starten.


Ich habe mal ein vorläufiges Experiment gemacht: Vom Hauptrechner einfach mit "ssh 193.168.1.53" mit dem Laptop verbunden (hängen beide am Router des ISP). Fragt zunächst nach dem Userpasswort. Wenn ich es eingebe, kann ich mit "su" root werden und "bsdinstall" starten. Dieses Bild im Terminal ließe sich dann problemlos mit dem Screenshooter Plugin von xfce festhalten, so weit, so gut.

Doch nun mal zur hypothetischen Remoteinstallation selbst: Ich nehme an, in Deiner Anleitung befindet sich die LiveCD in dem CD-Laufwerk des Rechners, auf dem das System installiert werden muss, richtig? Und für die von Dir beschriebenen Schritte braucht der Rechner, auf dem installiert wird, noch einen eigenen Bildschirm, um diese Schritte überhaupt ausführen zu können, bevor man mit ssh von dem zweiten Rechner, auf dem man die Screenshots machen will, überhaupt zugreifen kann?

Nach der allgemeinen Theorie einer Remoteinstallation hat der Targetrechner m.E. aber gar keinen eigenen Bildschirm. Man soll das BIOS angeblich zunächst auf "Boot from LAN" stellen.

Und wie soll das dann weiter funktionieren, wenn auf dem Targetrechner noch gar kein Betriebssystem drauf ist? Bekommt durch die "Boot on LAN" Option der Rechner vom Router schon eine IP zugewiesen, so dass man mit ssh verbinden kann und bsdinstall ausführen kann?
 
Und wie soll das dann weiter funktionieren, wenn auf dem Targetrechner noch gar kein Betriebssystem drauf ist? Bekommt durch die "Boot on LAN" Option der Rechner vom Router schon eine IP zugewiesen, so dass man mit ssh verbinden kann und bsdinstall ausführen kann?
naja, ich fürchte gar nicht.
Wie willst du dich mit einem wirklich remoten Remote-System verbinden, wenn dort gar kein System ist? Etwas muss schon da sein, damit du dich damit auf irgendeine Weise verständigen kannst. Ohne OS hast du ja nicht mal eine IP, an die du dich wenden kannst und wie man die BIOS-Settings dabei dann verändern will, das müsste mir einer mal erklären. (da bräuchten wir uns dann über Sicherheit wirklich gar keine Gedanken mehr zu machen, wenn das tatsächlich geht).
 
Per Lan-Boot kann man ja relativ beliebige images (uvm.) booten - je nach version von nem tftp server oder inzwischen auch per https & Co.

Das Image hinterlegst du dort aber selber, d.H. du hast da die volle kontrolle drüber.

Natürlich kannst du dann auch ein image nehmen das z.B. ssh support hat, z.B. mit irgend nem default kennwort. Wenn du das image selbst irgendwie baust könntest du auch z.B. nen public key hinterlegen.

IP macht man da per DHCP-Server, der kann dir ja z.B. sagen welche Addresse der Client bekommen hat oder du gibts ihm gleich eine bestimmte addresse vor. AFAIK gibt der DHCP-Server dem Client noch vor dem OS Boot auch die Infos über das zu bootende Image e.t.c. weiter.

Die Technik ist auch nicht gerade neu, afaik ging das schon in den 90ern los, evtl. sogar in den späten 80ern,.
 
Ich bin aufgrund dieses Artikels darauf gekommen:

https://help.kaspersky.com/KSC/SP3/en-US/62008.htm

"The administrator can use the images received for deployment on new networked devices on which no operating system has been installed yet."

Das ist aber alles sehr allgemein gehalten, ebenso wie die Antwort von @CommanderZed, die wahrscheinlich das meint, was der Artikel beschreibt. Somit weiß ich aber insgesamt immernoch nicht genau, wie ich sinnvoll mit der Boot on Lan Funktion umgehen soll, um ein Remote Install von einem OS abzuziehen.

Natürlich kannst du dann auch ein image nehmen das z.B. ssh support hat

Ich nehme an, dass das durch die von @foxit beschriebenen Schritte erreicht wird.
 
Per Lan-Boot kann man ja relativ beliebige images (uvm.) booten - je nach version von nem tftp server oder inzwischen auch per https & Co
dazu genügt es aber nicht, das BIOS auf Lan-Boot zu stellen und nochmal: wie soll ich das denn machen, wenn nichts auf dem remote-PC vorhanden ist, wo ich mich einwählen kann?
Da muss wenigstens eine Remote-Konsole angeboten werden.
Wer einen leeren PC irgendwo hinstellt (zB bei meinem Nachbarn, der meinetwegen auch noch beim gleichen ISP dran hängt), kann da nicht aus der Ferne irgendwelche BIOS-Einstellungen ändern und Quellen des Lan-Boots setzen. Ja, er kann noch nicht mal den PC einschalten und überhaupt den Boot-Prozess einleiten.

Das geht mir deshalb hier etwas zu unscharf.
Zunächst geht es um Remote-Screenshots, dann um Installation eines OS auf einem Remote-PC, zu dem man aber wirklich gar keinen Zugang hat (um etwa eine CD einzulegen).

AFAIK kann man Remote nur auf Systeme zugreifen, die bereits installiert sind und deshalb eine Grundfunktionalität mitbringen. Nicht auf pure PC-HW, die vielleicht am gleichen Netz angeschlossen ist, aber gar nicht weiß, was sie denn tun soll.

Quasi als Referenz verweise ich mal auf einen beliebigen Link zu dem Themenkomplex: https://wiki.hetzner.de/index.php/FreeBSD_installieren
und nenne noch mfsBSD, ohne zu wissen welche Rolle das heute noch spielt. Das war früher der Weg, auf einem System (etwa einem GNU/Linux, wie Hetzner oder andere das damals anboten) FreeBSD zu installieren (wenn man das nicht alles ganz manuell machen wollte).
Aber nochmal: da gab es jeweils immer schon ein System, mit dem man sich unterhalten konnte (vorzugsweise über ssh).

Jedenfalls scheint es mir hier einen Klärungsbedarf zu geben und sei es auch nur, dass ich selbst mal wieder auf dem Schlauch stehe.
Worum geht es denn nun eigentlich?
 
Ich bin aufgrund dieses Artikels darauf gekommen:
habe ich nur überflogen, aber die machen doch nichts, außer einen PXE-Server mit deinen eigenen Images zur Verfügung zu stellen (vermutlich nicht kostenlos).
Du kannst dann davon per LAN (PXE-Boot) booten, aber woher soll dein PC wissen, wovon er booten soll?
Das muss ihm natürlich sagen.
Und wie willst du das (auf BIOS-Ebene) bei einem ganz entfernten Rechner tun?
Ich glaube nicht, dass das geht.
 
dazu genügt es aber nicht, das BIOS auf Lan-Boot zu stellen und nochmal: wie soll ich das denn machen, wenn nichts auf dem remote-PC vorhanden ist, wo ich mich einwählen kann?
Da muss wenigstens eine Remote-Konsole angeboten werden.
Wer einen leeren PC irgendwo hinstellt (zB bei meinem Nachbarn, der meinetwegen auch noch beim gleichen ISP dran hängt), kann da nicht aus der Ferne irgendwelche BIOS-Einstellungen ändern und Quellen des Lan-Boots setzen. Ja, er kann noch nicht mal den PC einschalten und überhaupt den Boot-Prozess einleiten.

Ich will das mal etwas eingrenzen: Der PC steht nicht beim Nachbarn, sondern bei mir. Die BIOS-Einstellungen sollen nicht aus der Ferne verändert werden, sondern bevor der Rechner woanders vom Monitor genommen wird, auseinander genommen wird und neue Festplatten verpasst bekommt. Der Rechner bekommt dann eine FreeBSD Installations-CD ins Laufwerk gelegt.

Da muss wenigstens eine Remote-Konsole angeboten werden.

Dahin geht u.a. meine Frage. Wie sieht eine solche Remote-Konsole aus, mit der man dann die Installations-CD im Laufwerk lostreten kann, damit die neu installierten Platten partintioniert, formatiert und letztendlich das System von der Installations-CD draufgespielt wird?
Mit ssh ja nicht, wenn nicht vorher schon ein OS installiert ist, das ssh kennt, wenn ich das richtig verstanden habe.

Gibt es z.B. eine Möglichkeit, diese Remote-Konsole über ein Laptop mit USB-Verbindung zu realisieren, also nicht über das Netwerk / den DHCP vom Router?
 
Gibt es z.B. eine Möglichkeit, diese Remote-Konsole über ein Laptop mit USB-Verbindung zu realisieren, also nicht über das Netwerk / den DHCP vom Router?
Für den komplizierten Weg welchen du da anstrebst gibt es technische Möglichkeiten, welche aber nicht überall in Chips verfügbar sind.
Eine Remote-Konsole von einem Laptop mit USB würde dich zunächst in die Lage versetzen eher eine Verbindung über Seriell-Konsole herzustellen. Du kannst jedoch nicht via USB mal eben dem Ziel-System eine Tastatur und ein bootbares USB Medium anbieten.
Diese Funktion ist in IP-KVM Switches für remote-Zugriff verbaut.
https://www.nexlab.net/product/rasky/ <- da hat jemand versucht etwas selbst zu bauen. Gefrickelte Sachen mit USB-over-IP sind aber für die Praxis keine super Lösung. Entweder baut man sich eine Installationsroutine welche mittels PXE-Boot ein Setup anbietet und durchführt, oder man installiert besser per remote-KVM.
https://github.com/Fmstrat/diy-ipmi

Spontan gegoogelt und ungeprüft von mir: https://punkt.de/de/blog/2017/automatisierte-installation-von-servern-mit-freebsd-und-zfs.html
 
Was du meinst ist eine Remote-Konsole im der Art und Weise von IPMI. Damit kannst du die Konsole eines Rechners fernsteuern, ISO Dateien mounten oder einfach nur ein Bild anzeigen lassen. Ein normaler PC/Mainboard hat diese Schnittstelle aber i.d.R. nicht. Sprich du musst wohl per Hand die CD ins Laufwerk legen müssen und SSH so weit konfigurieren, damit du drauf zugreifen kannst.

Es gibt noch Cloud-init oder auch wie schon erwähnt PXE. Das ist noch eine Option:
Code:
label freebsdmfs
  menu label FreeBSD 11.1 amd64
  kernel /bsd.sys/freebsd/memdisk
  append initrd=/bsd.sys/freebsd/mfsbsd-11.1-RELEASE-amd64.img harddisk raw
Dafür braucht es aber angepasste FreeBSD ISO Dateien.
 
Das geht ganz einfach via SSH. Am Anfang <LIVECD> wählen. "/etc" ist aber schreibgeschützt. Daher muss man ein paar Sachen für SSHD voreinstellen:
Code:
mkdir /tmp/etc
mount_unionfs /tmp/etc /etc
vi /etc/ssh/sshd_config
  PermitRootLogin yes
/etc/rc.d/sshd onestart
passwd root
dhclient <NIC>
Danach kannst du dich per SSH verbinden und "bsdinstall" starten.

Hallo @foxit, vielen Dank nochmal, und jetzt ist der Moment gekommen, es endlich auszuprobieren. Ich habe die von Dir beschriebenen Schritte verfolgt und konnte erfolgreich bsdinstall über ssh starten. Der zu installierende Rechner hat nach dem Befehl dhclient nfe0 die IP 192.168.1.57 zugewiesen bekommen, womit ich mich dann über ssh verbinden konnte. Als Installationsmedium dient ein amd64 12.1 Mini-Image für USB. Habe auch wunderbare Screenshots anfertigen können, doch allerdings scheint die Installation keine Installationsdateien beziehen zu können, siehe Screenshot. Habe auch andere Server probiert, Frankreich und Österreich, aber immer das Gleiche.
 

Anhänge

  • 19.png
    19.png
    42,4 KB · Aufrufe: 211
Ich nehme aus Gewohnheit immer die FreeBSD-12.1-RELEASE-amd64-disc1.iso oder bei Sticks die FreeBSD-12.1-RELEASE-amd64-memstick.img, weil ich damit ohne Netzwerkfunktion installieren kann. Sprich, das was der Installer bei dir gerade nicht ziehen kann, ist bereits auf dem Medium.

Kann jetzt nur raten was bei dir nicht passt. DHCP ging ja, also sollte auch die 192.168.1.1 defaultrouter/GW sein netstat -rn4 und NS nameserver 192.168.1.1 in /etc/resolv.conf

Wenn alles murksig ist, versuch das 'dickere' img zu booten.
 
OK, Danke, mit dem "dickeren" hat es jetzt geklappt. Doch wenn ich mich jetzt nach Neustart des frisch installierten Systems nochmal mit ssh einloggen will, klappt es nicht? Ich nehme an, ich muss das Passwort eingeben, dass ich für root festgelegt hatte? Warum klappt das jetzt nicht?
 

Anhänge

  • Screenshot_2020-02-14_20-35-51.png
    Screenshot_2020-02-14_20-35-51.png
    76,5 KB · Aufrufe: 218
Weil root default nicht per ssh anmelden darf, ist auch gut so. Scanprogramme bzw. blackhats, die IP-ranges abscannen probieren immer root zuerst und müssten in dem Fall nur noch das PW erraten bzw. ein dictionary durchtesten.

Code:
vi /etc/ssh/sshd_config
  PermitRootLogin yes
/etc/rc.d/sshd onestart
Der Abschnitt von foxit hatte in dem Fall genau das bewirkt, aber eben nur für den 'liveboot'.

Für deine gemachte Installation empfehle ich dir aus o.g. Sicherheitsgründen per ssh username@192.168.1.57 anzumelden. Ist dieser user dann Mitglied in der Gruppe 'wheel', kannst du nach dem Login per su und dem root-PW root werden.

Muss es unbedingt Anmeldung direkt per root sein, machst du folgendes (also genau nochmal das gleiche nur 'gespeichert' für die jetzige Installation):
Code:
ee /etc/ssh/sshd_config
PermitRootLogin yes
service sshd restart
Aber hier nochmal wiederholt: ich rate davon ab, direkt root-Anmeldung zuzulassen. ;)
 
Danke, genau das brauchte ich! Nein, es ging mir nicht nur darum, mich als root anzumelden. Ich wollte schon zuerst als user, und dann vielleicht mit su, kannte den genauen Befehl aber leider nicht.
 
Zurück
Oben