[Gelöst] Welches Linux ?
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
[Gelöst] Welches Linux ?
Hallo, Debian 7 (wheezy) habe ich auf Live SD Card.
Ich bräuchte ein Script das überprüft welches Linux ( dieses nicht gestartet) auf der Festplatte installiert ist, und welches prüft welche Live Version gestartet ist.
Es soll im Terminal eine Ausgabe erfolge ala : Ubuntu ( mit Versionsnummer) ist auf Festplatte installiert etc
Wichtig währe für mich, das die Bit Version sehr wichtig währe, also ob 32 Bit oder 64 Bit installiert sind und die Liveversion dieselbe Bits hat, weil ich will chrooten!!
Ich währe sehr dankbar wenn mir jemand so ein Script hier posten könnte !? Danke.
Ich bräuchte ein Script das überprüft welches Linux ( dieses nicht gestartet) auf der Festplatte installiert ist, und welches prüft welche Live Version gestartet ist.
Es soll im Terminal eine Ausgabe erfolge ala : Ubuntu ( mit Versionsnummer) ist auf Festplatte installiert etc
Wichtig währe für mich, das die Bit Version sehr wichtig währe, also ob 32 Bit oder 64 Bit installiert sind und die Liveversion dieselbe Bits hat, weil ich will chrooten!!
Ich währe sehr dankbar wenn mir jemand so ein Script hier posten könnte !? Danke.
Zuletzt geändert von DEBIANUNDANDREAS am 14.11.2014 14:07:31, insgesamt 1-mal geändert.
Re: Welches Linux ?
Code: Alles auswählen
$ file /bin/bash
/bin/bash: ELF 64-bit LSB executable [...]
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
Re: Welches Linux ?
Code: Alles auswählen
file /bin/bash
Wie mache ich das für die Festplatteninstallation, grub??
Re: Welches Linux ?
Vorausgesetzt das System hat bash - funktioniert aber prinzipiell mit jedem anderen Binary auch.TRex hat geschrieben:Code: Alles auswählen
$ file /bin/bash /bin/bash: ELF 64-bit LSB executable [...]
Allerdings kann man sich streng genommen nicht darauf verlassen vor einem i386-System zu sitzen wenn man ein i386-Binary findet. Es könnte auch amd64 mit Multiarch sein.
Das Gleiche gilt für armel/armhf.
Eine wirklich zuverlässige Methode die Distribution und Version herauszufinden gibt es meines Wissens nach nicht. Debian (und Abkömmlinge) hat /etc/debian_version. Auf dem Wheezy/amd64-Rechner von dem ich gerade schreibe steht da z.B. das:
Code: Alles auswählen
$ cat /etc/debian_version
7.7
Suse hat analog dazu /etc/SuSe-release und bei Red Hat als Familie gab es da wohl auch was.
Was relativ gut funktioniert ist, uname -a mit den Daten auf Distrowatch zu vergleichen. Das führt meist zu einem eindeutigen Ergebnis. Eine Garntie dafür gibt es aber natürlich nicht und es funktioniert eh nur, wenn der Standardkernel der Distribution benutzt wird.
- Patsche
- Beiträge: 3262
- Registriert: 21.06.2013 01:47:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home/10001101001
Re: Welches Linux ?
Ich finde am eindeutigsten:
Code: Alles auswählen
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux testing (jessie)
Release: testing
Codename: jessie
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
Re: Welches Linux ?
Nä, man macht das anders.
1. Schritt im Terminal
2. chrootumgebung und dann ins interne Festplattensystem wechseln
3. im Terminal
Nur was ich nicht lösen konnte wie vergleiche ich den Output vom 1. Schritt mit dem 3. Schritt, weil beide Versionen (32 Bit oder 64 Bit) müssen beim chrooten gleich sein, Liveversion muss Festplattenversion entsprechen, um den 2. Schritt entweder in einem Scriptlauf zu starten oder zu beenden?
1. Schritt
Code: Alles auswählen
uname -a
2. chrootumgebung und dann ins interne Festplattensystem wechseln
3.
Code: Alles auswählen
uname -a
Nur was ich nicht lösen konnte wie vergleiche ich den Output vom 1. Schritt mit dem 3. Schritt, weil beide Versionen (32 Bit oder 64 Bit) müssen beim chrooten gleich sein, Liveversion muss Festplattenversion entsprechen, um den 2. Schritt entweder in einem Scriptlauf zu starten oder zu beenden?
Re: Welches Linux ?
Informiere dich doch bitte mal, was ein chroot ist.
Wenn du per chroot in ein anderes System wechselst läuft natürlich nicht der Kernel des anderen Systems.
Sofern dein Live-System GRUB mitbringt sollte dir ein
allerdings alle auf Festplatte befindlichen Systeme anzeigen.
Wenn du per chroot in ein anderes System wechselst läuft natürlich nicht der Kernel des anderen Systems.
Sofern dein Live-System GRUB mitbringt sollte dir ein
Code: Alles auswählen
sudo update-grub
Re: Welches Linux ?
Ich finds eine ganz schlechte Idee, einen Befehl abzusetzen, der Dinge ändert, zum Auslesen von Informationen zu verwenden. Und noch viel schlechter, sowas unbedacht einem Anfänger zu empfehlen - der zerschießt sich damit noch sein System.argx3 hat geschrieben: Sofern dein Live-System GRUB mitbringt sollte dir ein
allerdings alle auf Festplatte befindlichen Systeme anzeigen.Code: Alles auswählen
sudo update-grub
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Welches Linux ?
Wenn ich es recht verstehe, läuft auf dem Rechner ein Live-System und ein weiteres ist irgendwo auf der Festplatte installiert.
Wenn du auf der Ebene des Live-Systems
eingibst bekommst du dort die gesuchte Info zum Live-System
Dann suchst Du Dir den Mountpoint des anderen Systems (Festplatte muß ja irgendwo gemoutet sein), wechselst auf die Festplatte ins Verzeichnis bin und gibst
dann ein:
Wenn du auf der Ebene des Live-Systems
Code: Alles auswählen
file /bin/bash
Dann suchst Du Dir den Mountpoint des anderen Systems (Festplatte muß ja irgendwo gemoutet sein), wechselst auf die Festplatte ins Verzeichnis bin und gibst
dann ein:
Code: Alles auswählen
file bash
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
Re: Welches Linux ?
Der Wiederholung wegen >>>
Nur was ich nicht lösen konnte wie vergleiche ich den Output vom 1. Schritt mit dem 3. Schritt, weil beide Versionen (32 Bit oder 64 Bit) müssen beim chrooten gleich sein, Liveversion muss Festplattenversion entsprechen, um den 2. Schritt entweder in einem Scriptlauf zu starten oder zu beenden?
Nur was ich nicht lösen konnte wie vergleiche ich den Output vom 1. Schritt mit dem 3. Schritt, weil beide Versionen (32 Bit oder 64 Bit) müssen beim chrooten gleich sein, Liveversion muss Festplattenversion entsprechen, um den 2. Schritt entweder in einem Scriptlauf zu starten oder zu beenden?
Re: Welches Linux ?
Mach mal nicht so nen Wind. Wenn du das in nem Shellscript (ggf. zugeschnitten auf den Integer) hast, kannst du [ "$a" == "$b" ] verwenden.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
Re: Welches Linux ?
Leider hat das folgende nicht funktioniert. >>>
Als Terminaloutput >>>
Code: Alles auswählen
if [ "$a" == "$b" ]
then
echo "beide gleich"
read c
fi
/home/andy/Schreibtisch/chroot LiveCD.sh: 31: [: unexpected operator
Re: Welches Linux ?
sh kennt im Gegensatz zu bash nur ein einfaches "=" als Vergleichs-Operator:
Code: Alles auswählen
if [ "$a" = "$b" ]
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
Re: [Gelöst] Welches Linux ?
Danke das wahr richtig >>>
ein einmaliges Gleichheitszeichen reicht.
Damit ist das hiesige Thema (Thread) gelöst!!
Code: Alles auswählen
if [ "$a" = "$b" ]
Damit ist das hiesige Thema (Thread) gelöst!!
Re: Welches Linux ?
Ich schrieb, das kann man von einer LiveCD aus ausführen. Das ändert also am System genau gar nichts.TRex hat geschrieben:argx3 hat geschrieben: Ich finds eine ganz schlechte Idee, einen Befehl abzusetzen, der Dinge ändert, zum Auslesen von Informationen zu verwenden. Und noch viel schlechter, sowas unbedacht einem Anfänger zu empfehlen - der zerschießt sich damit noch sein System.
Re: Welches Linux ?
Beim Zitieren bitte aufpassen, ich hab das geschrieben, was da unter deinem Namen steht.argx3 hat geschrieben:Ich schrieb, das kann man von einer LiveCD aus ausführen. Das ändert also am System genau gar nichts.TRex hat geschrieben:argx3 hat geschrieben: Ich finds eine ganz schlechte Idee, einen Befehl abzusetzen, der Dinge ändert, zum Auslesen von Informationen zu verwenden. Und noch viel schlechter, sowas unbedacht einem Anfänger zu empfehlen - der zerschießt sich damit noch sein System.
Und zum Livesystem: ja, mag sein. Aber bring ich einem Kind bei, dass es in der Spielstraße nicht aufpassen muss, wenn es über die Straße läuft?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
- Inkodiktus
- Beiträge: 702
- Registriert: 15.08.2013 01:15:35
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: » host@user╺─╸[~]
Re: [Gelöst] Welches Linux ?
Habe etwas überlegt und denke es ist richtig.
Man kann schlecht 2 Systeme vergleichen, dann müsste man ein drittes haben, das die zwei vergleicht. ^^
Wobei dann das Script eh nur auf einem System läuft
Bzw.. dafür benötigte man schon etwas größeres als nur eine kleine if Schleife.
Da müsste man auch in jedes System einzeln reingehen, checken und dann wieder in das andere und dieses überprüfen.
Da wäre es ein Einfacheres uname -a abzuschicken.
Würd mich jetzt interessieren:
a) wer schreibt nun so ein Script
b) wie würde es denn aussehen
Ich bin grad am Lernen, deshalb nehme ich mir schon etwas vor.
Wenn ich nur Müll erzähle.
Grüße
Man kann schlecht 2 Systeme vergleichen, dann müsste man ein drittes haben, das die zwei vergleicht. ^^
Wobei dann das Script eh nur auf einem System läuft
Bzw.. dafür benötigte man schon etwas größeres als nur eine kleine if Schleife.
Da müsste man auch in jedes System einzeln reingehen, checken und dann wieder in das andere und dieses überprüfen.
Da wäre es ein Einfacheres uname -a abzuschicken.
Würd mich jetzt interessieren:
a) wer schreibt nun so ein Script
b) wie würde es denn aussehen
Ich bin grad am Lernen, deshalb nehme ich mir schon etwas vor.
Wenn ich nur Müll erzähle.
Grüße
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)