Меню Рубрики

Установка ubuntu ошибка установки grub

Ошибка установки Ubuntu — невозможно установить GRUB

В последнее время я купил новый ноутбук — Lenovo Yoga 2 Pro 13 «- Intel i5-4210U, 256 SSD.

Я попытался установить Ubuntu 14.04 с помощью следующих руководств:
Ubuntu на Lenovo Yoga 2 Pro
Ссылка

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

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

Я попытался следовать этому руководству: «Невозможно установить GRUB в / dev / sda», когда установка GRUB

Но он не работает. Я понятия не имею, как действовать.

5 ответов

Устранение ошибки ‘grub-install / dev / sda’ .

  1. sudo mount /dev/sdaX /mnt # Сделайте «X» раздел, на котором установлен Ubuntu (т. е. / dev / sda2).
  2. for i in /sys /proc /run /dev; do sudo mount —bind «$i» «/mnt/$i»; done
  3. sudo chroot /mnt
  4. update-grub , если никакие ошибки не пропускают этот
  5. grub-install /dev/sdX (x — жесткий диск, на котором установлен Linux (т. е. / dev / sda) update-grub Перезагрузка системы

Загрузочный загрузчик grub выходит из строя во время установки, поскольку установка USB по-прежнему подключена, и система пытается загрузить grub на USB-накопитель. Отключите USB-накопитель в точке установки, когда его попросят установить загрузчик grub.

Чтобы решить эту проблему, мне пришлось создать основной раздел EFI (fat32) вместо раздела ext4 / boot, который ранее был моей обычной практикой.

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

EDIT: я, наконец, отказался от этого подхода и просто создал /, swap и / home разделы (нет / boot) и не работал в ошибке «Не удалось установить GRUB».

Моя ситуация: новый ноутбук ASUS UX303UB с предустановленной Windows 10 Home и 250 ГБ SSDorChip Мое желаемое состояние: один раздел с Windows 10, один раздел с Linux destribution (Ubuntu 14.04.3), один раздел для файлов личных данных.

У меня есть в «BIOS»: Boot — > Быстрая загрузка = Dsiabled и Security — > Безопасное меню загрузки — > Безопасное управление загрузкой = отключено Я зашел в Windows 10 — > Настройки — > Система — > Power & amp; sleep — > Дополнительные настройки мощности — > Выберите, что делают кнопки питания — > Измените настройки, которые в настоящее время недоступны — > Включение быстрого запуска = Отключено

Я попытался установить дистрибутив Linux с USB-накопителя с уже установленной Windows 10, но всегда получал ошибку Не удалось установить GRUB в / dev / sda Выполнение ‘grub-install / dev / sda’ не удалось. Это фатальная ошибка. Ни один из советов из Интернета не помог.

Хорошо загружать все необходимые файлы, прежде чем продолжить процедуру, описанную ниже. Вам понадобится USB-ключ не менее 4 ГБ. Еще лучше, если у вас будет > = 4 ГБ для Ubuntu, > = 4 ГБ для Windows 10, > = 256 МБ для Clonezilla Хорошо иметь другой рабочий компьютер.

Только если у вас уже установлена и настроена Windows 10 и вы не хотите ее устанавливать и настраивать снова: Если у вас нет ключа Windows 10 Product: загрузите и выполните в Windows 10, например ProductKey25Finder, чтобы получить ключ продукта. Отправьте его по электронной почте на адрес электронной почты, сохраните его на существующем компьютере и на USB-накопителе. Загрузите образ ISO-изображения Clonezilla. Создайте USB-Stick Clonezilla из ISO (в Windows, например, с «ISO to USB»). Перезапустить компьютер. При загрузке нажмите Esc или F2 или F8 или F10 или F12 или Удалить, чтобы войти в меню загрузки. Выберите параметр: UEFI . этот USB-накопитель. Подключите USB-устройство, где необходимо сохранить резервную копию Windows 10 (вам, вероятно, потребуется не менее 30 ГБ свободного места) и продолжите. Вы также можете создать резервные копии других разделов.

установить дистрибутив Linux Загрузить образ Ubuntu ISO 1 + GB Создайте USB-накопитель Ubuntu из ISO (в Windows, например, с «ISO to USB»). Подключите этот USB-накопитель к компьютеру. Перезапустить компьютер. При загрузке нажмите Esc или F2 или F8 или F10 или F12 или Удалить, чтобы войти в меню загрузки. Выберите параметр: UEFI . этот USB-накопитель. Внимание! Удаление раздела приведет к полной потере данных на нем. Удалите все разделы (Да, возможно, несколько из них. На моем новом компьютере было 5, но при входе в Windows было видно только C: \), так что у вас есть только одно большое «нераспределенное пространство». Создайте один раздел EFI

650 МБ. Насколько я понял, этот раздел будет необходим для распространения Linux для создания загрузочной записи. Если вы позже удалите этот раздел, вы потеряете возможность загрузки в дистрибутив Linux. Создайте один раздел Ext4 объемом не менее 10 ГБ (я сделал 30 ГБ) для установки дистрибутива Linux, установите точку монтирования в slash /. Создайте один раздел NTFS (я сделал 150 ГБ) для ваших файлов личных данных. Оставьте нераспределенное пространство не менее 30 ГБ (я оставил 70 ГБ) для установки Windows 10.

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

  1. Установите Windows 10 Загрузите изображение Windows 10 ISO 3 + GB Создайте USB-накопитель Windows 10 из ISO (в Windows, например, с «ISO to USB»). Подключите этот USB-накопитель к компьютеру. Перезапустить компьютер. При загрузке нажмите Esc или F2 или F8 или F10 или F12 или Удалить, чтобы войти в меню загрузки. Выберите параметр: UEFI . этот USB-накопитель. Во время установки Windows выберите «Дополнительные задачи». Выберите нераспределенное пространство, нажмите «Создать», программа создаст несколько новых разделов. Выберите самый большой раздел, который только что был создан из нераспределенного пространства, и продолжите установку Windows 10.

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

  1. Только если вы создали резервную копию Windows 10 и не хотите его снова настраивать: Подключите USB-накопитель Clonezilla к компьютеру. Перезапустить компьютер. При загрузке нажмите Esc или F2 или F8 или F10 или F12 или Удалить, чтобы войти в меню загрузки. Выберите параметр: UEFI . этот USB-накопитель. Подключите USB-устройство от места восстановления резервной копии Windows 10 и продолжите.
Читайте также:  Установка плафонов номерного знака

Если у меня есть какие-то ошибки или что-то пропущено, дайте мне знать, и я улучшу decription.

источник

Не загружается Linux, чиним загрузчик GRUB

Alexander Wayne

Alexander Wayne

Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.

Что такое Grub

Grub (или GRand Unified Bootloader) — загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего — основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows, вам определенно понадобится помощь Grub.

Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно — узнаете далее.

От чего могут возникнуть проблемы

Одна из самых распространенных причин — это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК — вам непременно стоит знать правильную последовательность:

  • Сначала устанавливаем Windows
  • И только потом уже Linux

Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.

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

Восстановление Grub с помощью LiveCD/USB

Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.

Как создать LiveCD/USB

Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.

Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.

С помощью Rufus:

Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:

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

Находим загруженный образ через менеджер, после чего жмем «Старт».

С помощью Etcher:

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

Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:

Открываем таблицу разделов с помощью команды:

Примерно такая таблица будет выведена на экран:

По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.

С помощью следующей команды мы смонтируем этот раздел в /mnt:

Теперь, для записи grub в MBR, нужно ввести следующую команду:

Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.

Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:

Вот и все, восстановление закончено!

Восстановление с помощью chroot

Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.

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

В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.

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

Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.

Далее мы переходим в окружающую среду chroot с помощью команды:

И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:

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

Если все прошло успешно, выходим из chroot, используя команду:

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

В случае, если вы монтировали раздел /boot введите команду:

Теперь перезагружаем систему с помощью:

Можно также обновить меню Grub, используя команду:

Восстановление Grub в rescue mode

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

Читайте также:  Установка автозапуска старлайн б94

Само восстановление проходит таким образом: сначала мы подгружаем все модули, чтобы открыть доступ ко всей функциональной части Grub, после чего запуститься с нужного раздела. Надо понимать, что Grub состоит из двух частей:

Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).

Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:

Для начала вводим следующую команду:

В выводе будет что-то подобное:

В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.

В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела — (hd0,1). Используем следующую команду:

С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:

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

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

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

sdX — диск, на который должен быть установлен Grub.

Если операционная система расположена на разделе с файловой системой btrfs, то нам необходимо выполнить следующие команды:

Ну и теперь запустить GRUB:

Восстановление Grub с помощью утилиты Boot repair

С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.

Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:

  • Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
  • Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.

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

В утилите будет доступно два варианта на выбор:

Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.

Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.

Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.

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

Выводы

Вот мы и рассмотрели несколько вариантов исправления загрузчика Grub. Стоит сказать, что некоторые из них могут показаться сложными или даже невыполнимыми. Это не так, каждый из рассмотренных способов нашел подтверждение в виде сотен и тысяч актов исправления загрузчика Grub в опенсорсном сообществе. Кстати говоря, какой из способов выбрать — решать только вам, любой из них достаточно эффективен, чтобы попасть в этот материал.

Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить GRUB2 если Ubuntu не хочет загружаться. Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.

источник

Не устанавливается Ubuntu

Многие новые пользователи, которые хотят попробовать Linux и установить его основной системой на свой компьютер, сталкиваются с проблемами во время установки. Поскольку самый популярный дистрибутив — Ubuntu, то и рассматривать будем его.

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

Почему Ubuntu не устанавливается

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

  • Установочный образ не загружается;
  • Система загрузилась в Live режиме, но во время установки возникает ошибка;
  • Установщик выдал сообщение, что Ubuntu установлена успешно, но после перезагрузки меню запуска не появилось.

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

  • Неверные настройки загрузочного диска в BIOS;
  • Образ записан неправильно — если во время записи образа произошел какой-либо сбой, то не удивительно что он загружается;
  • Несовместимость драйвера — стандартный драйвер может быть несовместим с вашей видоекартой, такое иногда случается с картами NVIDIA;
  • Проблемы со старыми ноутбуками от Dell на этапе сканирования устройств PCMCIA;
  • Ошибки на этапе установщика ubiquity самые непонятные, обычно они вызваны несовместимостью оборудования;
  • Отсутствие загрузочного меню может означать что загрузчик Grub не был установлен или был установлен не на тот диск.
Читайте также:  Установка вкладок для зубов

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

Что делать если не устанавливается Ubuntu

1. Настройка BIOS

Первое, что необходимо проверить — это какое загрузочное устройство установлено для загрузки в BIOS, на вкладке «Boot». Там должна быть ваша флешка или DVD диск.

Второе, это режим загрузки, UEFI или BIOS. В принципе, образ должен успешно загружаться независимо от того какой способ вы используете, но если на этапе установки возникают какие-либо ошибки, то, возможно, лучше отключить UEFI и использовать Legasy BIOS, обычно, эта функция тоже находится на вкладке «Boot».

Следующий пункт, на который стоит обратить внимание в BIOS — это способ подключения жесткого диска — «SATA Mode», которую можно найти на вкладке «Main», сейчас по умолчанию используется значение «IDE», но если что-то не работает, можно попробовать изменить на «ACHI».

2. Целостность установочного диска

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

В Linux для подсчета контрольной суммы можно использовать утилиту md5sum:

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

Следующий момент — это проверка правильности записи диска. Для этого можно использовать встроенную в сам образ утилиту проверки. Если BIOS настроена правильно и образ записан, то после перезагрузки компьютера вы увидите такое меню:

Здесь нужно выбрать «Check installation media»:

Утилита проверит все поставляемые пакеты и если все будет хорошо, то выдаст сообщение:

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

3. Проблема с драйверами NV >

Свободный графический драйвер nouveau совместим с большинство карт NVIDIA, но в некоторых случаях с этим драйвером операционная система не запускается и вы будете видеть только черный или фиолетовый экран. Чтобы все-таки обойти проблему не устанавливается Ubuntu 16.04 или другая версия, нужно использовать опцию nomodeset. Для этого в меню загрузки образа нажмите кнопку F6:

Затем выберите в открывшемся списке «nomodeset» и нажмите «Enter». Система должна загрузиться нормально. Если проблема не была решена можно попробовать еще использовать параметр ядра fb=false. Только его нужно прописать вручную после нажатия F6.

4. Зависание на этапе настройки PCMCIA

Некоторые старые ноутбуки от Dell могут зависать на этапе выполнения сканирования PCMCIA устройств. Если вам не нужны устройства PCMCIA во время установки то вы можете отключить эту возможность с помощью параметра ядра:

После установки вы можете настроить PCMCIA так, чтобы сканирование не вызывало таких проблем.

5. Система установлена но нет загрузчика

Во-первых, убедитесь, что тот диск, на который вы устанавливали загрузчик выбран первым загрузочным диском в BIOS. Если вы установили загрузчик на /dev/sda, а первым указан /dev/sdb, то будет загружаться загрузчик из /dev/sdb, а до вашего загрузчика дело так и не дойдет.

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

И последнее, это когда во время установки возникла ошибка установки загрузчика. Система установлена, а не хватает только загрузчика. Тогда можно загрузиться с LiveCD и просто установить его как описано в статье восстановление Grub2. Сначала примонтируйте раздел диска, куда была установлена Ubuntu к папке /mnt, например, /dev/sda1:

Если раздел /boot был вынесен отдельно, то его тоже надо примонтировать. Затем надо примонтировать папки с виртуальными файловыми системами:

sudo mount —bind /dev /mnt/dev
sudo mount —bind /sys /mnt/sys
sudo mount —bind /proc /mnt/proc

Затем переключаемся в окружение chroot нового дистрибутива:

Затем осталось установить загрузчик:

И генерировать конфигурационный файл:

sudo grub-mkconfig -o /boot/grub/grub.cfg

После этого осталось перезагрузить компьютер и выбрать Ubuntu в меню Grub.

6. Ошибки во время установки

Большинство из таких ошибок вызваны проблемами с оборудованием и лучшее что вы можете сделать в этом случае — это отправить разработчикам отчет о неполадках, если они решат что проблема серьезная, то исправят ее и такая ошибка установки ubuntu больше не будет повторяться. Или же вы можете попытаться спросить совета на форуме, может кто-то из пользователей уже сумел найти решение этой проблеме.

В этом вопросе вам поможет отладочная информация, поскольку без дополнительных данных что-либо сказать сложно. Логи установки можно найти в папке /var/log/installer/ или вытащить из /var/log пока установка незавершена.

Выводы

В этой небольшой статье мы рассмотрели что делать если не устанавливается Ubuntu, теперь вы знаете почему могут возникнуть определенные виды ошибок и как их решить. Конечно, таких ошибок может быть намного больше, если вы знаете решения для других проблем — пишите в комментариях!

источник

Добавить комментарий