Archiv der Kategorie: Tipps & Tricks

Kategorie für den Blog (Linux)

GRUB reparieren

error: no such partition. Entering rescue mode...
grub rescue>

Falls Du diese Meldung auf Deinem Debiansystem bekommst, hast Du den Grub-Bootloader zerschossen. Jetzt wird es an der Zeit, die Installations-CD von Debian einzusetzten. Lege die CD ein und wähle dann im Installationsmenu:

Advanced option > Rescue mode

Du solltest Dein System kennen, bevor Du dich an die Reparatur von GRUB wagst. Der Rettungsmodus wird Dir ganz oben links angezeigt!

  • Sprache, Land und Ort wählen
  • Netzwerk wählen (falls dies gefragt wird)
  • Rechnername wählen (spiel keine Rolle, was hier gewählt wird: z.B.: supertux)
  • Domain-Name wählen (wählen, oder leer lassen)
  • root-Dateisystem wählen! (In diesem Beispiel liegt root auf /dev/sda2)

01. Das Wählen des richtigen Root-Dateisystems ist enorm relevant! Falls Du das falsche Root-Dateisystem wählst, führt dies unweigerlich zu einer Fehlermeldung!

02. falls /boot auf / liegt, ist das Einbinden von /boot sparat nicht nötig und diese Meldung wird nicht angezeigt.

Das installierte System nutzt scheinbar eine separate /boot-Partition.

Es ist normalerweise eine gute Idee, sie einzubinden, da sie so die Möglichkeit haben,
Operationen wie das Neuinstallieren des Bootloaders durchzuführen. Wenn allerdings das
Dateisystem auf /boot beschädigt ist, sollten Sie eventuell davon absehen, sie
einzubinden.

Separate /boot-Partition einbinden?

03. Wähle mit den Pfeiltasten nun auf Eine Shell in /dev/sdXY ausführen

Rettungsaktion

Eine Shell in /dev/sdXY ausführen
Eine Shell in der Installer-Umgebung ausführen
Den GRUB-Bootloader neu installieren
GRUB-Installation in den EFI-Wechseldatenträgerpfad erzwingen
Ein anderes Wurzeldateisystem wählen
System neu starten

04. GRUB neu installieren

Alternative I

Es kann natürlich auch „Den GRUB-Bootloader neu installieren“ gewählt werden. Bei Linux führen manchmal verschiedene Wege zum Ziel und es kann mehrere Lösungen geben.

Alternative II (Falls Dein System EFI unterstützt)

Wir befinden uns nun in der Shell der Rettungsaktion. Installieren nun das Paket grub-efi

apt install grub-efi

und binde die EFI-Bootpartition ein.

mount /dev/sdXY /boot/efi

Installiere jetzt den Bootloader in das Wurzelverzeichnis:

Alternative III

Installieren das Paket grub

apt install grub

und binde die Bootpartition ein. 

mount /dev/sdXY /boot/grub

05. Installiere den Bootloader in das Wurzelverzeichnis:

grub-install /dev/sdXY

führe ein update-grub aus.

update-grub

Verlasse die Shell mit

exit

06. und wähle System neu starten aus.

Datenrettung mit foremost

Foremost eignet sich hervorragend, um bereits gelöschte Dateien wieder herzustellen.

Schritt 1

Installiere auf deinem Linuxsystem foremost mit:

# apt install foremost

Schritt 2

Lasse nun foremost laufen. Foremost durchsucht nun das Dateisystem und legt alle gefunden Dateien (hier jpg-Bilder) unter dem Ordner /output ab. Bedenke dabei, dass dies lange dauern kann. Meine 1 TB Festplatte dauerte rund 2.5 Stunden. Dabei fand foremost rund 950“000 Bilder mit einem Volumen von nahezu 85 GB. Prüfe vorher, ob /output also genügend freien Speicher besitzt!

# foremost -t jpg -i /pfad/zur/partition/sdbX

in diesem Beispiel durchsucht foremost also die angeschlossene Festplatte unter /pfad/zur/partition/sdbX und gibt alle gefundenen jpg-Bilder in /output aus. X und der Pfad müssen angepasst werden.

Schritt 3

Da foremost unter root lief, sind wir als normaler Benutzer noch nicht befugt, die gefundenen Bilder zu bearbeiten. Mit:

# chown -c -R BENUTZER /pfad/zu/output/

ändern wir die Rechte so, dass BENUTZER nun ohne root auf die Bilder zugreifen kann.

Schritt 4

Bilder unter 50 kB sind in der Regel Thumbnails oder Icons, welche getrost ignoriert werden können. Da wir jetzt einen Ordner mit vielen Bildern haben, macht es Sinn, einige davon zu löschen. In diesem Beispiel löschen wir alle Bilder unter /output, welche kleiner als 50 kB sind:

find /pfad/zu/output -type f -size -50k -exec rm -f {} \;

Schritt 5

Unser Ordner hat aber immer noch sehr viele Bilder. Versuchen wir den Ordner mit einen Dateimanager zu öffnen, dauert das Erstellen der Vorschaubilder ewig. Nun splitten wir den Ordner /output so auf, dass sich jeweils 1000 Bilder in einem Unterordner befinden. Erstelle unter /output mit nano eine Datei (z.B. meinscript.sh)

nano -w meinscript.sh

und füge nun folgenden Code ein:

#!/bin/bash
target=“$RANDOM“_“$RANDOM“_“$RANDOM“
mkdir „$target“
mv -t „$target“/ „$@“

das Script muss noch ausführbar gemacht werden mit:

chmod +x meinscript.sh

Mit dem printf-Befehl:

printf "%s\0" *.jpg | xargs -0 -n 1000 ./meinscript.sh

splitten wir nun den gesamten Ordner auf. Dabei landen exakt immer 1000 Bilder in einem entsprechenden Unterodner. Nun können wir die gefundenen Bilder in akzeptabler Zeit durchscrollen.

Hinweis

foremost findet jedoch nicht nur Bilder und ist durchaus in der Lage, weitere Formate zu finden. Dazu einfach den entsprechenden Schalter anwenden. Weiter Infos findest Du hier

foremost -t all -i /pfad/zur/partition/sdbX

Dieser Befehl durchsucht die gesamte Festplatte oder Partition nach allmöglichen Dateien. Doch Vorsicht: unbedingt prüfen, ob /output genügend freien Speicher besitzt. Eine 1 TB Festplatte kann unter Umständen auch knapp 1 TB an Dateien liefern!

bootfähiger USB-Stick

Vorsicht! Alle Daten auf dem Stick werden gelöscht. In diesem Beispiel wird der Memorystick unter /dev/sdc eingehängt. Achte darauf, den richtigen mount point zu benutzen!

01. Starte fdisk mit:

# fdisk /dev/sdX

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): 

02. fdisk erwartet von uns nun eine Eingabe. Mit p zeigen wir uns alle existierenden Partitionen auf dem Stick an. Tippe also p und drücke auf Enter:

Command (m for help): p
Disk /dev/sdc: 3.7 GiB, 3910041600 bytes, 7636800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xddd96107

Device     Boot Start     End Sectors  Size Id Type
/dev/sdc1        2048 7634943 7632896  3.7G  7 HPFS/NTFS/exFAT

03. auf /dev/sdc1 existiert bereits eine 3.7 GB grosse ntfs-Partition. Diese ist jedoch für ein Live-System nicht geeignet. Also weg damit:

Command (m for help): d /dev/sdc1
Selected partition 1
Partition 1 has been deleted.

04. diesen Vorgang so lange wiederholen, bis p keine Partitionen mehr anzeigt. Erst jetzt können wir den Stick vorbereiten. Mit n legen wir eine neue Partition an.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-7636799, default 2048): (drücke hier Enter)
Last sector, +sectors or +size{K,M,G,T,P} (2048-7636799, default 7636799): (drücke hier Enter) 

Created a new partition 1 of type 'Linux' and of size 3.7 GiB.

Command (m for help): 

05. Um den Stick als Live-System nutzen zu können muss er in FAT32 formatiert werden und bootbar sein.

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): c
If you have created or modified any DOS 6.x partitions, please see the fdisk documentation for additional information.
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.

06. zuletzt setzten wir mit a die Partition auf bootbar:

Command (m for help): a
Selected partition 1
The bootable flag on partition 1 is enabled now.

07. letzte Kontrolle, ob alles so ist, wie es sein soll:

Command (m for help): p
Disk /dev/sdc: 3.7 GiB, 3910041600 bytes, 7636800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xddd96107

Device     Boot Start     End Sectors  Size Id Type
/dev/sdc1  *     2048 7636799 7634752  3.7G  c W95 FAT32 (LBA)

Das war’s. Du hast nun einen bootfähigen USB-Stick. Das „bootable flag“ kann übrigens auch im Nachhinein gesetzt werden, falls z.B. ein *.iso-Abbild per dd auf den Stick kopiert wurde.