Czy ktoś ma sugestie, jak przenieść partycję główną na nowy dysk i skonfigurować grub2, aby uruchamiał się na tym dysku? Wydaje mi się, że nie mam szczęścia instruować grub-mkconfig, co mam robić (np. Chroot'int w moim nowym katalogu głównym po prostu myli wszystkie skrypty).
Kontekst Używam Debian Squeeze na bezgłowym NAS o niskiej mocy. Moja obecna konfiguracja jest /
włączona sda0
i /boot
włączona sde0
(karta CF): Potrzebowałem osobnego, /boot
ponieważ sd[a-d]
muszę wykonać opóźnione rozpinanie. Teraz znalazłem stary 2,5-calowy dysk IDE, którego można użyć jako /
włącznie, /boot
aby umożliwić mi obrócenie wszystkich dużych dysków.
Co próbowałem Zasadniczo poszedłem
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
Potem spróbowałem
chroot /mnt/newroot
update-grub
Ale nie udało się, gdy grub zapytał, czy root został zamontowany. Potem zrobiłem beznadziejną próbę ustawienia /mnt/newroot/grub/grub.cfg
obrazu jądra sdf5
, a następnie grub-install --root-directory=/mnt/newroot /dev/sdf
. Ale to właśnie przyniosło mi monit ratowania gruba, gdy próbowałem uruchomić komputer sdf
.
Mój plan tworzenia kopii zapasowych to po prostu ponowna instalacja, więc pytanie dodatkowe (bez zaznaczeń dla tego): Co muszę zrobić, aby uzyskać konfigurację lvm2 i mdadm? Czy to wszystko jest przechowywane w systemach plików (i czy zostanie automatycznie wykryte), czy też muszę sam to wziąć?
Rozwiązanie (podziękowania dla Macieja Piechotki): Jak podkreśla Maciej, potrzebuję odpowiedniego chroota, aby wszystkie narzędzia grub działały. Dla porównania, tak to zrobiłem:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
Wszystkie pliki są teraz kopiowane (zobacz tutaj omówienie strategii kopiowania). Napraw nowy, etc/fstab
aby wskazywał na nowy katalog główny:
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
Wreszcie, zamontować dev
, sys
a proc
do nowego korzenia i 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 .
Jesteśmy teraz chrootowani do przyszłego katalogu głównego dokładnie tak, jak będzie wyglądać. Według Macieja wystarczy zadzwonić grub-install
, ale po update-grub
raz pierwszy zapoznałem się z wygenerowanym /boot/grub/grub.cfg
przed instalacją bootloadera. Nie jestem pewien, czy zostanie automatycznie zaktualizowany?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/default/grub
i dokładną transkrypcję zupdate-grub
./etc/fstab
gochroot
(byłoby to zgodne zupdate-grub
narzekaniem, że „\ nie jest zamontowany”). Gdybym miał to zrobić ponownie, najpierw spróbowałbym bez kłopotania się montowaniem specjalnych systemów plików w chroot.Odpowiedzi:
Montuj podstawowe systemy plików i kopiuj / modyfikuj pliki podczas chrootowania, np .:
mount -o bind /dev/ /path/to/chroot/dev
)mount -t proc none /path/to/chroot/proc
)mount -t sysfs none /path/to/chroot/sys
)IIRC, który działał dla mnie podczas instalowania Grub 2 w arch i wiele razy na Gentoo. Potem po chroot do
/path/to/chroot
dowodzenia było po prostu:Począwszy od lvm2 (i wierzę w szaleństwo, ale go nie użyłem) konfiguracja jest przechowywana na dysku. Istnieje konfiguracja, którą należy przeczytać, aby odkryć urządzenia. Zakładając, że twoje urządzenia znajdują się w standardowych lokalizacjach (
/dev/sd*
lub/dev/hd*
), nie powinno być problemu.PS. Nie ufałbym prostemu cp systemu na żywo, ponieważ istnieje kilka miejsc, w których może się nie udać:
/etc/fstab
i inne przydatne pliki/tmp
itp.)źródło
cp -ax
powinno być w porządku (może po przejściu do poziomu uruchamiania dla jednego użytkownika) zgodnie z tym starym howto: tldp.org/HOWTO/Hard-Disk-Upgrade/copy.htmlupdate-grub
wcześniejinstall-grub
.możesz zainstalować gruba z live distro bez chrootowania:
źródło
grub-install
aktualizuje tylko pliki obrazu grub i zapisuje MBR: W szczególnościgrub.cfg
nie jest aktualizowany. Jak wspomniałem powyżej, montowanie specjalnych katalogów może być przesadą, ale nadal uważam, że chroot to sposób na aktualizacjęgrub.cfg
w prosty sposób?update-grub
do pracy, a tego nie ma--root-directory
lub coś, nie?BTW, jeśli dodajesz partycję (taką jak Windows), na której nie chcesz, aby grub napisał w sektorze rozruchowym, ale chcesz, aby grub wiedział o tym podczas uruchamiania komputera, możesz ponownie przeskanować partycje i wygenerować nowy plik grub.cfg za pomocą komendy grub_mkconfig w następujący sposób w sesji terminalowej
Teraz, gdy uruchamiasz się z bieżącej partycji linuksowej (która miała gruba podczas rozruchu), teraz będzie wiedział o drugiej partycji.
źródło