Сожмем в архив все нужные нам файлы, сохраняя права (tar)
- Грузимся со спасательного диска (ВАЖНО! Убедитесь что tar на спасательном диске является настоящим tar, если используемый tar на самом деле является минимальной версией из busybox , то он может некорректно сохранять права на файлы, в частности suid-bit).
- Бэкапим весь корень (/) за исключением некоторых папок /proc, /sys и /tmp, например:
root@localhost# tar cvpzf /mnt/backup/all.tar.gz / \ --exclude /proc --exclude /sys \ --exclude /tmp --exclude /var/tmp \ --exclude /usr/tmp --exclude /mnt
- Создаем на новом винте нужные нам разделы, создаем на них нужную файловую систему и распаковываем архив.
- Восстанавливаем загрузчик
- Грузимся со спасательного диска.
- Далее создаем образ винта (если надо) или каждого раздела в отдельности.
root@localhost# dd if=/dev/hda of=/dev/hdb bs=10M
root@localhost# dd if=/dev/hda of=/mnt/backup/myhda.img bs=10Mи тогда образ попадет в файл. Кстати, можно сэкономить место и сделать так:
root@localhost# dd if=/dev/disk | gzip - | dd of=/mnt/backup/myhda.gzЕсли есть винт такой же, как и тот, с которого копировали, делаем просто
root@localhost# dd if=/mnt/backup/myhda.img of=/dev/disk bs=10MЕсли винт больше, то неоднократно советовалось создать на нем раздел примерно одного размера, что и старый винт, после чего восстановить образ на этот раздел. Насколько действенен этот метод, неизвестно.
Вместо tar в вышеприведенном способе многие рекомендуют использовать cpio.
Я делал так. Допустим новый диск /dev/sda и неважно чистый он или нет.
# cfdisk /dev/sda
Затем накатывал файловую систему, монтировал ее например в /mnt и распаковывал туда систему
# mkfs.ext4 /dev/sda # mount /dev/sda1 /mnt # cd /mnt # tar xzf /path/system.tgz
# arch-chroot /mnt # grub-mkconfig -o /boot/grub/grub.cfg # grub-install /dev/sda
После этого системы уже загружалась. Честно говоря не помню чтобы я пересобирал инитрамфс, может просто забыл.
У меня граб таких ошибок никогда не выкидывал, поэтому даже не знаю что подсказать, но попробуй без этих хитрых манипуляций которые ты описал выше.
С автоматизацией этого процесса, я думаю, также проблем быть не должно.