Итак, я понял это с некоторой помощью от друга. Во время моей проблемы у меня был физический раздел в 50-гигабайтном файле VDI, который не загружался из-за ошибки, упомянутой в OP. Используемое пространство на диске составляло 20 гигабайт, что включало мою установку Linux + мои файлы. Мне удалось не только снова загрузить его, но и изменить размер раздела 50 гигабайт до 20 гигабайт в новом динамически размещаемом диске VDI.
Чтобы исправить это, я создал новую виртуальную машину (назовем это hurrdurr) с динамически распределяемым диском максимального размера 35 гигабайт, и я приступил к загрузке Linux Mint из установочного ISO. Я загрузил Gparted с помощью superuser (sudo gparted) и продолжил делать следующее:
- Создан 512MB ext2 раздел с надписью "boot"
- Создан раздел подкачки объемом 8192 МБ с меткой "hurrswap"
- Создал 28-гигабайтный раздел ext4, используя оставшуюся часть пространства с надписью "derp"
Затем я установил Linux Mint на виртуальный диск. Когда он спросит, что вы хотите сделать, например, стереть диск и установить Mint/Ubuntu (это приведет к стиранию диска)/ установить рядом / что-то еще, выберите что-то еще. Он загрузит раздел в стиле Gparted, где вы увидите разделы вашего диска. Я дважды щелкнул раздел "boot", установил флажок "Формат" и убедился, что точка монтирования была / boot. Затем для области подкачки я просто оставил все как есть (обратите внимание, я выбрал область подкачки 8 ГБ, потому что у меня есть 8 ГБ оперативной памяти на этом компьютере, и обычно хорошо иметь размер подкачки, эквивалентный установленному ОЗУ) и для мой раздел ext4, я убедился, что флажок форматирования был отмечен и точка монтирования была "/".
Я установил Mint, и это эффективно настроило загрузчик, GRUB и все для меня. Теперь пришло время перезаписать свежую установку моей старой, потому что таким образом GRUB будет знать, где искать загрузку! Итак, теперь в отдельной виртуальной машине я настроил VirtualBox для использования двух виртуальных дисков; большой 50-гигабайтный раздел и динамически распределяемый новый. Я сделал это, зайдя в Настройки -> Хранилище -> Контроллер - IDE -> Добавить жесткий диск. Это позволило мне выбрать два других файла VDI. Затем я загрузился в эту отдельную установку.
Используя sudo fdisk -l, я мог сказать, какие /dev /sdWX и /dev /sdYZ загрузить, чтобы смонтировать свежий раздел "derp" и раздел, который я хотел скопировать соответственно. Я использовал sudo mount /dev/sda5 /mnt/drv1
(я mkdir'd drv1 befhorehand) и sudo mount /dev/sdb3 /mnt/drv2
(раздел "derp"). Теперь вы можете скопировать материал двумя способами: один с помощью dd, который полностью клонирует ваш раздел с пустым пространством. Но я использовал простую команду копирования cp для переноса желаемых данных + Linux из раздела 50 гигабайт. Команда, которую я использовал, была sudo cp -a /mnt/drv1/* /mnt/drv2/
-a, чтобы сказать cp для передачи всех файлов со всеми неповрежденными атрибутами. Когда передача была завершена, я только что загрузился на своей виртуальной машине hurrdurr и вуаля - GRUB успешно загрузился с того раздела, который я хотел восстановить! Не только это, но и потому, что это динамический привод, он также всего 20 гигабайт.
Итак, по существу (д-р, если можно):
- Создать новую виртуальную машину с правильно назначенными разделами
- Установите ОС, которая была на поврежденном диске
- Загрузите виртуальную машину, которая имеет доступ как к поврежденному виртуальному диску, так и к новой новой установке.
- Смонтируйте поврежденные и свежие перегородки
sudo cp -a
файлы к новой установке
- Готово.
Я надеюсь, что это помогает кому-то вроде меня там.
ура