
Я новичок в Linux, и единственная причина, по которой я его установил, — это чтобы избавиться от проблем несовместимости Windows с Ruby on Rails. Сказав это, он, конечно, хорош и намного быстрее, и я не думаю, что буду заниматься какими-либо вещами с Winrails в ближайшее время.
Итак, я создал виртуальную машину с помощью virtualbox и последние 3 недели на ней стояла Ubuntu. Недавно Ubuntu спросила, может ли она обновить несколько вещей, я нажал «ok».
Теперь он не загружается, и я получаю эту ошибку: *mount: монтирование /dev на /root/dev не удалось: Нет такого файла или каталога mount: монтирование /sys на /root/sys не удалось: Нет такого файла или каталога ... Целевая файловая система не имеет /sbin/init. Не найден init. Попробуйте передать init= bootarg
BusyBox v1.13.3...
(initramfs) _ *
Итак, я прочесывал форумы, и там было множество решений, но все они связаны с загрузкой с live cd. (я предполагаю, что это образ ISO, который я использовал для установки ubuntu в первую очередь). Но когда я загружаюсь с этого CD, он просто зависает на экране ubuntu, и маленькие точки продолжают циклически меняться с белого на красный, но он висит там в течение часа, поэтому я думаю, что он застрял. Не уверен, что я могу сделать; могу ли я что-нибудь сделать из оболочки busybox (или что это такое), чтобы исправить ситуацию?
Дело в том, что мне потребовалось около 10 часов, чтобы сделать все так, как мне было нужно, со всеми драгоценными камнями и прочим. И я на самом деле не записал, что я подправил, и я уже в среднем возрасте, так что вся эта информация уже просочилась, и я не хочу делать это снова. Я бы очень хотел восстановить свою существующую установку.
Один из вопросов, который у вас может возникнуть, это что-то не так с ISO? Я так не думаю, потому что я создал новую виртуальную машину и использовал тот же файл ISO для установки свежей Ubuntu.
Любая помощь будет высоко оценена.
Фил
решение1
В приглашении загрузчика все выглядит нормально. Поэтому я опасаюсь, что файловая система повреждена.
Я предлагаю следующий процесс:
- Создайте новую виртуальную машину и выполните новую установку Ubuntu.
- Установите
etckeeper
пакет и запуститеetckeeper init
. Это поставит/etc
под контроль версий. Если у вас есть любимый инструмент контроля версий среди Bazaar, Darcs, Git и Mercury, выберите его/etc/etckeeper/etckeeper.conf
перед запускомetckeeper commit
. - Ваши изменения в
/etc
будут автоматически зафиксированы до и после задач управления пакетами и один раз в день. Вы можете зафиксировать вручную, запустивetckeeper commit
или вызвав напрямую базовый инструмент управления версиями. - Теперь самое время попытаться сохранить старую VM. Выключите новую VM, затем добавьте диск старой VM к новой VM и загрузите новую VM.
- Попробуйте смонтировать
/dev/sdb2
. Если вам будет предложено запуститьfsck
, сделайте это. - Восстановите все, что сможете, со старой виртуальной машины.
- Не забудьте включить в настройку резервного копирования репозиторий для
/etc
, а также все, что вы можете делать в виртуальной машине/usr/local
и на ней./home
решение2
У меня было нечто подобное — хост Ubuntu 10.10 с гостевой Ubuntu 10.10.
Гостевая ФС была повреждена, что привело к той же ошибке, что и выше.
Проблема была решена путем монтирования разделов из файла vdi и запуска проверки файлов на них.
sudo vdfuse -g -f /media/ssdext4/UbuntuGuest.vdi /mnt/
Теперь вы сможете вывести список разделов из файла vdi с помощью команды «sudo ls -l /mnt/».
Теперь запустите проверку ФС - с полным путем. sudo fsck.ext4 /mnt/Partition1
Я думаю, vdfuse должен быть частью установки по умолчанию. Я не вижу, как исправить эти проблемы, если у вас нет vdfuse.
решение3
Не самый сложный, но, возможно, самый быстрый подход: добавьте образ диска со сломанной виртуальной машины к недавно установленной, смонтируйте его оттуда, скопируйте $HOME, /etc и, возможно, что-то из /var/{lib,db, ...} (или хотя бы сохраните копию), и вы должны вернуться к нормальной работе менее чем за час.
Я полагаю, что настоящая проблема вызвана тем, что начальный ramdisk не может должным образом обнаружить и смонтировать виртуальное дисковое устройство. Так что вы также можете попробовать, если вам каким-то образом удастся получить доступ к файловой системе сломанной виртуальной машины, что-то вроде:
mount /dev/sdbroken1 /mnt/brokendisk
for i in dev dev/pts proc sys; do
mount --bind /$i /mnt/brokendisk/$i
done
chroot /mnt/brokendisk
update-initramfs -u -k all # regenerate initial ramdisk - look for errors
^D
reboot
решение4
У меня точно такая же проблема, включая странное поведение образа Live ISO.
Оказывается, проблема в том, что grub каким-то образом завис - возможно, из-за того, что хост-система перешла в спящий режим [я говорю так, потому что Кристис Бергелес описывает ту же проблему, что и я, с тем же хостом (Mac OSX) вhttp://christos.bergeles.net/blog/files/tag-grub.html]
Подключите проблемный виртуальный жесткий диск к другой работающей виртуальной машине Ubuntu.
Загрузитесь в эту виртуальную машину
(в следующих двух строках предполагается, что эта виртуальная машина имеет проблемный диск в /dev/sdb)
sudo монтировать /dev/sdb1 /mnt
sudo grub-install --root-directory=/mnt/ /dev/sda
Мне это помогло — в двух отдельных случаях возникновения этой проблемы.
Тим.