Reached target basic system centos 7 зависает

Обновлено: 04.07.2024

Сегодня пока делаю вывод что возможно не так записываю на флешку образ для установки на ПК, хотя я даже на ноут попробовал и успешно переустановил debian способом pv|dd о котором ниже.

Сперва я записывал так:
pv image.iso | dd of=/dev/sdb bs=2048
Именно так я пытался писать на USB debian,centos, win10.
Я уже попробовал установить винду на ПК с тем же способом записи с линукса, та вообще не стартанула установку, не обнаружила флешку как загрузочную винду.
Я ранее давно использовал ubuntu 12 или 14.04 в связке с unetbootin. Думаю, сейчас пробую на debian использовать unetbootin - оказалась другая проблема.
При запуске ./unetbootin.bin ошибка:

а в терминале при этом:

После ошибки открывается unetbootin, ну хорошо вроде записал iso на флешку. Вставляю в ПК а он не видит с чего грузиться, не загрузочная флешка, не важно что записывать debian, centos, win10. При записи через pv|dd хоть инсталлятор debian и centos запускались как с загрузочной флешки.
Ну ок, не знаю какой эквивалентный пакет нужно поставить в debian, поэтому ставлю исходя из ошибки apt-get install mtools. Ошибка mtools пропала, но ошибки в терминале те же. Пробую заново записать установить Debian - не обнаруживается cdrom при установке no common cdrom drive was detected, centos - вообще не выдал свое стандартное меню установки ошибки, после OK Reached target basic system идут следом ошибки , win10 - вообще нет в списке ничего кроме default. Во всех трех случаях unetbootin вообще подменяет начальное меню загрузки USB на свое, словно в мультизагрузочных флешках, ранее не помню такого когда им пользовался в последний раз.
Вот теперь вопрос как установить ОС на ПК хоть какую-то? С ноута чем записать по нормальному ОС?

Кстати ремарка, возвращаясь в шапку вопроса, при установке на ПК debian кроме ошибки:

появлялась иногда ошибка другая на том же этапе:


Еще одна ремарка, при установке centos через unetbootin дольше висел текст предзагрузки установки, есть то ли ошибки то ли предупреждения:

После отключения 2-го HDD система грузится в штатном режиме. Подскажите, где искать причину, чтобы можно было подключить 2-ой HDD? На 2-ой HDD я пытался установить CentOS с разделами LVM, возможно связано с этим? 1 HDD также в LVM


Возможно у вас одинаковые имена у LVM. Загрузитесь с флешки или ещё чего с подключенным вторым винтом и почистите его.

Раньше в редхатах ещё была проблема с одинаковыми метками корневых файловых систем, но, вроде, сейчас это не критично.


grub.cfg надо посмотреть


fstab мозг выносит системе - в нем нет второго винчестера вот система и тупит, для debian это не критично - а для красной плесени выходит фатально.


еще бы не мешало посмотреть порядок подключения винчестеров на мамке, например один винторез определяется как sda1, когда воткнул второй - первый может определиться уже как sdb1, а в грубе в этот момент прописан старт с sda1 и хер чего тогда стартонет, по этому первый диск надо воткнуть в sata0, а второй в sata1. установку систем проводить с двумя подключеными винтами.



Сейчас и в fstab и в grub диски прописываются по UID

но поняв весь механизм - понял что про иному просто нельзя.

Так было в линуксах лет 15-20 назад. Потом повсеместно пришёл initramfs и disk-by-uuid.

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


Так было в линуксах лет 15-20 назад

хорошо быть по пояс деревянным и ипользовать готовые решения, самому не о чем не задумываться и при этом учить других уму разуму? я использую только базовую часть от замшелого stretch остальное допиливаю сам - красной шняги хватило один раз для пробы, что бы отказаться от нее навсегда. правлю grub и fstab по старинке без всяких uuid - может это и замшелые решения за то 100 пудов все работает и не выносит мозг - продиктуй мне умник свой uuid, что не помнишь - надо посмотреть. ну-ну пока смотришь - жизнь пройдет, не знаю как остальным - мне проще запомнить 3 буквы и одну цифру.


Для более быстрого нахождения решения проблемы следовало бы набросить про systemd и скастовать его фанатов.

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

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

правлю grub и fstab по старинке без всяких uuid
за то 100 пудов все работает и не выносит мозг

А потом рассказываешь на форумах о том, как у тебя ломается загрузка от вставленной флешки.

продиктуй мне умник свой uuid, что не помнишь


Копай в LVM, у меня 2 диска 1 на LVM второй на ex4 - и никаких проблем нет. Этот сраный LVM чуть дунешь и он посыпался.

я <…> правлю grub и fstab по старинке без всяких uuid

Дело твое, конечно, но зачем?

100 пудов все работает и не выносит мозг

Слова человека, чуть выше сказавшего ровно обратное.

продиктуй мне умник свой uuid
мне проще запомнить 3 буквы и одну цифру.

Для чего запоминать то, что в любой момент можно спросить у findmnt(1), blkid(1) и lsblk(1)?


Я, к сожалению, отформатировал диск / dev / sda2. Так что все /root , /home , swap LVM больше не существует. Из-за этого мой сервер не может нормально работать.

это показывает только

  • я не понимаю. вы говорите, что отформатировали диск, который уже использовался? и перезаписали таблицу разделов, уничтожив существующие данные?
  • Я пытаюсь отформатировать этот диск / dev / sda2 с помощью fdisk
  • добро пожаловать в U&L! Есть ли у вас резервная копия?
  • нет .. Я новичок в платформе Linux. не могли бы вы объяснить мне несколько ясно
  • У меня такая же проблема при использовании centos в виртуальном ящике. и я исправил это, изменив окна Hyper-V особенности. потом началось нормально

В аварийной оболочке дракута:

Dracut предлагает оболочку для интерактивной отладки в случае, если dracut не может найти вашу корневую файловую систему. Чтобы включить оболочку:

rhgb = redhat графическая загрузка - это экран загрузки в режиме графического интерфейса пользователя, на котором большая часть информации скрыта, а пользователь видит вращающийся значок активности и краткую информацию о том, что делает компьютер.

rd.shell = Это представит оболочку, если dracut не сможет найти ваше корневое устройство

  1. Удалите аргументы загрузки "rhgb" и "quiet". Ниже приведен пример файла конфигурации загрузчика /etc/grub.conf.

по умолчанию = 0

серийный --unit = 0 --speed = 9600

терминал --timeout = 5 последовательная консоль

название Fedora (2.6.29.5-191.fc11.x86_64)

ядро /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root = / dev / mapper / vg_uc1-lv_root console = tty0 rd.shell

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

Корневое устройство не найдено. Выполняется отладка оболочки. sh: нет доступа к tty; управление заданиями отключено

5. Доступ к корневому тому из оболочки dracut Из оболочки отладки dracut вы можете вручную выполнить задачу поиска и подготовки корневого тома к загрузке. Необходимые шаги будут зависеть от того, как настроен ваш корневой том. Общие сценарии включают:

• Блочное устройство (например, / dev / sda7)

• Логический том LVM (например, / dev / VolGroup00 / LogVol00)

• Зашифрованное устройство (например, / dev / mapper / luks-4d5972ea-901c-4584-bd75-1da802417d83)

6. Точный метод поиска и подготовки будет отличаться. Однако для продолжения успешной загрузки цель состоит в том, чтобы найти корневой том и создать символическую ссылку / dev / root, указывающую на файловую систему. Например, в следующем примере демонстрируется доступ и загрузка корневого тома, который представляет собой зашифрованный логический том LVM.

  1. Вы помните, что ваш корневой том был логическим томом LVM. Сканировать и активировать любые логические тома

Теперь вы должны увидеть все логические тома, используя команду blkid:

/ dev / sda1: UUID = "3de247f3-5de4-4a44-afc5-1fe179750cf7" TYPE = "ext4"

/ dev / mapper / linux-root: UUID = "def0269e-424b-4752-acf3-1077bf96ad2c" TYPE = "crypto_LUKS"

/ dev / mapper / linux-home: UUID = "c69127c1-f153-4ea2-b58e-4cbfa9257c5e" TYPE = "ext3"

9. С доступным корневым томом вы можете продолжить загрузку системы, выйдя из оболочки dracut.

Шаг 1: введите journalctl

Шаг 2. Найдите ошибку

Шаг 3: запустить

Шаг 4: запустить

  • Он будет работать под аварийной оболочкой dracut?
  • Может быть? Вам лучше загружаться с LiveCD с инструментами LVM.
  • 1 Я просто использовал эти две команды ниже: lvm vgscan и lvm vgchange -ay
  • 1 теперь он работает нормально. Спасибо за помощь :)

Виртуальные машины EL7, импортированные из виртуального устройства VirtualBox, могут не запускаться на Oracle VM или Xen с той же ошибкой.

Виртуальные машины под управлением EL7, экспортированные из Oracle VirtualBox в качестве виртуального устройства, а затем импортированные в Oracle VM, могут не загружаться правильно и могут выйти в аварийную оболочку. Это вызвано отсутствием драйвера xen-blkfront в образе initramfs. Обычно вывод во время загрузки для уязвимых систем выглядит следующим образом:

Обходной путь. Есть два пути решения этой проблемы. Первый включает добавление недостающих драйверов перед экспортом виртуальной машины Oracle Linux 7 из Oracle VirtualBox. Для этого перед выполнением экспорта выполните следующую команду от имени пользователя root:

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

После загрузки виртуальной машины вы можете добавить недостающие драйверы, выполнив следующую команду от имени пользователя root:

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

Понимание процедуры загрузки в 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 .

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

1 из 10, systemd зависает при перезагрузке. Я не понимаю причину. Что / где я должен посмотреть, чтобы решить проблему? Я использую systemd v196 и не могу обновить его до версии> = 198, потому что для последнего требуется последнее ядро (с поддержкой cgroups), которое не может быть обновлено в соответствии с требованиями заказчика. Интересно, есть ли разумный способ выяснить причину такого поведения и заставить systemd перезагрузить систему безоговорочно.

Как вы можете прочитать там:

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

Я не вижу причины.

Обратите внимание на swap.target. Это там, но мы не используем разделы подкачки вообще. Я пытался замаскировать своп, но проблема зависания переоценила. Последняя строка в консоли:

РЕДАКТИРОВАТЬ: Как я уже сказал, я могу повторно войти через ssh через eth.

Теперь я покажу вам два журнала. Первый журнал происходит, когда перезагрузка /shutdwon зависает, в то время как второй журнал, когда перезагрузка завершается успешно:

Зависание, вывод всегда такой (полный журнал):

После некоторых расследований и отладки я обнаружил причину прерывания работы, хотя пока не могу ее решить. В некоторых случаях одна из пользовательских служб запускается до завершения выключения, что приводит к зависанию процедуры выключения. Это один случай зависания. Другой тип зависания - это когда отключение не прерывается, но останавливается в какой-то момент. По этой причине, прежде чем разрешить все конфликты и другие возможные зависания по одному, я хочу безоговорочно активировать аппаратный сторожевой таймер. Чтобы сделать это через systemd, я включил и протестировал, отдельно или вместе, RuntimeWatchdogSec и ShutdownWatchdogSec. К сожалению, они не помогли. Глядя на исходный код, кажется, что systemd входит в цикл, в котором он все еще ожидает отключения всех файловых систем и выполнения других видов очистки, прежде чем позволить сторожевому устройству действительно работать (не поддерживая его).

Я застрял. Я прошу вас найти способ:1. безоговорочно включить сторожевой таймер, по крайней мере, начиная с точки, где начинается отключение 2. обнаружить и разрешить все конфликты простым способом

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