Hat jemand einen Vorschlag, wie man die Root-Partition auf ein neues Laufwerk verschiebt und grub2 so einrichtet, dass es auf diesem Laufwerk startet? Ich habe anscheinend kein Glück, grub-mkconfig anzuweisen, was ich tun möchte (z. B. chroot'int in meinem neuen Stammverzeichnis verwirrt nur alle Skripte).
Hintergrund Ich verwende Debian Squeeze auf einem kopflosen NAS mit geringem Stromverbrauch. Mein aktuelles Setup ist /
ein sda0
und /boot
ein sde0
(eine CF-Karte): Ich brauchte das separate, /boot
weil sd[a-d]
ich ein verzögertes Hochfahren machen musste. Jetzt habe ich eine alte 2,5" IDE - Festplatte zu verwenden , wie gefunden /
einschließlich /boot
mir zu erlauben , alle der großen Scheiben nach unten zu drehen.
Was ich versucht habe Grundsätzlich 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, als Grub fragte, ob Root gemountet sei. Dann machte ich einen halbherzigen Versuch /mnt/newroot/grub/grub.cfg
, das Kernel-Image zu finden sdf5
, gefolgt von einem grub-install --root-directory=/mnt/newroot /dev/sdf
. Aber dies brachte mich gerade zu einer Rettungsaktion, als ich versuchte, von dort zu booten sdf
.
Mein Backup-Plan ist, einfach neu zu installieren, also eine Bonusfrage (kein Häkchen für diese): Was muss ich tun, um meine lvm2- und mdadm-Konfiguration zu übertragen? Ist alles in den Dateisystemen gespeichert (und wird es automatisch erkannt), oder muss ich es selbst entfernen?
Lösung (danke an Maciej Piechotka): Wie Maciej betont, muss ich eine richtige Chroot haben, damit alle Madenwerkzeuge funktionieren. Als Referenz, so habe ich es gemacht:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
Alle Dateien werden jetzt kopiert (siehe hier für eine Erläuterung der Kopierstrategien). Korrigieren Sie das Neue etc/fstab
, um auf die neue Wurzel zu verweisen:
janus@nasguld:/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
Schließlich montiert dev
, sys
und proc
auf die neue Wurzel und chroot:
janus@nasguld:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
janus@nasguld:/mnt/newroot$ sudo mount -t proc none /mnt/newroot/proc
janus@nasguld:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
janus@nasguld:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on
janus@nasguld:/mnt/newroot$ sudo chroot .
Wir sind jetzt genau so an die zukünftige Wurzel gewöhnt, wie sie aussehen wird. Laut Maciej sollte es in Ordnung sein, nur anzurufen grub-install
, aber ich habe update-grub
erstmal einen Blick auf die /boot/grub/grub.cfg
vor der Installation des Bootloaders erzeugten Dateien geworfen. Ich bin nicht sicher, ob es automatisch aktualisiert wird.
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstab
hatte chroot
(dies würde im Einklang mit der update-grub
Beschwerde stehen, dass "\ ist nicht gemountet"). Wenn ich das noch einmal machen würde, würde ich zuerst versuchen, ohne die Mühe zu machen, die speziellen Dateisysteme in der Chroot zu mounten.
/etc/default/grub
und das genaue Protokoll vonupdate-grub
.