Red Hat 7 USB kann nicht aus dem Notfallmodus versetzt werden (vi / etc / fstab wird überhaupt nicht angezeigt)

342
RickwhoPrograms

Ich habe ein Problem mit einem bootfähigen USB, den ich erstellt habe. Dies ist also ein laufendes Projekt, an dem ich seit einiger Zeit arbeite. Grundsätzlich habe ich Red Hat 7 auf einem USB-Stick installiert, so dass der USB-Server im Wesentlichen das Betriebssystem ist. Ich gab dann die folgenden Befehle aus, um zu versuchen, diesen "Live-USB" zur Weiterverteilung in eine .raw.gz-Datei zu erfassen:

 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-Sticks und speichert sie als komprimierte .raw-Datei in einem Image namens newredhat.raw.gz. Der Prozess funktioniert wie erwartet, bis auf eine Sache. Ich gebe dann den folgenden Befehl aus, um dieses benutzerdefinierte Image auf einen anderen USB zu übertragen, der mit fat32 formatiert und zu 100% sauber ist:

 zcat newredhat.raw.gz > /dev/sdc 

Nachdem das Extrahieren / Schreiben abgeschlossen ist, bootet der neue USB wie gewünscht, jedoch im Notfallmodus. Ich habe stundenlang nach den Gründen gesucht, die dahinter stehen könnten, aber da dies wohl ein sehr einzigartiges Szenario ist, gibt es nicht viel darüber. Ich habe vi / etc / fstab ausprobiert und sagt mir, dass / etc / fstab nicht existiert und erstellt eine neue Datei zum Bearbeiten. Ich habe mir auch die Zeitschrift angesehen und das Einzige, was zurückkommt, ist "sysroot konnte nicht montiert werden". Die Idee hinter diesem ganzen Projekt ist, dass es ein einfacher Extrakt sein könnte - go clone für meine Linux-basierten USB-Server und -Server. Was ist wirklich seltsam ist, dass diese genaue Methode für openSUSE funktionierte. Hat es etwas damit zu tun, wie Red Hat seine Architektur bei der Installation erstellt? Wenn dies der Fall ist, gibt es irgendwelche Umgehungsmöglichkeiten? Vielen Dank im Voraus für die Hilfe!

0

1 Antwort auf die Frage

1
dirkt

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

2) Abhängig davon, wie genau Sie den ersten USB-Stick ausgelegt haben (Sie haben es uns nicht mitgeteilt), haben die ersten 5 GB möglicherweise die Partitionstabelle am Ende verfehlt.

Der sichere Weg zum Kopieren von Speichermedien unterschiedlicher Größe besteht darin, auf jeder eine Partitionstabelle mit einer einzigen bootfähigen Partition gleicher Größe (mit einem beliebigen Partitionsprogramm) zu erstellen, und anschließend 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 kompensieren.

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, sich die angezeigten Nachrichten anzusehen, bevor Sie in den Notfallmodus wechseln. dmesgoder Protokolle helfen, wenn es zu schnell blättert. Bearbeiten Sie daher die Frage mit den wörtlichen Nachrichten, die angezeigt werden, bevor sie sich als "Fehler beim Anhängen der Sysroot" beklagt. Ich habe eine Vermutung, weil Sie die Partitionstabelle durcheinander gebracht haben (siehe oben). Die erkannte Partitionstabelle sollte in dmesg / logs angezeigt werden. Wenn "dieselbe Methode für openSUSE funktioniert", kann dies daran liegen, dass openSUSE ein anderes Partitionierungsschema verwendet und / oder Ihre USB-Sticks dieselbe Größe hatten.

Bearbeiten

Ein Problem beim Kopieren des Starts des gesamten USB-Sticks ist beispielsweise, dass ein GPT auch ganz am Ende Informationen enthält. Obwohl es sich um doppelte Informationen handelt, kann dies zu Problemen führen.

Also nochmal: Anstatt nur die ersten 5G eines 32G-Sticks auf einen 16G-Stick zu kopieren, erstellen Sie eine Partition der Größe 5G auf dem ersten Stick, erstellen Sie eine Partition mit der gleichen Größe auf dem zweiten Stick, 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, Sie müssen lediglich sicherstellen, dass die Partitionen exakt dieselbe Größe haben.

Hallo Dirk, das Ziel für die Count-Methode war es, 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 auf einem 16B-USB-Anschluss bereitstellen. Haben Sie nach meinem Verständnis gemeint, dass es besser ist, das gesamte Laufwerk in einem beliebigen Szenario kopieren zu lassen und es dann einfach bereitzustellen? oder müsste ich am Ziel-USB eine fdisk -l ausführen und dann den Befehl count am Quell-USB mit den berechneten Informationen aus dem Zieldateisystem ausgeben? RickwhoPrograms vor 5 Jahren 0
Ich habs! Würde das überhaupt eine der vorhandenen Daten von der Quelle zum Ziel kopieren? Ich hatte gehofft, dass ich auch einige Informationen kopieren könnte! RickwhoPrograms vor 5 Jahren 0