Вопрос или проблема
Я не могу войти в свой Ubuntu 12.04 (который является виртуальной машиной, работающей на OSX с использованием VMWARE FUSION 6), потому что я изменил разрешения для /tmp
с какой-то целью перед перезагрузкой машины.
Таким образом, я пытался загрузить Ubuntu в режиме восстановления, нажимая клавишу shift
во время загрузки машины (с целью изменить разрешения для /tmp
), но это было невозможно, потому что экран grub не появляется во время загрузки.
Как я могу перейти в режим восстановления, если grub не появляется?
Это звучит как ситуация, специально созданная для восстановления с помощью iPXE. По сути, вы загружаете свою виртуальную машину не с ее собственного виртуального диска, а используя загрузочные файлы, полученные через интернет. На практике это почти идентично загрузке с Live ISO-образа на съемном накопителе, и после завершения загрузки среды вы сможете смонтировать свой виртуальный диск и выполнить все необходимые исправления.
Инструкции по замене включенного в VMware PXE ROM на iPXE ROM можно найти здесь (лучшие результаты, которые я получил с этим процессом, были с настройками VMware для эмуляции сетевого адаптера Intel e1000e, но все они должны работать). После замены ROM-файла и редактирования .vmx файла для вашей виртуальной машины, откройте VMware Fusion, выберите соответствующую виртуальную машину и проверьте в интерфейсе, что модель сетевого адаптера, которую вы установили в файле vmx, активна и находится в режиме Bridged.
После этого нажмите OK, чтобы выйти из окна настроек, затем нажмите зеленую кнопку воспроизведения в главном окне Fusion, чтобы запустить вашу виртуальную машину.
Как только появится ее окно, начните нажимать клавишу F2 на клавиатуре с приблизительно односекундными интервалами, пока не появится меню настройки прошивки; может потребоваться несколько циклов выключения виртуальной машины и ее повторного запуска, чтобы правильно установить тайминг. Вы поймете, что сделали это, когда увидите что-то подобное:
Меню настройки прошивки навигируется только с помощью клавиатуры, поэтому нажимайте клавишу ➔ до тех пор, пока не дойдете до настроек загрузки, затем используйте ⬆/⬇, чтобы выделить опцию “Загрузка из сети …”, затем наконец нажмите клавишу + столько раз, сколько потребуется, чтобы переместить ее в верхнюю часть списка, чтобы она стала первым устройством загрузки. После этого нажмите клавишу F10, чтобы подтвердить новую конфигурацию загрузки, и виртуальная машина, естественно, перезагрузится и начнет работать.
Как только она снова начнет процесс загрузки, важно внимательно следить за выводом консоли. Обычно загрузка через PXE требует локального сервера где-то в сети, чтобы предоставить файлы загрузочной среды, но спецификация также включает команду chain
, которая принимает URL в качестве аргумента, что, безусловно, самый простой способ сделать это. Чтобы использовать команду chain, вам нужно следить за сообщением, появляющимся на ранних стадиях процесса загрузки, которое выглядит так:
iPXE -- Open Source Network Boot Firmware -- http://ipxe.org
Features: HTTP iSCSI DNS TFTP AoE FCoE TFTP COMBOOT ELF PXE PXEXT
Press Ctrl-B for the iPXE command line...
Это ваш сигнал активно нажать указанную комбинацию клавиш для перехода к командной строке!
(Обычно это Ctrl+B, но я видел и другие комбинации клавиш один-два раза)
Желаемый результат в том, что в результате всего сделанного вы теперь увидите что-то, что близко похоже на:
iPXE>
Поздравляю, вы на финишной прямой. Последний шаг заключается в том, чтобы получить IP-адрес от вашего сетевого устройства и указать вашей виртуальной машине на сервер, принадлежащий проекту Netboot.xyz. В общем, вам нужно ввести две отдельные команды в командную строку iPXE. Они следующие:
dhcp
chain --autofree https://boot.netboot.xyz/menu.ipxe
В считанные секунды вам должны быть представлены многочисленные Live образы дистрибутивов Linux для загрузки, а также большое количество популярных “дисков восстановления”, с которых также можно загрузиться. Видите?
Также следует отметить, на случай, если вы столкнетесь с трудностями, что команда Netboot.xyz имеет свой собственный рекомендованный процесс использования iPXE для доступа к своей службе из VMware, который отличается от описанного здесь, хотя я не нашел его таким надежным на своем опыте. Кроме того, все команды iPXE, которые вы можете использовать в командной строке помимо dhcp
и chain
, подробно описаны с примерами здесь.
Удачи вам!
Примечание: Вышеуказанные команды iPXE предполагают, что вы используете конфигурацию UEFI для вашей виртуальной машины, что стало все более распространено в последние годы. Если я ошибаюсь и у вас конфигурация BIOS загрузки, последняя команда должна немного отличаться; используйте эту команду chain вместо приведенной выше: chain --autofree https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn
Ответ или решение
Чтобы войти в режим восстановления системы Ubuntu 12.04, если экран GRUB не появляется при загрузке, следует рассмотреть несколько возможных вариантов действий. Ниже представлены пошаговые инструкции для решения вашей проблемы.
1. Проверка конфигурации виртуальной машины
Первый шаг — убедиться, что настройки вашей виртуальной машины VMware Fusion корректны.
- Откройте настройки виртуальной машины.
- Убедитесь, что сетевой адаптер настроен на Bridged Mode (мостовой режим). Это необходимо для некоторых дальнейших действий, особенно если вы будете использовать сетевую загрузку.
2. Попытка вызова GRUB
При загрузке виртуальной машины следует несколько раз нажимать клавишу Shift
. Если GRUB все еще не появляется, перейдите к следующему шагу.
3. Вход в BIOS / UEFI
Рекомендуется получить доступ к настройкам BIOS или UEFI.
- Запустите виртуальную машину и сразу же начните нажимать клавишу
F2
с интервалом в одну секунду. Вам нужно поймать момент, когда появляется меню настройки. - Перейдите к Boot Options и установите Network Boot (загрузку по сети) в качестве основного варианта загрузки.
4. Подключение iPXE
Ранее были упомянуты возможности iPXE, которые позволяют загрузиться с сетевого диска. Это может быть полезно если стандартная загрузка не проходит.
- Замените встроенный PXE ROM VMware на iPXE ROM с помощью инструкций, доступных здесь.
- Убедитесь, что вы находитесь на сетевом адаптере Intel e1000 или аналогичном.
5. Command Line iPXE
После настройки запустите виртуальную машину и дождитесь появления инициализации iPXE. Во время этой инициализации, нажмите Ctrl + B
для перехода в командный режим iPXE.
- Введите команду
dhcp
, чтобы получить IP-адрес. - Затем введите команду для загрузки:
chain --autofree https://boot.netboot.xyz/menu.ipxe
.
6. Выбор Live CD
После успешной загрузки вы увидите меню с выбором различных дистрибутивов и образов для восстановления. Выберите подходящий образ и загрузитесь с него.
7. Восстановление прав
После загрузки системы с Live CD, вы сможете открыть терминал и смонтировать жесткий диск вашей Ubuntu. Настройте права доступа для /tmp
с помощью:
sudo mount /dev/sdXn /mnt # Замените sdXn на ваш раздел
sudo chmod 1777 /mnt/tmp
После этого разомните и перезагрузите машину.
Заключение
Следуя этим шагам, вы сможете удалить проблему с доступом к вашему Ubuntu 12.04 через режим восстановления. Если возникнут дополнительные трудности, не стесняйтесь обратиться за помощью на форумы или к документации по вашей дистрибуции.