У моего Windows 7 были проблемы, которые можно было исправить только переустановкой. Но это была не только одна система на моем ноутбуке, другой был Debian Jessie. Зная о входящей перезаписи GRUB, я сделал резервную копию своих файлов и снова установил Win 7. После этого я попытался восстановить GRUB, но столкнулся с рядом проблем.
Ранее при установке Debian я создал LVM с тремя разделами внутри, первый для /root, второй для /home и третий для раздела подкачки, и зашифровал их все в конце с помощью cryptLuks во время установки Debian. В своих попытках исправить это я использовал следующие команды:
1) Мне нужно расшифровать эти разделы:
cryptsetup luksOpen /dev/mapper/Debian-System System
cryptsetup luksOpen /dev/mapper/Debian-Home Home
2) Далее я использовал командуvgchange -ай,
3) После этого я все смонтировал, используя следующие команды:
/* Debian-System is partition with system */
mount /dev/mapper/Debian-System /mnt/
/* but I cannot mount it */
mount: unknown filesystem type 'crypto_LUKS'
/* so I used System, which is decrypted Debian-System */
mount /dev/mapper/System /mnt/
mount /dev/mapper/Home /mnt/home/
/* dev/sda1 is my boot partition */
mount /dev/sda1 /mnt/boot/
mount -o bind /dev/ /mnt/dev/
mount -o bind /sys/ /mnt/sys/
mount -o bind /proc/ /mnt/proc/
4) ЯchrootПерешел на Debian (я использую x64 Ubuntu 16.04 Live DVD, чтобы исправить это) и выполнил команды:
grub-install
затем:
update-grub
Все выглядит хорошо, но дьявол кроется в деталях. ИспользуяСистемавместоDebian-системадля монтирования и последующего обновления GRUB, UUID вgrub.cfgдля раздела /root также был изменен. Я отредактировал этот файл и изменил UUID дляDebian-системаодин. Но я не уверен, достаточно ли этого (вероятно, нет, поскольку в ходе этого процесса было создано мало файлов).
После перезагрузки я снова увидел знакомое меню загрузки Debian, выбрал Debian и позже успешно ввел пароль для /dev/mapper/Debian-System. И на этом хорошие новости заканчиваются - я получил следующую информацию:
modprobe module luks not found in modules.dep
target filesystem doesn't have requested /sbin/init
и меня сбросили на встроенную оболочку (ясень).
Я нашел информацию, что использование команды update-initramfs может помочь, поэтому я использовал ее в следующем запуске с Ubuntu LiveDVD. Я получил следующий текст:
device-mapper: table ioctl on Debian-System_crypt failed: No such device or address
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for Debian-System_crypt
cryptsetup: WARNING: target Debian-Swap_crypt has a random key, skipped
Перезагрузка системы после этого привела к худшему результату, чем первая; процесс запроса парольной фразы для Debian-System был немедленно пропущен, и я и я были отброшены во встроенную оболочку (ash). Теперь даже выполнение всего снова (без обновления initramfs) не помогает - я всегда повторяю то же самое поведение, как после обновления initramfs.
Я делаю что-то не так? И есть ли какая-то другая процедура (и шанс, кстати) восстановить Debian и GRUB без переустановки? Конечно, я могу исправить это переустановкой, но я предпочитаю этого избегать. Если только нет другого варианта.
Спасибо за любую помощь :)