Linux мигает курсор при загрузке

Невозможно загрузиться в Ubuntu, появляется мигающий белый курсор

Я очень волнуюсь — поскольку мне действительно нужно восстановить свою Ubuntu — и потратил столько времени на попытки исправить это.

По сути, я просто следил за лабораторией для своего класса безопасности и столкнулся с этой проблемой.

ОК, поэтому я следовал этим командам:

cd /bin rm sh ln -s /bin/zsh /bin/sh 

Затем, когда я открыл новый терминал, это дало какую-то ошибку. Итак, я думал, что это исчезнет после перезапуска моей системы.

Но, к моему несчастью, моя система больше не могла загружаться.

Сначала он открывает менеджер загрузки grub2, затем, когда я нажимаю Enter на Ubuntu, он загружается в черный экран с мигающим курсором в левом верхнем углу.

У меня много работы и вся моя среда программирования для работы и учебы в этой системе.

2 ответа

Я не думаю, что это может привести к невозможности загрузки, но вы можете вернуться к старому sh, выполнив это, поскольку / bin / sh в любом случае является просто символической ссылкой на / bin / dash.

Загрузка, пока вы не получите мигающий курсор, затем нажмите Ctrl+Alt+F2, чтобы получить терминал, затем выполните

cd /bin sudo rm sh # if this fails then just go to next sudo ln -s dash sh 

Тогда можно перезагрузить ( sudo reboot )

Редактировать: для любого в будущем, если вы не можете получить доступ к приглашению оболочки при загрузке, нажав Ctrl+Alt+F2, вы можете сделать одно из следующего:

Вариант 1: загрузите live cd и нажмите try, затем откройте терминал и выполните

sudo mount /dev/sda1 /mnt #replace sda1 with whatever drive/partition your install is on cd /mnt/bin sudo rm sh #if this fails then just go to next sudo ln -s dash sh 

Вариант 2: загрузите live cd и нажмите try, затем откройте терминал и выполните

sudo mount /dev/sda1 /mnt #replace sda1 with whatever drive/partition your install is on sudo chroot /mnt cd /bin rm sh # if this fails then just go to next ln -s dash sh 

Тогда можно перезагрузить ( sudo reboot )

Это должно вернуться к папке по умолчанию sh.

Не удивительно, что /bin/sh символическая ссылка на /bin/zsh вызвал проблемы, так как /bin/zsh часто не существует Я подозреваю зш не был установлен, и именно поэтому все сломалось. Это кажется особенно вероятным 2, если ошибка, которую вы видели на новом терминале, была:

bash: /usr/bin/lesspipe: /bin/sh: bad interpreter: No such file or directory 

Изготовление /bin/sh ссылка на dash Опять-таки (как это принято в Ubuntu по умолчанию) обычно это подходящее решение — и в вашем случае, поскольку ваша цель — восстановить вашу систему так, как она была раньше, это, безусловно, правильный путь. Это может быть достигнуто путем загрузки с живого носителя, как представлено в отличном ответе Термна 1 , и другими способами.

Читайте также:  Boost asio install linux

Но если по какой-то странной причине вы захотите использовать zsh вместо dash за /bin/sh в Ubuntu этого можно достичь, но не совсем так, как вы пытались.

Восстановление sh → dash Без живой среды

Я думаю, что использование live CD/DVD/USB — это лучшее решение этой проблемы, потому что оно менее техническое, чем другие, и, скорее всего, без проблем преуспеет.

Но если вы хотите исправить это, просто загрузившись с жесткого диска, вы можете.

Это несколько менее долго и сложно, чем может показаться на первый взгляд, так как большая часть длины связана с (а) представлением двух альтернатив и (б) скриншотами.

Сначала выключите или перезагрузите компьютер (если можете).

Это относится ко всем решениям, а не только к тем, которые пытаются решить проблему при загрузке с внутреннего жесткого диска. Но это, вероятно, не большая проблема, если вы этого не сделали.

В зависимости от того, насколько сильно сломаны вещи, Ctrl + Alt + Delete может не завершиться успешно и перезагрузить вашу систему Ubuntu. (Обычно это происходит при нажатии в текстовой виртуальной консоли.)

Если Ctrl + Alt + Delete не работает, используйте:

  • Alt + SysRq + R E I S U B для повторного вызова, или
  • Alt + SysRq + R E I S U O для включения O ff.

Так как проблемы вызваны пропажей /bin/sh не должно вызывать сбоев глубоко в ядре, я думаю, что эти «магические методы SysRq» всегда будут работать в этой ситуации.

init=/bin/dash Должно сработать

  1. Удерживайте нажатой клавишу Shift во время загрузки, чтобы открыть меню GRUB. введите описание здесь
    В целом он должен напоминать этот снимок экрана, но можно ожидать, что он будет выглядеть по-разному в зависимости от того, какую версию Ubuntu вы используете.
  2. «Ubuntu» выбран по умолчанию. Оставьте этот выбор, но нажмите e, чтобы отредактировать его.
    (Не волнуйтесь, ваши правки предназначены только для этой загрузки и не будут сохранены.)
  3. Перейти к концу строки, которая начинается linux /boot/vmlinuz-. , (Вы можете использовать клавиши со стрелками и End, чтобы добраться до конца строки.) введите описание здесьВведите пробел, затем init=/bin/dash , Затем нажмите F10 для загрузки этой конфигурации. Источник: Как установить NOMODESET и другие параметры загрузки ядра в grub2
  4. Тебе следует увидеть:
/bin/dash: 0: can't access tty: job control turned off # 
cd /bin rm sh ln -s dash sh 
lrwxrwxrwx 1 root root 4 Oct 2 23:13 sh -> dash 

Альтернативный способ: режим восстановления может работать. Может быть.

Для режима восстановления возможно функционирование без sh , Я не получил это, чтобы работать сам и на самом деле не знаю, будет ли это когда-нибудь — я получил Ubuntu для нормальной загрузки (без графического интерфейса) с sh как сломанная символическая ссылка, но это перестало работать для меня, прежде чем я попробовал режим восстановления (который не работал для меня тоже).

Для более надежного пути вернитесь к init=/bin/dash Должен работать. (Обратите внимание, что режим восстановления вообще не является ненадежным, просто нельзя ожидать, что он будет работать без /bin/sh .)

Читайте также:  Alien linux convert deb to rpm

Если вы хотите попробовать режим восстановления:

введите описание здесь

  1. Чтобы войти в режим восстановления, зажмите Shift во время загрузки, чтобы открыть меню GRUB.
  2. Выберите Дополнительные параметры для Ubuntu.
  3. В меню доступных ядер нажмите ↓, чтобы переместить выбор к записи, заканчивающейся на (recovery mode) и нажмите Enter .
  4. Если это не сработает, вы можете перезагрузиться с помощью «magic SysRq», как описано выше. Если это сработает, вы увидите меню восстановления.
  5. В Меню восстановления нажимайте ↓ несколько раз, пока
root Drop to root shell prompt 

введите описание здесь

выбран. Нажмите Enter .

  • Выполните шаги 5 и 6 (и необязательный шаг 7, если хотите) из init=/bin/dash Должен работать метод выше.
  • Бежать reboot Заново. Вы могли бы, вероятно, бежать exit , затем выберите Продолжить. Но вместо этого я предлагаю перезагрузку, чтобы система могла загружаться чисто с доступным и работоспособным sh с самого начала. (Если вам удалось войти в режим восстановления с sh как прерванная символическая ссылка, это еще не значит, что все работало просто по пути.)
  • Если вы заинтересованы в создании zsh предоставлять sh (или на самом деле, или просто теоретически), читайте дальше.

    Проблемы с sh → zsh Процедура, которую вы пытались

    Как общая процедура, cd /bin; rm sh; ln -s /bin/zsh /bin/sh (как предписано в вашей лабораторной работе) — плохой совет по крайней мере по двум причинам:

    1. /bin/zsh иногда не существует, даже если zsh установлено. Это зависит от того, как оно было установлено и какая ОС используется. zsh большая, сложная оболочка, которая не очень часто используется в качестве /bin/sh и, таким образом, обычно не требуется быть доступным в однопользовательском режиме или каким-либо другим образом перед отдельным /usr раздел может быть установлен. Исполняемые файлы, которые не нужны в однопользовательском режиме, обычно находятся в подкаталогах /usr , Убунту zsh действительно обеспечивает /bin/sh , Но в других системах это может быть /usr/bin/zsh или даже /usr/local/bin/sh (как в моей системе FreeBSD, где он установлен через pkg ).
    2. Мотивация этого упражнения, возможно, заключалась в том, чтобы укрепить систему против «Shellshock» (или других возможных ошибок разбора, возникающих в процессе bash принимает функции оболочки, переданные в переменных среды). Но это не очень подходящий курс действий для этой цели. Хотя многие системы GNU/Linux, такие как Fedora, RHEL и Slackware, имеют bash предоставлять /bin/sh во многих других оболочке /bin/sh , Это включает в себя Ubuntu, который использует dash , подобно zsh , dash не уязвим для «Shellshock» и не импортирует определения функций из переменных среды (или вообще) с использованием какого-либо механизма, поэтому подобная ошибка вряд ли повлияет на него.

    Поэтому, в зависимости от контекста, это упражнение в том виде, в котором оно было вам представлено, могло быть ошибочным. Вы можете обсудить этот вопрос со своим профессором. Возможно, учебная программа или способ ее передачи могут быть улучшены.

    В зависимости (даже в большей степени) от контекста эти соображения могут также вызывать беспокойство:

    1. Часто, sh является символической ссылкой, жесткой ссылкой или копией другой установленной оболочки. Но в некоторых системах, особенно в некоторых Unix-подобных системах, которые не являются системами GNU/Linux, sh может быть отдельным исполняемым файлом из всего остального. За исключением случаев, когда известно, что это не так, рекомендуется проверить, прежде чем rm это! mv В этом случае может быть более подходящим.
    2. Упражнения, которые изменяют конфигурацию системы, особенно те, которые требуют выполнения команд от имени root для выполнения необычных действий, обычно не должны выполняться на рабочих машинах. Эксперименты и исследования являются практически необходимыми и ценными. Но когда они могут привести к поломке, их лучше всего выполнять на установках, непрерывное функционирование которых не является существенным для важной работы, которую необходимо выполнить. Другими словами, это хорошо, чтобы проверить вещи перед их развертыванием «по-настоящему». (Виртуальные машины часто хороши для этого.)

    Зб убунту действительно обеспечивает копию оболочки 3 в /bin так же как /usr/bin , Но по умолчанию в Ubuntu, zsh не установлен вообще.

    Символические ссылки не требуют, чтобы их цели существовали:

    [email protected]:~$ rm foo rm: cannot remove ‘foo’: No such file or directory [email protected]:~$ ln -s foo bar [email protected]:~$ ls -l foo bar ls: cannot access foo: No such file or directory lrwxrwxrwx 1 ek ek 3 Oct 2 20:25 bar -> foo [email protected]:~$ file bar bar: broken symbolic link to `foo' 

    поскольку /bin/sh является интерпретатором многих важных скриптов, используемых для загрузки системы и выполнения других задач, она должна существовать. Если сделать ссылку неработающей, система Ubuntu не будет работать.

    Получение zsh предоставлять /bin/sh

    Ubuntu предназначен для использования dash за sh и не разработан или не протестирован с zsh как sh в уме. Пожалуйста, не пытайтесь сделать это в системе, которая вам нужна для критических задач. Это строго для образования / развлечения, и должно быть сделано в некритической виртуальной машине или другой некритической системе. 2

      Установить зш ; по умолчанию в Ubuntu он не установлен.

    sudo apt-get update sudo apt-get install zsh 

    Заметки

    1. And apparently also, at least sometimes, from a text-based virtual console, also as explained in Termhn’s answer. This worked for me one of the times I tested it 2 , but failed another time I tested it. And I know it did not work for you. (In contrast, the live CD method is very reliable.)
    2. Testing for this answer was performed on a 64-bit Ubuntu Mate 14.10 Utopic Unicorn (beta) system running in a VirtualBox virtual machine. (Not because there’s anything about that configuration that best models this problem, but just because that was the desktop Ubuntu system I had on hand for testing.) That something worked for me does not guarantee it will work for you, even on the same version of Ubuntu.
    3. На Ubuntu, /bin/zsh is usually a symlink to /etc/alternatives/zsh which is usually a symlink to /bin/zsh5 (which is the actual Z Shell executable). But since both /bin а также /etc are located on the root filesystem even when /usr is mounted over a network or otherwise on a separate volume, this is fine.

    Источник

    Оцените статью
    Adblock
    detector