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 sda0und /bootein sde0(eine CF-Karte): Ich brauchte das separate, /bootweil 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 /bootmir 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, sysund procauf 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-gruberstmal einen Blick auf die /boot/grub/grub.cfgvor 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/fstabhatte chroot(dies würde im Einklang mit der update-grubBeschwerde 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/grubund das genaue Protokoll vonupdate-grub.