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

Debian/grub2:Root-Partition auf neues Laufwerk verschieben?

Hat jemand einen Vorschlag, wie man die Root-Partition auf ein neues Laufwerk verschiebt und grub2 so einrichtet, dass es auf diesem Laufwerk bootet? Ich scheine kein Glück zu haben, grub-mkconfig anzuweisen, was ich tun möchte (z. B. chroot’int in mein neues Stammverzeichnis verwirrt nur alle Skripte).

Hintergrund Ich verwende Debian Squeeze auf einem Headless-Low-Power-NAS. Mein aktuelles Setup ist / auf sda0 und /boot auf sde0 (eine CF-Karte):Ich brauchte den separaten /boot weil sd[a-d] müssen ein verzögertes Hochfahren durchführen. Jetzt habe ich eine alte 2,5-Zoll-IDE-Festplatte gefunden, die ich als / verwenden kann einschließlich /boot damit ich alle großen Festplatten herunterfahren kann.

Was ich versucht habe Im Grunde ging ich

mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot

Dann habe ich es versucht

chroot /mnt/newroot
update-grub

Aber das schlug fehl, da Grub fragte, ob root gemountet sei.
Dann unternahm ich einen halbherzigen Versuch, /mnt/newroot/grub/grub.cfg einzurichten um das Kernel-Image auf sdf5 zu finden , gefolgt von einem grub-install --root-directory=/mnt/newroot /dev/sdf . Aber das brachte mir gerade eine Grub-Rescue-Eingabeaufforderung, als ich versuchte, von sdf zu booten .

Mein Backup-Plan sieht nur eine Neuinstallation vor, also eine Bonusfrage (keine Häkchen für diese hier):Was muss ich tun, um meine lvm2- und mdadm-Konfiguration zu übertragen? Ist alles in den Dateisystemen gespeichert (und wird es automatisch entdeckt), oder muss ich es selbst übernehmen?

Lösung (danke an Maciej Piechotka):Wie Maciej betont, brauche ich eine richtige Chroot, damit alle Grub-Tools funktionieren. Als Referenz habe ich es so gemacht:

[email protected]:/mnt/newroot$ sudo cp -ax / /mnt/newroot
[email protected]:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

Alle Dateien werden nun kopiert (siehe hier für eine Diskussion über Kopierstrategien). Korrigieren Sie das neue etc/fstab um auf das neue Stammverzeichnis zu zeigen:

[email protected]:/mnt/newroot$ diff -u etc/fstab.old  etc/fstab
    -UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 /     ext3 errors=remount-ro         0 1
    -UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults                  0 2
    +UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 /     ext3 noatime,errors=remount-ro 0 1

Hängen Sie schließlich dev ein ,sys und proc zum neuen root und chroot:

[email protected]:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
[email protected]:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
[email protected]:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
[email protected]:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
[email protected]:/mnt/newroot$ sudo chroot .

Wir sind jetzt genau so, wie es aussehen wird, in den Future-Root chrooted. Laut Maciej sollte es in Ordnung sein, einfach grub-install aufzurufen , aber ich habe ein update-grub gemacht zuerst einen Blick auf die generierte /boot/grub/grub.cfg zu werfen vor der Installation des Bootloaders. Ich bin mir nicht sicher, ob es automatisch aktualisiert wird?

[email protected]:/# update-grub
[email protected]:/# grub-install /dev/sdb

Akzeptierte Antwort:

Mounten Sie grundlegende Dateisysteme und kopieren/ändern Sie Dateien während des Chrootens wie:

  • /dev (mount -o bind /dev/ /path/to/chroot/dev )
  • /proc (mount -t proc none /path/to/chroot/proc )
  • /sys (mount -t sysfs none /path/to/chroot/sys )

IIRC, das bei der Installation von Grub 2 in Arch und mehrmals auf Gentoo für mich funktioniert hat. Dann nach chroot zu /path/to/chroot Befehl war einfach:

grub-install /dev/<boot_disk>

Ab lvm2 (und ich glaube, verrückt, aber ich habe es nicht benutzt) wird die Konfiguration auf der Festplatte gespeichert. Es gibt eine Konfiguration, die gelesen werden sollte, um Geräte zu erkennen. Angenommen, Ihre Geräte befinden sich an Standardstandorten (/dev/sd* oder /dev/hd* ) sollte es kein Problem geben.

Verwandt:Erstellen Sie eine Datei als ein anderer Benutzer und eine andere Gruppe?

PS. Ich würde dem einfachen cp des Live-Systems nicht vertrauen, da es mehrere Stellen gibt, an denen es schief gehen kann:

  • Vergessen, /etc/fstab zu ändern und andere nützliche Dateien
  • Dateien während des Zugriffs geändert
  • Speichern von Müll (/tmp usw.)

Debian
  1. Debian 10 (Buster) veröffentlicht – Neue Funktionen

  2. Debian 8 Jessie veröffentlicht – Was ist neu?

  3. Zurücksetzen eines vergessenen Root-Passworts in Debian 10 / Debian 11

  4. So installieren Sie TYPO3 unter Debian 9

  5. Debian – /var, /home auf separate Partition verschieben?

So booten Sie eine Debian-ISO-Datei von der Festplatte mit GRUB2

So installieren Sie Joomla unter Debian 8

So installieren Sie osCommerce unter Debian 8

So installieren Sie Joomla unter Debian 9

So installieren Sie Textpattern unter Debian 9

Was ist neu in Debian 11 „Bullseye“