Время отклика интерфейса

Загрузка Ubuntu 20.04 в аварийном режиме

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

Чтобы загрузиться в аварийном режиме, перезагрузите или загрузите вашу систему. В меню grub убедитесь, что выделен первый параметр, и нажмите клавишу «e» на клавиатуре, чтобы получить доступ к параметрам grub.

Прокрутите и найдите строку, которая начинается с «linux». Ещё раз перейдите к концу строки, нажав ctrl+e, и удалите строку «$vt_handoff».

Затем добавьте строку «systemd.unit=emergency.target» в конец строки.

После этого нажмите Ctrl+x для перезагрузки в аварийном режиме. Нажмите ENTER, чтобы получить доступ к корневой файловой системе. Отсюда вы можете просматривать различные файлы в вашей системе Linux. В этом примере мы просматриваем содержимое файла /etc/fstab, чтобы увидеть определённые точки монтирования.

cat /etc/fstab
mount -o remount,rw /
passwd root
systemctl reboot

Чтобы внести какие-либо изменения в систему, вам необходимо смонтировать её в режиме чтения и записи следующей командой.

mount -o remount,rw /

Отсюда вы можете выполнять любые задачи по устранению неполадок, такие как изменение пароля root, как показано на скриншоте. Как только вы закончите, перезагрузитесь, чтобы изменения вступили в силу.

systemctl reboot

Это конец статьи. Надеюсь, теперь вы можете получить доступ как к режиму восстановления, так и к аварийному режиму и исправить системные проблемы в ОС Ubuntu.

Проблема initramfs : вариант третий

Проблема повторяется всякий раз после перезагрузки

Однако, обратите внимание. Если терминал с initframs преследует вас ИМЕННО ПОСЛЕ РАБОТЫ В WINDOWS, советую вам повторить любой из шагов, который вернул вам нормальную загрузку, но в этот раз:

  • отправляемся не в Кали, а прямиком в Windows
  • обнаруживаем ВСЕ ПРОГРАММЫ, которые позволяют читать файловую систему ext* из Wind-овой NTFS. По личному опыту скажу: 99% возвращающейся ошибки initframs являются драйверы таких программ, которые загружаясь с Windows, «наводят порядок» на томе с Кали, даже если вы такую программу и не запускаете вовсе. В любом случае утилит, позволяющих попасть в Кали из Windows, несколько. Выберите ту, которая не вызывает вываливания в BusyBox с initframs.
  • нашли и удалили? Запускаем проверку диска с Windows с перезагрузкой:
chkdsk C: /F/R/X/B

Уверен, она не помешает. Успехов.

Узнаем продолжительность загрузки

Чтобы выяснить, сколько Windows требуется времени на загрузку на вашем компьютере, выберите в левой части окна, созданный ранее фильтр Boot Time (Время загрузки) в разделе «Настраиваемые представления» и отсортируйте столбец «Дата и время» по возрастанию. Так вы сможете посмотреть, как изменялась продолжительность загрузки системы со дня ее установки (рис. 5).

Увеличить рисунокРисунок 5

Из рисунка видно, что длительность самой первой загрузки моей Windows (дата ее установки) по состоянию на 15 марта 2010 года составила 44 498 миллисекунд — или, если разделить на 1000, примерно 45 секунд. Для первого запуска этот показатель нормальный, поскольку после установки система выполняет целый ряд задач: устанавливает драйверы, инициализирует программы в автозагрузке, настраивает профиль пользователя и так далее.

По состоянию на 30 января 2011 года время загрузки возросло, и составило 115652 ms, т.е. почти 2 минуты. Это много.

Настраиваемое представление «Время загрузки» предоставляет информацию обо всех случаях загрузки системы за время ее существования. Иногда загрузка затягивается по вполне объяснимым причинам — из-за установки обновлений, драйверов или программного обеспечения.

На вкладке «Подробности» процесс загрузки описывается во всех деталях, однако для анализа продолжительности загрузки достаточно будет только трех параметров на вкладке «Подробности» (рис 6).

Увеличить рисунокРисунок 6

Рассмотрим суть значений этих параметров подробнее.

  • Параметр «MainPathBootTime » обозначает временной интервал между возникновением на экране анимированного логотипа Windows и появлением рабочего стола. В этот момент систему уже можно использовать, но в фоновом режиме продолжается загрузка низкоприоритетных задач.
  • Параметр «BootPostBootTime » указывает, через какой промежуток времени после появления рабочего стола системой можно начинать пользоваться в полном объеме.
  • Параметр «BootTime » — это та же самая величина, что и на вкладке «Общие» обозначена как «Время загрузки». Она представляет собой сумму параметров «MainPathBootTime» и «BootPostBootTime».

И наконец, мы подошли к самому важному и интересному

Что означает эта ошибка

Сообщение об ошибке: «Error loading operating system» с чёрным экраном (в переводе означает «Ошибка загрузки ОС») – это раздражающая проблема, которую пользователи часто испытывают при попытке загрузить свой ПК с Windows. Проблема запуска обычно возникает после новой установки ОС Windows, внезапного сбоя питания, сбоя или перезагрузки. Что именно заставляет ОС вашего ПК не загружаться должным образом? Как можно решить проблему «ошибка загрузки операционной системы»? Всякий раз, когда Windows (7 и новее) включается и запускается, его BIOS и CMOS начинают работать над настройкой ОС, проверяют винчестеры и затем загружают ОС. Во время процесса, если есть какая-либо проблема на жёстком диске, операционная система не запускается, и вы не можете открыть свой рабочий стол. Это означает, что ваша ОС имеет следующие проблемы, которые мешают правильной загрузке ОС:

  • Системный раздел винчестера повреждён из-за внезапного отключения питания, заражения вирусом или записи.
  • Файлы и папки ОС повреждены.
  • BIOS не поддерживает винчестер.
  • К вашему ПК подключено несколько винчестеров, из-за чего основной винчестер, содержащий ОС и системные приложения, теперь не обнаруживается.
  • HDD стал физически повреждённым.

Причины проблемы

BIOS загружает 1-й сектор с винчестера (Master Boot Record), проверяет подпись 55 AA и передаёт управление в Master Boot Record. Основная загрузочная запись сканирует таблицу разделов на наличие активного раздела, затем загружает 1-й сектор из активного раздела, проверяет подпись 55 AA и передаёт управление загрузочному сектору. Загрузочный сектор загружает 15 дополнительных секторов с начала диска (Volume Boot Record) и передаёт управление первому дополнительному сектору VBR в Windows XP и остальных. Volume Boot Record загружает файл BOOTMGR из корневого каталога загрузочного раздела в память и передаёт ему управление.

BOOTMGR загружает ветку реестра Boot\BCD и отображает меню загрузки. Это значит, что BOOTMGR может запустить тест памяти и установить загрузку в безопасном режиме для запроса пользователя. Но обычно он загружает winload.exe, когда ПК загружается нормально (холодный запуск) или winresume.exe (когда ПК выходит из спящего режима). Winload.exe открывает ветвь реестра SYSTEM, получает список драйверов, загружает NTOSKRNL.exe, загружает драйверы (файлы *.SYS) и передаёт управление NTOSKRNL.exe. Winresume.exe загружает дамп памяти из hiberfil.sys и передаёт управление ему. BIOS загружает 1-й сектор с винчестера (Master Boot Record), проверяет подпись 55 AA и передаёт управление в Master Boot Record.

Основная загрузочная запись (в Windows 8) сканирует таблицу разделов на наличие активных разделов. Существует один активный раздел, поэтому Master Boot Record пытается загрузить 1-й сектор из активного раздела, но сектор находится вне счётчика секторов устройства или не содержит подписи 55 AA. Таким образом, MBR выдаёт сообщение об ошибке «Error loading operating system» и останавливает машину.

Ошибка диска: /dev/sda1 does not exist

Проблема с fstab

Если при загрузке сервера вы видите ошибку:

Скорее всего вы только что установили Linux или то на вашем сервере есть проблемы в fstab. Чаще всего проблема возникает при установке системы с usb-накопителя. Раздел на который ругается система, может быть какой угодно. Как и в первом случае, нам нужно загрузиться с образа системы и выполнить некоторые действия. Проверьте UUID диска командой:

Система выдаст что-то подобное:

Отсюда уже видно, что система должна загружаться с sda2, а по факту загружается с sda1.

Монтируем наш раздел в любую директорию, например:

# sudo mount /dev/sda2 /mnt

Получаем в директории /mnt весь наш раздел /dev/sda2, находим там файл /etc/fstab и изменяем строку, содержащую /dev/sda1 на:

Сохраняем файл. Отмонтируем раздел от /mnt и перезагрузимся, если проблема была связана с не неправильным адресом разделе, сервер загрузится.

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

# sudo mount -o remount,rw /

После чего измените fstab и перезапустите сервер.

Проблема с железом

На некоторых материнских платах порты SATA могут получать произвольные номера. Это также может вызвать описанную в предыдущем пункте ошибку. Для исправления ошибки нужно изменить загрузчик grub.

Загрузитесь в режиме emergency или с live-cd и измените файл /boot/grub/grub.cfg

В строке где происходит загрузка раздела, например:

Измените путь до диска на UUID:

Entering rescue mode

Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.

Machine UUID...
Booting from Hard Disk...
error: no such partition.
Entering rescue mode...
grub rescue>

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

Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.

> ls
(hd0) (hd0,gpt3)

В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:

> ls (hd0,gpt3)/

По содержимому раздела видно, что это корневой. Самого раздела /boot, с которого должна начинаться загрузка  ubuntu тут не видно. Если его никто специально не удалял и не затирал, то он пропал в результате какого-то сбоя или ошибки. Можно попробовать это исправить. Сделаем это отдельно ниже, а пока рассмотрим случай, когда boot раздел тут все же присутствует и имеет имя, к примеру, (hd0,gpt2). Тогда там же в консоли grub продолжаем.

> set prefix=(hd0,gpt2)/grub 
> set root=(hd0,gpt2)

Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:

> insmod ext2
> insmod lvm
> insmod part_msdos

Можно для начала попробовать вообще без модулей, а потом добавлять по одному. В самом конце загружаем модуль normal.

> insmod normal
> normal

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

Почему Linux не загружается дальше initramfs

Если вы столкнулись с данной ошибкой, то после нескольких десятков секунд загрузки увидите такое сообщение:

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

1. Неверный корневой раздел в загрузчике

В данном случае она сообщает, что не может найти раздел /dev/sda10:

Alert: /dev/sda10 does not exist. Dropping to a shell

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

В этом окружении есть BusyBox, а значит есть большинство утилит Unix. Вы можете примонтировать каждый из этих разделов с помощью команды mount и узнать где находится ваш новый корневой раздел, например:

mkdir /mnt mount /dev/sda5 /mnt ls

Вы также можете узнать здесь же UUID данного раздела диска, для этого выполните:

В данном случае, корневой раздел имеет имя /dev/sda5. Именно это имя можно передать ядру в конфигурации загрузчика Grub, а можно UUID, но если в этом нет крайней необходимости, то короткое имя использовать гораздо проще. Надо перезагрузить компьютер, в меню Grub выбрать нужную загрузочную запись и нажать клавишу E:

Далее найти пункт, начинающейся со слова linux и в нём параметр root. Его значение вместе со словом UUID надо стереть, а вместо него прописать имя корневого раздела:

После этого система загрузится, а вам останется только создать новый конфигурационный файл grub с помощью команды:

2. Повреждённая файловая система

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

The root filesystem on /dev/sda5 requires a manual fsck

Вы можете прямо здесь же попытаться восстановить файловую систему. Для этого выполните:

Здесь /dev/sda5 – это корневой раздел, его нужно заменить на свой. Опция -y указывает утилите, что на все вопросы надо ли исправлять блок нужно отвечать утвердительно. После успешного восстановления надо перезагрузить компьютер и попытаться загрузить систему снова.

Диагностируем медленную загрузку

Чтобы выяснить причину замедления загрузки Windows, выделите фильтр «Замедление загрузки» в левой части окна в разделе «Настраиваемые представления» и отсортируйте столбец «Код события» (Event ID) по возрастающей. Каждый код соответствует определенному событию, увеличивающему продолжительность загрузки.

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

  • Код события 101. Событие 101 возникает, когда приложение загружается дольше обычного. Это часто связано с установкой обновлений. Если замедление загрузки наблюдается эпизодически, ничего страшного в этом нет. Но если какое-то приложение всякий раз загружается слишком долго или время замедления оказывается ненормально большим, тут нужно уже задуматься.
  • Код события 102. Событие 102 свидетельствует о замедлении инициализации драйвера. Это, опять же, может быть вызвано обновлением, но если ситуация возникает регулярно или замедление оказывается серьезным, стоит установить более свежую версию драйвера. Если таковой не имеется, попробуйте удалить и переустановить драйвер.
  • Код события 103. Событие 103 возникает при замедлении загрузки служб. Иногда это случается, но если это происходит регулярно, попробуйте изменить тип запуска службы на «Автоматически отложенный запуск» или «Вручную» в консоли «Службы».
  • Код события 106. Событие 106 свидетельствует о том, что выполнение фоновой операции по оптимизации затянулось. Поскольку оптимизация — операция продолжительная, ничего страшного в этом нет.
  • Код события 109. Событие 109 возникает при замедлении инициализации устройства. Если это явление редкое, беспокоиться не стоит. Но если инициализация затягивается всякий раз, не забывайте регулярно делать резервное копирование и будьте готовы к замене проблемного устройства.

У меня, например, обнаружились два события. Одно с кодом ID 108 :

 Увеличить рисунокРисунок 7

Другое с кодом 109:

Увеличить рисунокРисунок 8

Столь маленькое время задержки на рисунках 7 и 8 не трагично, они приведены тут лишь для наглядности.

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

Устройство initramfs образов, генерируемых make-initrd

В этом разделе описаны основные сведения по архитектуре образов, генерируемых make-initrd.

Сервисы

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

В системе есть несколько основных сервисов, на которых базируется основная логика работы:

  • udevd – обработчик событий ядра об изменении состояния устройств. При изменении состояния любого устройства он параллельно запускает фильтры (скрипты), добавляющие пользовательские события в очередь. Этот демон используется во многих дистрибутивах Linux.

  • ueventd – обработчик пользовательских событий. Этот демон запускает обработчики пользовательских событий. События внутри одной очереди обрабатываются последовательно, а сами очереди – параллельно.

  • polld – демон, ожидающий выполнения условий загрузки системы. Все, что он делает – один раз в заданное время проверяет условия запуска системы. Если они удовлетворены, запускается некоторый экшен. Скрипты проверки условий и экшена зависят от метода загрузки. Тем не менее, зачастую, их задача – проверить, что корень найден и переключить runlevel на второй уровень.

Runlevel

Runlevel определяет уровень запуска системы. Эти уровни отличаются от тех, что . В make-initrd номер уровня зависит от состояния загрузки системы. А от номера уровня, в свою очередь, зависит то, какие сервисы будут активны в текущий момент. В make-initrd предусмотрено всего 3 уровня:

  • Уровень 3 – означает, что реальный корень системы еще не примонтирован. На этом уровне происходит запуск и работа большинства сервисов.

  • Уровень 2 – означает, что реальный корень системы уже примонтирован. На этом происходит завершение большинства сервисов.

  • Уровень 9 – специальный уровень, на котором происходит подмена корня системы на реальный и запуск на нем.

Разберем пример загрузки с жесткого диска.

  1. После запуска , произойдет инициализация окружения: примонтируется файловая система и установится runlevel=3;

  2. Последовательно запускаются различные сервисы, среди которых будут udevd, ueventd и polld;

  3. После обнаружения устройства жесткого диска ядро сгенерирует соответствующее событие для демона udevd;

  4. udevd просмотрит список своих правил. При нахождении правила на добавление блочного устройства запустится соответствующий обработчик (в make-initrd они называются фильтрами);

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

  6. В какой-то момент ueventd запустит обработчик этого пользовательского события. Обработчик примонтирует жесткий диск;

  7. Демон polld в очередной раз запустит скрипт проверки наличия корня. После его обнаружения запустится экшен, переключающий runlevel на второй уровень;

  8. После переключения runlevel произойдет отключение большинства сервисов. Далее запустится сервис runinit, который установит runlevel на девятый уровень;

  9. Процесс init произведет подмену корня и запустит ;

Устройство файловой системы initramfs образов

Initramfs образ, генерируемый make-initrd, имеет строгую структуру файловой системы

Поэтому при добавлении собственной фичи важно понимать, что и где должно лежать:

  • – программа, которой передается управление после инициализации ядра;

  • , – директории программ;

  • , – директории сервисов;

  • – директория конфигураций;

  • – директория LSB конфигураций сервисов;

  • – директория правил udevd;

  • – файл содержащий текущий метод загрузки;

  • – директория описаний аргументов ядра;

  • , – директории библиотек;

  • – директория фильтров uevent событий;

  • – директория обработчиков uevent событий;

  • – директория скриптов методов загрузки;

  • – скрипт проверки условии активации метода загрузки;

  • – скрипт активации метода загрузки;

  • – директория подскриптов проверки условий метода загрузки;

  • – директория, которую могут использовать сервисы и программы для внутренней работы;

  • – директория временных файлов.

Missing operating system как исправить?

Самая частая проблема возникновения ошибки «Missing operating system
» это проблемы в Master Boot Record
— разделе жесткого диска, который определяет порядок загрузки операционных систем на компьютере (их может быть несколько). В случае, если у вас Windows 7, то вы можете воспользоваться диском восстановления и быстро починить раздел. И вот как это делать:

2. Перейдите на вкладку «Tools
» (в русской локализации — «Инструменты»).

3. Найдите пункт на подобии «Hard Drive Self Test
» (тестирование жесткого диска). В зависимости от версии BIOS
и локализации пункт может называться по разному.

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

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

следующие решения по устранению ошибок, на которые указывает сообщение «Missing Operating System» или «Operating System Not Found», появляющееся перед запуском Windows.
Missing Operating System (Операционная система отсутствует)
Данное сообщение об ошибке может появляться по одной или нескольким из следующих причин:
BIOS ноутбука не обнаруживает жесткого диска.
Жесткий диск физически поврежден.
Повреждена главная загрузочная запись Windows (MBR) на жестком диске.
Раздел или фрагмент жесткого диска, содержащий главную загрузочную запись Windows (MBR), более не активен.
Используйте один из указанных ниже способов устранения этой ошибки:
Шаг 1: Тестирование жесткого диска
Выполните следующие действия для проверки жесткого диска ноутбука с помощью утилиты самотестирования жесткого диска.
Если все тесты были выполнены успешно, нажмите кнопку питания, чтобы перезагрузить компьютер. Если ошибка повторится, перейдите к Шагу 2.
Шаг 2: Устранение неполадки главной загрузочной записи Windows
Главная загрузочная запись Windows (MBR) – это раздел на жестком диске, предназначенный для запуска операционной системы Windows. Если главная загрузочная запись (MBR) повреждена, то запуск компьютера невозможен. Для устранения неполадки главной загрузочной записи Windows можно использовать установочный диск с операционной системой Windows, поставляемый в комплекте с ноутбуком. Для устранения неполадок главной загрузочной записи (MBR) выполните следующие действия.
Вставьте установочный диск с операционной системой Windows в привод компакт-дисков (CD или DVD).
Нажмите и удерживайте кнопку питания Power в течение 5 секунд, чтобы выключить компьютер. Затем нажмите кнопку Питание, чтобы включить ПК.
Нажмите клавишу Ввод в ответ на приглашение системы выполнить загрузку с компакт-диска (Boot from CD).
В меню установки Windows (Windows Setup Menu) нажмите клавишу R , чтобы запустить консоль восстановления (Recovery Console).
В командной строке C:\> введите FIXMBR и нажмите клавишу Ввод для продолжения.
Нажмите клавишу y и затем Ввод в ответ на запрос системы, требуется ли создать новую загрузочную запись (MBR).
После успешной записи загрузочной записи (MBR) перезагрузите компьютер, нажав на кнопку питания (Power).
ПРИМЕЧАНИЕ:Более подробную информацию по работе с консолью восстановления Windows (Windows Recovery Console) см. в документе Microsoft: Дополнительные сведения о Консоли восстановления Windows (Windows Recovery Console) (на английском языке).
Шаг 3: Переустановка операционной системы Windows
Для переустановки операционной системы Windows на ноутбуке следуйте инструкциям.
Шаг 4: Обратитесь в Службу технической поддержки HP
Если действия, описанные в шагах 1,2 или 3, не помогли устранить неполадку, обратитесь за помощью в службу поддержки.

Вывод

Естественно, фича не раскрывает всю мощь использования make-initrd. Если вы хотите рассмотреть более живые примеры фич, посмотрите исходники фич:

  • sshfsroot. – фича для загрузки с сетевых дисков по протоколу ssh;

  • luks – фича для загрузки с зашифрованных разделов;

  • raid – фича для загрузки с raid разделов.

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

Обратите внимание насколько архитектура этих фичей совпадает с той, что мы реализовывали в hello-usb. Такая структурированность упрощает процесс разработки, и вы можете опираться на нее

Make-initrd также удобен и для конечного использования. Такая крупная ОС, как ALT Linux, использует его в своих дистрибутивах в качестве основного генератора initramfs образов, в частности на таких продуктах, как “Альт Рабочая станция” и “Альт Сервер”. Это ли не показывает его широкую направленность?

На десктопных платформах вы можете добиться желаемого с помощью пары строк в конфигурационном файле, а порой полностью автоматически. Хотите добавить загрузку c сетевого раздела, используя sshfs? Просто напишите в файле конфигурации, а в опциях ядра укажите адрес сервера. Хотите добавить загрузку с RAID или LVM разделов? Ничего делать не надо! Если ваш корень лежит на таком разделе, make-initrd автоматически подберет правильную конфигурацию.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: