E348 no string under cursor ошибка линукс

Обновлено: 01.07.2024

VBA+PowerPoint (cursor)
Привет! Мне надо чтобы при открытии презентации курсор уже находился в поле TextBox. Чтобы было.

'php' is not recognized
Всем привет! Казалось бы, детская проблема -- дописал путь к php в PATH . Дописал. Но когда я.

CLDemo is not recognized as an internal or external command
PRIVET REBIATA .UMENIA TAKAIA PROBLEMA.VKNIGE NAPISAL VOT TAK программа CLDemo запускается из.

без явного указания листа при ссылке на ячейку
--у вас все пишется на лист1 и портит его
--лист2 не формируется
Не факт что на лист1 пишется - примера то нет. Может пишется всё на лист с кодом, который может быть любым..
По ошибке - что в этот момент в Cells(i, 3) и Cells(3, 6)?

А могло быть иначе после назначения?

Вполне может без ошибки быть - легко выделит например Range("B17:F1733") У меня выдавало ошибку пока явно не указал лист(хотя выше по коду лист активировался)

Но по любому данные как-то странно выбираются

Добавлено через 52 секунды
Да и вообще куча селектов копи-пастов

Так никто кроме Irbtim'а не знает что там как, где код и что на листах. Куда торопиться решать неизвестно что? и на лист2 ничего не записалось
пишите с явным указанием листов

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

в этом случае with затрудняет чтение
===
я конечно применяю with, но если в выражении нет обращений к ячейкам других листов

Здравствуйте, СПАСИБО ВСЕМ ЗА ПОМОЩЬ.
Там на листах оценка производных инструментов, для финансовых рынков. Кто-то спросил почему много копи пэйстов, потому что требования моего руководства такие по формату.(

Т.е. руководству важен не только результат, но и процесс? Похвально. Жаль только что они не специалисты в этих процессах.

чего? макроса или ячеек?
Так вставляете же только значения!
Добавлено через 13 минут
Если же надо только значения, то без копипаста просто приравнять
чего? макроса или ячеек?
Так вставляете же только значения!
Добавлено через 13 минут
Если же надо только значения, то без копипаста просто приравнять

Ах Вы про это, понятно. Нет строго формата. Я просто приравняю это. Сейчас нет доступа к excel файлам. Затвра отпишусь! еще раз спасибо Вам!

Добавлено через 14 часов 44 минуты
Друзья, Попробовал код, который вы написали. Не получается сделать цикл

Проблемка с UpdateDateTime: "String was not recognized as a valid DateTime."
Проблемка с UpdateDateTime для файла.Пытаюсь обновить дату для файла,и вылитает ошибка.Подскажите.

Cursor
Здравствуйте. Столкнулся со следующей проблемой. Есть класс контрола с ActiveX компонентом. Мне.

Cursor
Доброго времени суток комрады! Беда у меня какая-то с курсором. Но обо всём по порядку. Мне нужно.

Cursor
Подскажите как быть дальше. Есть БД, к ней прикрутил курсор DB db; @Override .

Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.

Эта статья ориентирована в первую очередь на новичков, которые не знают, что делать когда их будут поджидать проблемы linux, мы дадим общую концепцию и попытаемся показать в какую сторону двигаться дальше. Мы рассмотрим исправление ошибок в linux как простых, так и более сложных. Но давайте сначала определим, какие проблемы linux будем рассматривать, разобьем их на категории:

  • Проблемы с командами в терминале
  • Проблемы с программами
  • Проблемы с драйверами и ядром
  • Проблемы с графической оболочкой
  • Проблемы с диском и файловой системой

Все это мы рассмотрим ниже, но сначала общее введение и немного теории.

Решение проблем Linux

Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.

  • Permission Denied - нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
  • File or Directory does not exist - файл или каталог не существует
  • No such file or Directory - нет такого файла или каталога
  • Not Found - Не найдено, файл или ресурс не обнаружен
  • Connection Refused - соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
  • is empty - означает, что папка или нужный файл пуст
  • Syntax Error - ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
  • Fail to load - ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.

Проблемы с командами в терминале

Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.

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

Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open . can not read . и так далее.

Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.

Проблемы в программах

Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.

Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле

/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.

$ sudo systemctl status имя_сервиса

Дальше вы знаете, что делать с этой ошибкой, главное что у вас есть зацепка, а дальше все можно решить, ну или почти все.

Здесь, как и всегда большинство ошибок связано с тем, что что-то не установлено, какого-то файла нет или к чему-то невозможно получить доступ, тогда решение проблем linux не вызовет много забот.

Проблемы с драйверами и ядром

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

Чтобы иметь возможность удобно листать вывод можно выполнить:

sudo dmesg | less

Или сразу выбрать все ошибки:

sudo dmesg | grep error

Проблемы с графической оболочкой

Когда проблемы linux касаются графической оболочки, то решить их новичкам не так уж просто. Больше всего потому что доступен только терминал. Графическая оболочка может просто зависнуть или вовсе не запускаться, например, после обновления.

При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.

Посмотреть логи графической оболочки вы можете в том же файле

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

Проблемы с диском и файловой системой

Самая частая проблема с диском у новичков - это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.

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

Выводы

Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!

Понимание процедуры загрузки в Linux RHEL7/CentOS

Следующие шаги суммируют, как процедура загрузки происходит в Linux.

1. Выполнение POST: машина включена. Из системного ПО, которым может быть UEFI или классический BIOS, выполняется самотестирование при включении питания (POST) и аппаратное обеспечение, необходимое для запуска инициализации системы.

2. Выбор загрузочного устройства: В загрузочной прошивке UEFI или в основной загрузочной записи находится загрузочное устройство.

3. Загрузка загрузчика: с загрузочного устройства находится загрузчик. На Red Hat/CentOS это обычно GRUB 2.

4. Загрузка ядра: Загрузчик может представить пользователю меню загрузки или может быть настроен на автоматический запуск Linux по умолчанию. Для загрузки Linux ядро загружается вместе с initramfs . Initramfs содержит модули ядра для всего оборудования, которое требуется для загрузки, а также начальные сценарии, необходимые для перехода к следующему этапу загрузки. На RHEL 7/CentOS initramfs содержит полную операционную систему (которая может использоваться для устранения неполадок).

5. Запуск /sbin/init: Как только ядро загружено в память, загружается первый из всех процессов, но все еще из initramfs . Это процесс /sbin/init , который связан с systemd . Демон udev также загружается для дальнейшей инициализации оборудования. Все это все еще происходит из образа initramfs .

6. Обработка initrd.target: процесс systemd выполняет все юниты из initrd.target , который подготавливает минимальную операционную среду, в которой корневая файловая система на диске монтируется в каталог /sysroot . На данный момент загружено достаточно, чтобы перейти к установке системы, которая была записана на жесткий диск.

7. Переключение на корневую файловую систему: система переключается на корневую файловую систему, которая находится на диске, и в этот момент может также загрузить процесс systemd с диска.

8. Запуск цели по умолчанию (default target): Systemd ищет цель по умолчанию для выполнения и запускает все свои юниты. В этом процессе отображается экран входа в систему, и пользователь может проходить аутентификацию. Обратите внимание, что приглашение к входу в систему может быть запрошено до успешной загрузки всех файлов модуля systemd . Таким образом, просмотр приглашения на вход в систему не обязательно означает, что сервер еще полностью функционирует.
На каждом из перечисленных этапов могут возникнуть проблемы из-за неправильной настройки или других проблем. Таблица суммирует, где настроена определенная фаза и что вы можете сделать, чтобы устранить неполадки, если что-то пойдет не так.

Передача аргементов в GRUB 2 ядру во время загрузки

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

Когда сервер загружается, вы кратко видите меню GRUB 2. Смотри быстро, потому что это будет длиться всего несколько секунд. В этом загрузочном меню вы можете ввести e, чтобы войти в режим, в котором вы можете редактировать команды, или c, чтобы ввести полную командную строку GRUB.


После передачи e в загрузочное меню GRUB вы увидите интерфейс, показанный на скриншоте ниже. В этом интерфейсе прокрутите вниз, чтобы найти раздел, начинающийся с linux16 /vmlinuz , за которым следует множество аргументов. Это строка, которая сообщает GRUB, как запустить ядро, и по умолчанию это выглядит так:



После ввода параметров загрузки, которые вы хотите использовать, нажмите Ctrl + X, чтобы запустить ядро с этими параметрами. Обратите внимание, что эти параметры используются только один раз и не являются постоянными. Чтобы сделать их постоянными, вы должны изменить содержимое файла конфигурации /etc/default/grub и использовать grub2-mkconfig -o /boot/grub2/grub.cfg , чтобы применить изменение.

Когда у вас возникли проблемы, у вас есть несколько вариантов (целей), которые вы можете ввести в приглашении загрузки GRUB:

■ rd.break Это останавливает процедуру загрузки, пока она еще находится в стадии initramfs .
Эта опция полезна, если у вас нет пароля root.

■ init=/bin/sh или init=/bin/bash Указывает, что оболочка должна быть запущена сразу после загрузки ядра и initrd . Это полезный вариант, но не лучший, потому что в некоторых случаях вы потеряете консольный доступ или пропустите другие функции.

■ systemd.unit=rescue.target Команда запускает еще несколько системных юнитов, чтобы привести вас в более полный рабочий режим. Требуется пароль root.
Чтобы увидеть, что загружено только очень ограниченное количество юнит-файлов, вы можете ввести команду systemctl list-units .

Запуск целей(targets) устранения неполадок в Linux

1. (Пере)загружаем Linux. Когда отобразиться меню GRUB, нажимаем e ;

2. Находим строку, которая начинается на linux16 /vmlinuz. В конце строки вводим systemd.unit=rescue.target и удаляем rhgb quit ;

3. Жмем Ctrl+X, чтобы начать загрузку с этими параметрами. Вводим пароль от root;

4. Вводим systemctl list-units и смотрим. Будут показаны все юнит-файлы, которые загружены в данный момент и соответственно загружена базовая системная среда;

5. Вводим systemctl show-environment . Видим переменные окружения в режиме rescue.target;

6. Перезагружаемся reboot ;

7. Когда отобразится меню GRUB, нажимаем e . Находим строку, которая начинается на linux16 /vmlinuz. В конце строки вводим systemd.unit=emergency.target и удаляем rhgb quit ;

8. Снова вводим пароль от root;

9. Система загрузилась в режиме emergency.target;

10. Вводим systemctl list-units и видим, что загрузился самый минимум из юнит-файлов.

Устранение неполадок с помощью загрузочного диска Linux

Еще один способ восстановления работоспособности Linux использовать образ операционки.

Если вам повезет меньше, вы увидите мигающий курсор в системе, которая вообще не загружается. Если это произойдет, вам нужен аварийный диск. Образ восстановления по умолчанию для Linux находится на установочном диске. При загрузке с установочного диска вы увидите пункт меню "Troubleshooting". Выберите этот пункт, чтобы получить доступ к параметрам, необходимым для ремонта машины.

  • Install CentOS 7 in Basic Graphics Mode: эта опция переустанавливает систему. Не используйте её, если не хотите устранить неполадки в ситуации, когда обычная установка не работает и вам необходим базовый графический режим. Как правило, вам никогда не нужно использовать эту опцию для устранения неисправностей при установке.
  • Rescue a CentOS System: это самая гибкая система спасения. Это должен быть первый вариант выбора при использовании аварийного диска.
  • Run a Memory Test: если вы столкнулись с ошибками памяти, это позволяет пометить плохие микросхемы памяти, чтобы ваша машина могла нормально загружаться.
  • Boot from local drive: здесь я думаю всё понятно.

Пример использования "Rescue a CentOS System"

1. Перезагружаем сервер с установочным диском Centos 7. Загружаемся и выбираем "Troubleshooting".

2. В меню траблшутинга выбираем "Rescue a CentOS System" и загружаемся.


3. Система восстановления теперь предлагает вам найти установленную систему Linux и смонтировать ее в /mnt/sysimage . Выберите номер 1, чтобы продолжить:
4. Если была найдена правильная установка CentOS, вам будет предложено, чтобы система была смонтирована в /mnt/sysimage . В этот момент вы можете дважды нажать Enter, чтобы получить доступ к оболочке восстановления.



5. Ваша система Linux на данный момент доступна через каталог /mnt/sysimage . Введите chroot /mnt/sysimage . На этом этапе у вас есть доступ к корневой файловой системе, и вы можете получить доступ ко всем инструментам, которые необходимы для восстановления доступа к вашей системе.

Переустановка GRUB с помощью аварийного диска

Одна из распространенных причин, по которой вам нужно запустить аварийный диск, заключается в том, что загрузчик GRUB 2 не работает. Если это произойдет, вам может понадобиться установить его снова. После того, как вы восстановили доступ к своему серверу с помощью аварийного диска, переустановить GRUB 2 несложно, и он состоит из двух этапов:

  1. Убедитесь, что вы поместили содержимое каталога /mnt/sysimage в текущую рабочую среду.
  2. Используйте команду grub2-install , а затем имя устройства, на котором вы хотите переустановить GRUB 2. Если это виртуальная машина KVM используйте команду grub2-install /dev/vda и на физическом сервере или виртуальная машина VMware, HyperV или Virtual Box, это grub2-install /dev/sda .

Повторное создание Initramfs с помощью аварийного диска

Иногда initramfs также может быть поврежден. Если это произойдет, вы не сможете загрузить свой сервер в нормальном рабочем режиме. Чтобы восстановить образ initramfs после загрузки в среду восстановления, вы можете использовать команду dracut . Если используется без аргументов, эта команда создает новый initramfs для загруженного в данный момент ядра.
Кроме того, вы можете использовать команду dracut с несколькими опциями для создания initramfs для конкретных сред ядра. Существует также файл конфигурации с именем /etc/dracut.conf , который можно использовать для включения определенных параметров при повторном создании initramfs .

  • /usr/lib/dracut/dracut.conf.d/*.conf содержит системные файлы конфигурации по умолчанию.
  • /etc/dracut.conf.d содержит пользовательские файлы конфигурации dracut.
  • /etc/dracut.conf используется в качестве основного файла конфигурации.

Исправление общих проблем

В пределах статьи, подобной этой, невозможно рассмотреть все возможные проблемы, с которыми можно столкнуться при работе с Linux. Однако есть некоторые проблемы, которые встречаются чаще, чем другие. Ниже некоторые наиболее распространенные проблемы.

Переустановка GRUB 2

Код загрузчика не исчезает просто так, но иногда может случиться, что загрузочный код GRUB 2 будет поврежден. В этом случае вам лучше знать, как переустановить GRUB 2. Точный подход зависит от того, находится ли ваш сервер в загрузочном состоянии. Если это так, то довольно просто переустановить GRUB 2. Просто введите grub2-install и имя устройства, на которое вы хотите его установить. У команды есть много различных опций для точной настройки того, что именно будет установлено, но вам, вероятно, они не понадобятся, потому что по умолчанию команда устанавливает все необходимое, чтобы ваша система снова загрузилась. Становится немного сложнее, если ваш сервер не загружается.

Если это произойдет, вам сначала нужно запустить систему восстановления и восстановить доступ к вашему серверу из системы восстановления. После монтирования файловых систем вашего сервера в /mnt/sysimage и использования chroot /mnt/sysimage , чтобы сделать смонтированный образ системы вашим корневым образом: Просто запустите grub2-install , чтобы установить GRUB 2 на желаемое установочное устройство. Но если вы находитесь на виртуальной машине KVM, запустите grub2-install /dev/vda , а если вы находитесь на физическом диске, запустите grub2-install /dev/sda .

Исправление Initramfs

В редких случаях может случиться так, что initramfs будет поврежден. Если вы тщательно проанализируете процедуру загрузки, вы узнаете, что у вас есть проблема с initramfs , потому что вы никогда не увидите, как корневая файловая система монтируется в корневой каталог, и при этом вы не увидите запуска каких-либо системных модулей. Если вы подозреваете, что у вас есть проблема с initramfs , ее легко создать заново. Чтобы воссоздать его, используя все настройки по умолчанию (что в большинстве случаев нормально), вы можете просто запустить команду dracut --force . (Без --force команда откажется перезаписать ваши существующие initramfs .)
При запуске команды dracut вы можете использовать файл конфигурации /etc/dracut.conf , чтобы указать, что именно записывается в initramfs . В этом файле конфигурации вы можете увидеть такие параметры, как lvmconf = «no» , которые можно использовать для включения или выключения определенных функций. Используйте эти параметры, чтобы убедиться, что у вас есть все необходимые функции в initramfs .

Восстановление после проблем с файловой системой

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

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

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

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

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

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

2 ответа

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

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

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

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

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

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

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

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

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

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

Но если по какой-то странной причине вы захотите использовать 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 Должно сработать

Удерживайте нажатой клавишу Shift во время загрузки, чтобы открыть меню GRUB.

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


В целом он должен напоминать этот снимок экрана, но можно ожидать, что он будет выглядеть по-разному в зависимости от того, какую версию Ubuntu вы используете.

"Ubuntu" выбран по умолчанию. Оставьте этот выбор, но нажмите e, чтобы отредактировать его.
(Не волнуйтесь, ваши правки предназначены только для этой загрузки и не будут сохранены.)

Перейти к концу строки, которая начинается linux /boot/vmlinuz-. , (Вы можете использовать клавиши со стрелками и End, чтобы добраться до конца строки.)

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

Введите пробел, затем init=/bin/dash , Затем нажмите F10 для загрузки этой конфигурации.

Тебе следует увидеть:

Переустановите readwrite корневой файловой системы, чтобы вы могли вносить изменения в файлы на диске:

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

Делать /bin/sh символическая ссылка на dash вместо zsh :

Если вам нравится, вы можете проверить, что sh символическая ссылка была правильно перенастроена путем запуска ls -l sh , который должен показать что-то вроде:

( sh -> dash это ключевая часть.)

Перезапустите с reboot -f , Ваша система должна быть исправлена.

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

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

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

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

Чтобы войти в режим восстановления, зажмите Shift во время загрузки, чтобы открыть меню GRUB.

Выберите Дополнительные параметры для Ubuntu.

В меню доступных ядер нажмите ↓, чтобы переместить выбор к записи, заканчивающейся на (recovery mode) и нажмите Enter .

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

Если это не сработает, вы можете перезагрузиться с помощью "magic SysRq", как описано выше. Если это сработает, вы увидите меню восстановления.

В Меню восстановления нажимайте ↓ несколько раз, пока

выбран. Нажмите 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 (как предписано в вашей лабораторной работе) - плохой совет по крайней мере по двум причинам:

/bin/zsh иногда не существует, даже если zsh установлено. Это зависит от того, как оно было установлено и какая ОС используется. zsh большая, сложная оболочка, которая не очень часто используется в качестве /bin/sh и, таким образом, обычно не требуется быть доступным в однопользовательском режиме или каким-либо другим образом перед отдельным /usr раздел может быть установлен. Исполняемые файлы, которые не нужны в однопользовательском режиме, обычно находятся в подкаталогах /usr ,

Убунту zsh действительно обеспечивает /bin/sh , Но в других системах это может быть /usr/bin/zsh или даже /usr/local/bin/sh (как в моей системе FreeBSD, где он установлен через pkg ).

Мотивация этого упражнения, возможно, заключалась в том, чтобы укрепить систему против "Shellshock" (или других возможных ошибок разбора, возникающих в процессе bash принимает функции оболочки, переданные в переменных среды). Но это не очень подходящий курс действий для этой цели.

Хотя многие системы GNU/Linux, такие как Fedora, RHEL и Slackware, имеют bash предоставлять /bin/sh во многих других оболочке /bin/sh , Это включает в себя Ubuntu, который использует dash , подобно zsh , dash не уязвим для "Shellshock" и не импортирует определения функций из переменных среды (или вообще) с использованием какого-либо механизма, поэтому подобная ошибка вряд ли повлияет на него.

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

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

Часто, sh является символической ссылкой, жесткой ссылкой или копией другой установленной оболочки. Но в некоторых системах, особенно в некоторых Unix-подобных системах, которые не являются системами GNU/Linux, sh может быть отдельным исполняемым файлом из всего остального. За исключением случаев, когда известно, что это не так, рекомендуется проверить, прежде чем rm это! mv В этом случае может быть более подходящим.

Упражнения, которые изменяют конфигурацию системы, особенно те, которые требуют выполнения команд от имени root для выполнения необычных действий, обычно не должны выполняться на рабочих машинах. Эксперименты и исследования являются практически необходимыми и ценными. Но когда они могут привести к поломке, их лучше всего выполнять на установках, непрерывное функционирование которых не является существенным для важной работы, которую необходимо выполнить.

Другими словами, это хорошо, чтобы проверить вещи перед их развертыванием "по-настоящему". (Виртуальные машины часто хороши для этого.)

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

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

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

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

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

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

точка sh в zsh вместо dash запустив cd /bin; rm sh; ln -s /bin/zsh /bin/sh (как вы сделали).

проверить sh хорошая ссылка на zsh запустив file sh (или если вы больше не в /bin использовать file /bin/sh ).

Тебе следует увидеть sh: symbolic link to `zsh' (или же /bin/sh: symbolic link to `zsh' ).

Читайте также: