У кого-нибудь есть предложения, как перенести корневой раздел на новый диск и настроить grub2 для загрузки на этот диск? Кажется, мне не повезло, указав grub-mkconfig, что именно я хочу сделать (например, chroot'int в моем новом корне просто смущает все скрипты).
Предыстория Я запускаю Debian Squeeze на безголовом NAS с низким энергопотреблением. Моя текущая настройка /на sda0и /bootна sde0(с CF - карты): мне нужен отдельный , /bootпотому что sd[a-d]нужно делать с замедленным спином вверх. Теперь я нашел старый 2.5 "IDE-диск, который можно использовать как /включающий, /bootчтобы позволить мне раскрутить все большие диски.
Что я пробовал В основном я пошел
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
Потом я попробовал
chroot /mnt/newroot
update-grub
Но это не удалось с grub, спрашивающим, был ли установлен root. Затем я предпринял нерешительную попытку настройки, /mnt/newroot/grub/grub.cfgчтобы найти образ ядра sdf5, а затем - grub-install --root-directory=/mnt/newroot /dev/sdf. Но это просто вызвало у меня подсказку о спасении, когда я попытался загрузиться с sdf.
Мой план резервного копирования - просто переустановить, так что бонусный вопрос (без галочек для этого): что мне нужно сделать, чтобы получить доступ к моим конфигурациям lvm2 и mdadm? Все ли это хранится в файловых системах (и будет ли оно автоматически обнаружено), или мне нужно взять его самому?
Решение (спасибо Maciej Piechotka): Как указывает Maciej, мне нужно правильно выбрать chroot для работы всех инструментов grub. Для справки, вот как я это сделал:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
Все файлы теперь скопированы (см. Здесь для обсуждения стратегий копирования). Исправьте новый, etc/fstabчтобы указать на новый корень:
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
И, наконец, установить dev, sysи procк новому корню и 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 .
Теперь мы привязаны к будущему корню именно так, как он будет выглядеть. По словам Maciej, все должно быть в порядке, чтобы просто позвонить grub-install, но я сделал update-grubсначала, чтобы взглянуть на сгенерированный /boot/grub/grub.cfgперед установкой загрузчика. Я не уверен, что он будет автоматически обновляться?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstabв chroot(это согласуется с update-grubжалобой на то, что «\ not mount»). Если бы я сделал это снова, я бы сначала попытался, не удосужившись смонтировать специальные файловые системы в chroot.
/etc/default/grubи точную расшифровку стенограммыupdate-grub.