Adakah yang punya saran untuk cara memindahkan partisi root ke drive baru dan mengatur grub2 untuk boot di drive itu? Sepertinya saya tidak beruntung menginstruksikan grub-mkconfig apa yang ingin saya lakukan (misalnya chroot'int ke root baru saya hanya membingungkan semua skrip).
Latar Belakang Saya menjalankan Debian Squeeze pada NAS berkekuatan rendah tanpa kepala. Pengaturan saya saat ini /aktif sda0dan /bootaktif sde0(kartu CF): Saya perlu terpisah /bootkarena sd[a-d]perlu melakukan spin-up yang tertunda. Sekarang saya telah menemukan disk 2,5 "IDE lama untuk digunakan sebagai /termasuk /bootuntuk memungkinkan saya untuk memutar semua disk besar ke bawah.
Apa yang saya coba Pada dasarnya saya pergi
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
Kemudian saya mencoba
chroot /mnt/newroot
update-grub
Tapi itu gagal dengan grub yang menanyakan apakah root sudah di-mount. Kemudian saya melakukan upaya setengah hati dalam pengaturan /mnt/newroot/grub/grub.cfguntuk menemukan kernel image aktif sdf5, diikuti oleh a grub-install --root-directory=/mnt/newroot /dev/sdf. Tapi ini baru saja membuat saya merasa tidak aman ketika saya mencoba booting sdf.
Paket cadangan saya hanya menginstal ulang, jadi pertanyaan bonus (tidak ada tanda centang untuk yang ini): Apa yang harus saya lakukan untuk mendapatkan konfigurasi lvm2 dan mdadm saya? Apakah semuanya disimpan dalam sistem file (dan apakah akan secara otomatis ditemukan), atau apakah saya harus mengambilnya sendiri?
Solusi (terima kasih kepada Maciej Piechotka): Seperti yang ditunjukkan Maciej, saya perlu melakukan chroot yang tepat agar semua alat grub bekerja. Untuk referensi, ini adalah bagaimana saya melakukannya:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
Semua file sekarang disalin (lihat di sini untuk diskusi tentang strategi salin). Perbaiki yang baru etc/fstabuntuk menunjuk ke root baru:
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
Akhirnya, mount dev, sysdan procke root dan chroot yang baru:
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 .
Kami sekarang chroot ke root masa depan persis seperti yang akan terlihat. Menurut Maciej, seharusnya tidak apa-apa untuk hanya menelepon grub-install, tapi saya melakukan yang update-grubpertama untuk melihat yang dihasilkan /boot/grub/grub.cfgsebelum menginstal bootloader. Saya tidak yakin ini akan diperbarui secara otomatis?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstabdalam chroot(ini akan konsisten dengan update-grubmengeluh bahwa "\ tidak dipasang"). Jika saya melakukan ini lagi, saya akan coba dulu tanpa repot me-mount sistem file khusus di chroot.
/etc/default/grub, dan transkrip yang tepat dariupdate-grub.