Der Notfallmodus von Red Hat 7 USB wird nicht beendet (vi / etc / fstab wird überhaupt nicht angezeigt)

0

Ich habe ein Problem mit einem bootfähigen USB, den ich erstellt habe. Das ist also ein laufendes Projekt, an dem ich schon eine Weile arbeite. Grundsätzlich habe ich Red Hat 7 auf einem USB installiert, so dass der USB im Wesentlichen das Betriebssystem ist. Ich habe dann die folgenden Befehle ausgegeben, um zu versuchen, diesen "Live-USB" zur Weitergabe in eine .raw.gz-Datei aufzunehmen:

  if=/dev/sda bs=10000 count=500000 status=progress | gzip > newredhat.raw.gz

Die obige Aufgabe erfasst die ersten 5 GB des bootfähigen USB und speichert sie in einem Image mit dem Namen newredhat.raw.gz als komprimierte .raw-Datei. Der Prozess funktioniert bis auf eine Sache so, wie er sollte. Anschließend gebe ich den folgenden Befehl ein, um dieses benutzerdefinierte Image auf einen anderen USB-Stick zu übertragen, der mit fat32 formatiert wurde und zu 100% sauber ist:

 zcat newredhat.raw.gz > /dev/sdc

Nachdem das Extrahieren / Schreiben abgeschlossen ist, bootet der neue USB ordnungsgemäß, startet jedoch im Notfallmodus. Ich habe stundenlang darüber nachgedacht, was die Gründe dafür sein könnten, aber da dies wohl ein sehr einzigartiges Szenario ist, gibt es nicht viel darüber. Ich habe vi / etc / fstab ausprobiert und es zeigt mir, dass / etc / fstab nicht existiert und erstellt eine neue Datei zum Bearbeiten. Ich habe mir auch das Tagebuch angeschaut und das einzige, was zurückkommt, ist "sysroot konnte nicht gemountet werden". Die Idee hinter diesem ganzen Projekt ist, dass es ein einfacher Auszug sein könnte - mach einen Klon für meine Linux-basierten USBs und Server. Was wirklich seltsam ist, ist, dass genau diese Methode für openSUSE funktioniert hat. Hat das etwas damit zu tun, wie Red Hat seine Architektur bei der Installation erstellt? Wenn dies der Fall ist, gibt es eine Abhilfe? Vielen Dank im Voraus für all die Hilfe!

RickwhoPrograms
quelle

Antworten:

1

1) Der bsParameter für ddist die Blockgröße . Wenn dies keine Zweierpotenz ist und dies insbesondere nicht die Blockgröße Ihres Geräts ist, machen Sie es falsch. In diesem Fall nicht verwenden dd.

2) Je nachdem, wie genau Sie den ersten USB-Stick angelegt haben (Sie haben es uns nicht mitgeteilt), haben die ersten 5 GB möglicherweise die Partitionstabelle am Ende verpasst.

Der sichere Weg, zwischen Speichermedien unterschiedlicher Größe zu kopieren, besteht darin, eine Partitionstabelle für jedes Speichermedium mit einer einzelnen bootfähigen Partition gleicher Größe (mit einem beliebigen Partitionsprogramm) zu erstellen und dann die gesamte Partition zu kopieren

gzip /dev/sda1 > newredhat.raw.gz
zcat newredhat.raw.gz > /dev/sdc1

Auf diese Weise kann die Partitionstabelle Geräte unterschiedlicher Größe ausgleichen.

Dies funktioniert auch zwischen USB-Sticks und Festplatten.

3) Um zu debuggen, was zu Ihrem zweiten USB-Stick gehört, ist es äußerst hilfreich, die angezeigten Meldungen zu lesen, bevor Sie in den Notfallmodus wechseln. dmesgoder Protokolle helfen, wenn zu schnell gescrollt wird. Bearbeiten Sie daher die Frage mit den wörtlichen Nachrichten, die Sie sehen, bevor sie sich beschwert, dass "sysroot nicht eingehängt werden konnte". Ich habe eine Ahnung, das liegt daran, dass Sie die Partitionstabelle durcheinander gebracht haben (siehe oben). Die erkannte Partitionstabelle sollte in dmesg / logs angezeigt werden. Und wenn "dieselbe exakte Methode für openSUSE funktioniert hat", kann dies daran liegen, dass openSUSE ein anderes Partitionsschema verwendet hat und / oder Ihre USB-Sticks dieselbe Größe haben.

Bearbeiten

Ein Problem beim einfachen Kopieren des Starts des gesamten USB-Sticks besteht darin, dass beispielsweise ein GPT am Ende auch Informationen enthält. Dies sind zwar doppelte Informationen, kann jedoch zu Problemen führen.

Also nochmal: Anstatt nur die ersten 5G eines 32G-Sticks auf einen 16G-Stick zu kopieren, erstellen Sie auf dem ersten Stick eine Partition der Größe 5G, erstellen Sie auf dem zweiten Stick eine Partition der exakt gleichen Größe, und kopieren Sie dann die Partition (/ dev / sda1), nicht der ganze Stick (/ dev / sda). Sie können Partitionen mit erstellen fdisk, gdisk, parted, oder was auch immer Sie mögen. Sie müssen nichts berechnen, sondern nur sicherstellen, dass die Partitionen exakt die gleiche Größe haben.

dirkt
quelle
Hallo Dirk, das Ziel für die Verwendung der Zählmethode war, dass ich diesen Befehl auf einem 32-GB-USB-Stick ausführen und die DD in einer Datei mit einer Größe von 5 GB speichern wollte. Auf diese Weise konnte ich dieses Image dann auf einem 16-GB-USB-Stick bereitstellen. Meines Wissens nach ist es in jedem Szenario besser, das gesamte Laufwerk kopieren zu lassen und es dann einfach bereitzustellen? Oder muss ich eine fdisk -l auf dem Ziel-USB ausführen und dann den Befehl count auf dem Quell-USB unter Verwendung der berechneten Informationen aus dem Zieldateisystem ausgeben?
RickwhoPrograms
verstanden! Würde das allerdings alle vorhandenen Daten von der Quelle zum Ziel kopieren? Ich hatte gehofft, ich könnte einige der Informationen auch kopieren!
RickwhoPrograms