GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie installiere ich GRUB auf einem neuen Laufwerk?

Ich bin kein Grub2-Experte (sorry), aber versuchen Sie, --skip-fs-probe hinzuzufügen zu Ihrer Grub-Installationszeile habe ich festgestellt, dass dies die Erstellung von /boot/grub/device.map verhindert was dazu führen kann, dass zu einer Grub-Eingabeaufforderung gebootet wird. Ich denke, ohne diesen Parameter denkt grub-install, anstatt zu tun, was Sie ihm sagen, dass es klüger ist als Sie und möglicherweise etwas anderes macht.

Eine andere Sache ist sicherzustellen, dass Sie die richtige Grub-Installation verwenden (dh für Grub2 und nicht für Original Grub). Dies ist kein Problem, wenn Sie sich innerhalb von Centos befinden, aber mit SystemRecoveryCD sind beide Versionen verfügbar und Sie müssen also grub2-install verwenden . Ich habe es auf die harte Tour gelernt...

Und wie @wurtel betonte (Kudos), sollten Sie ein Laufwerk und keine Partition angeben. Grub2 wird in Sektor 0 des gesamten Festplattenlaufwerks installiert, und dieser 'Stub' wird beim Booten ausgeführt, aber es muss wissen, wo auf der Festplatte es die Dateien für die nächste Phase des Bootens installieren soll - das ist, was der --root-directory Parameter ist für. (glaube ich.)

Lesen von man grub-install und googeln sehe ich diesen --root-directory ist nicht wirklich für die grub2-Versionen 1.99++ gedacht, obwohl es meiner Erfahrung nach funktioniert. Sie sollen --boot-directory verwenden und beziehen Sie sich auf das eigentliche Boot-Verzeichnis, also würden Sie Folgendes erhalten:

grub-install /dev/sdb --skip-fs-probe --boot-directory=/media/new_drive/boot

So habe ich eine Debian-Installation verschoben, die aus einer Boot-Partition /boot besteht und eine Root-Partition / auf ein neues Laufwerk und machte es mit GNU GRUB bootfähig:

Partitionen klonen

  • Erstellen Sie mit der Live-CD von GParted die Boot- und Root-Partition auf dem neuen Laufwerk.
  • Mounten Sie mit einer Root-Konsole in GParted die alte Boot-Partition (sagen wir, sie ist /dev/sda1 ) und die neue Partition (/dev/sdb1 ):mount /dev/sda1 /mnt/oldBoot && mount /dev/sdb1 /mnt/newBoot
  • Kopieren Sie die Daten von der alten Bootpartition auf die neue:cp -afv /mnt/oldBoot /mnt/newBoot . Erläuterung zu cp -afv :
    • a steht für "archivieren", was bedeutet:
      • Links nicht dereferenzieren
      • rekursiv kopieren (wie -R )
      • alle Attribute beibehalten (Zeitstempel, Eigentümer, Berechtigung)
    • f :Erzwingen, wenn eine vorhandene Zieldatei nicht geöffnet werden kann, entfernen Sie sie und versuchen Sie es erneut
    • v :wortreich, erklären, was getan wird
  • Dies erzeugt eine Ausgabe auf Ihrer Konsole, die Ihnen zeigt, welche Datei gerade kopiert wird und ob cp macht Fortschritte
  • Mounten und kopieren Sie die Dateien von Ihrer alten Root-Partition auf die neue:
    • Zur Sicherheit:umount /mnt/oldBoot && umount /mnt/newBoot
    • Mounten Sie die alte und die neue Root-Partition (vorausgesetzt, es ist /dev/sda2 und /dev/sdb2 ):mount /dev/sda2 /mnt/oldRoot && mount /dev/sdb2 /mnt/newRoot
    • Kopieren Sie die Daten der alten Root-Partition auf die neue Root-Partition:cp -afv /mnt/oldRoot /mnt/newRoot
  • Bearbeite die Dateisystemtabelle, die definiert, welche Partitionen beim Booten gemountet werden (dafür verwende ich Vim):
    • vi /etc/fstab

    • Sie werden feststellen, dass hier auf Ihre alten Partitionen verwiesen wird. Verwenden Sie stattdessen die UUIDs der neuen Partitionen

    • Sie können alle UUIDs zum einfacheren Kopieren und Einfügen mit :r !blkid vorübergehend in fstab einfügen

    • Verwenden Sie die UUIDs Ihrer neuen Partitionen, um die Einträge in fstab zu ändern. Sie sollten in etwa so aussehen:

       `# <file system> <mount point> <type> <options> <dump> <pass>
       # Root partition
       UUID=76fd1ffd-fb96-4ab4-be1a-42f8e9223983 / ext4 errors=remount-ro 0 1
       # Boot partition
       UUID=e560e29e-8752-4b83-b1ee-4b86c0009f0b /boot ext2 defaults 0 2`
      
      • Entfernen Sie die Ausgabe von blkid aus der fstab, die Sie zuvor mit :r !blkid eingefügt haben

GRUB installieren

  • Hängen Sie die virtuellen Dateisysteme der GParted-Live-CD ein:

    mount --bind /dev /mnt/newRoot/dev mount --bind /proc /mnt/newRoot/proc mount --bind /sys /mnt/newRoot/sys

  • Stellen Sie die GRUB-Dienstprogramme der GParted-Live-CD für die Root-Partition zur Verfügung:mount --bind /usr/ /mnt/newRoot/usr

  • Mounten Sie die Boot-Partition auf der Root-Partition, da GRUB seine Konfiguration in /boot speichert :mount /dev/sdb1 /mnt/newRoot/boot

  • Verwenden Sie chroot /mnt/newRoot um die neue Root-Partition vorübergehend zum Root des Dateisystems zu machen

  • Erstellen Sie eine GRUB-Konfigurationsdatei unter /boot/grub/grub.cfg mit update-grub2

  • Installieren Sie GRUB auf dem neuen Laufwerk:grub-install /dev/sdb . Sie dürfen hier keine Partitionsnummer angeben

  • Zurück zum Dateisystem der GParted Live-CD:exit

  • Partitionen aushängen:umount /mnt/newRoot/*

  • Maschine herunterfahren

  • Wenn Sie mehrere Laufwerke angeschlossen haben, vergewissern Sie sich, dass das neuere Laufwerk in der Startreihenfolge an erster Stelle steht

  • Maschine starten

Diese Anweisungen sind inspiriert von denen von oaktreepeak.com.

Alternativ können Sie Clonezilla versuchen, dasselbe zu erreichen.


Linux
  1. Wie installiere ich eine externe Festplatte?

  2. So installieren Sie OpenVZ auf Debian 9

  3. Wie erstelle ich neue Partitionen und formatiere meine Festplatte in Parted?

  4. So mounten Sie eine neue Partition unter Red Hat Linux

  5. Wie mounte ich ein Dateisystem in einer schreibgeschützten Umgebung?

So installieren Sie Devuan(I)

So installieren Sie Devuan(II)

So installieren Sie Google Drive unter Ubuntu 20.04

So installieren Sie das Haiku-Betriebssystem

So installieren Sie Ubuntu 20.04 Server

Wie wird die Swap-Partition automatisch gemountet?