У кого-нибудь есть предложения, как перенести корневой раздел на новый диск и настроить 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
.