Ваш путеводитель по одной из самых популярных и влиятельных операционных систем в мире. От базовых команд и установки дистрибутивов до глубокого изучения ядра и сетевых технологий — здесь вы найдете статьи и руководства на самые разные темы, связанные с Linux. Независимо от вашего уровня подготовки, здесь найдется что-то интересное и полезное.
Одна из самых первых задач, которую надо сделать после установки нового жесткого диска или SSD накопителя в компьютер, это отформатировать его и создать на нём разделы, на которых будут размещены данные. Форматировать диск можно разными способами. Для этого существует несколько консольных утилит с разным уровнем сложности работы, такие как fdisk, cfdisk и parted, а также графические утилиты, например GParted и Gnome Диски.
Про каждую из консольных утилит на этом сайте уже есть отдельная статья. Поэтому в этой статье мы поговорим как выполняется форматирование диска в Linux с помощью графических инструментов. Читать далее Форматирование диска в Linux→
MySQL - это одна из самых популярных реляционных систем управления базами данных, которая используется для обеспечения большинства веб-сайтов в интернете. От скорости записи и получения данных из таблиц зависит скорость работы сайта, в целом, так как, если на один запрос будет уходить больше секунды, то это будет тормозить работу php, а в следствии скоро накопиться столько запросов, что сервер не сможет их обработать.
В сегодняшней статье мы поговорим о том, как выполняется оптимизация производительности mysql. Какие программы для этого лучше использовать и как это работает.
Скорость работы MySQL
Оптимизация без аналитики бессмысленна. Перед тем как переходить к оптимизации давайте посмотрим как работает база данных сейчас, есть ли запросы, которые выполняются очень медленно. Все настройки вашего сервиса mysql находятся в файле /etc/my.cnf. Чтобы включить отображение медленных запросов добавьте такие строки в my.cnf, в секцию [mysqld]:
Здесь первая строка включает запись лога медленных запросов, вторая указывает, что минимальное время запроса для внесения его в этот лог - две секунды. Еще можно включить в лог запросы, которые не используют индексы:
log-queries-not-using-indexes=1
Но это уже необязательно для проверки скорости и используется больше для отладки кода и правильности создания таблиц. Дальше перезапустите сервер баз данных и посмотрите лог:
systemctl restart mariadb
tail -f /var/log/mariadb/slow-queries.log
Мы можем видеть, что есть запросы, которые выполняются больше, чем 10 секунд. Это, например, запрос
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
Можно его выполнить отдельно, в консоли mysql:
Здесь тоже измеряется время, и мы видим результат - три секунды. Это очень много. И еще ничего, если такие запросы приходят редко, если ваш сайт постоянно под нагрузкой, то тремя секундами вы не отделаетесь, количество необработанных запросов будет расти, а скорость ответа увеличиваться до нескольких минут. Можно пойти двумя путями - оптимизировать код, убрать сложные запросы, или же нужна оптимизация mysql на сервере.
Оптимизация MySQL
Конфигурация MySQL достаточно сложная, но, к счастью, вам не нужно в нее сильно углубляться. Есть специальный скрипт под названием MySQLTunner, который анализирует работу MySQL и дает советы какие параметры нужно изменить и какие значения для них установить. Скрипт поддерживает большинство версий MariaDB, MySQL и Percona XtraDB. Нам понадобится загрузить три файла с помощью wget:
Первый из них - это сам скрипт, написанный на Perl, второй и третий - база данных простых паролей и уязвимостей. Они позволяют обнаружить проблемы с безопасностью. Дальше можно переходить к тестированию. Я использую сервер с настройками mysql по умолчанию, установленными панелью управления VestaCP.
perl ./mysqltuner.pl
Буквально за несколько минут скрипт выдаст полную статистику по работе MySQL. Количеству запросов, занимаемому объему памяти и эффективности работы буферов. Вы можете ознакомиться со всем этим, чтобы лучше понять в чем причина проблем. Проблемные места обозначены красными восклицательными знаками. Например, здесь мы видим, что размер буфера движка таблиц InnoDB (InnoDB buffer pool) намного меньше, чем должен быть для оптимальной работы:
Кроме того, в самом конце вывода утилита предоставит список рекомендаций как исправить ситуацию. Мы рассмотрим все сообщения утилиты из этого примера и почему нужно использовать именно их, а не другие.
Все параметры нужно добавлять в /etc/my.cnf. Еще раз замечу, что вы не копируете статью, а смотрите что вам выдала утилита. Начнем с query-cache.
Скрипт рекомендует отключить кэш запросов. Query Cache - это кэш вызовов SELECT. Когда базе данных отправляется запрос, она выполняет его и сохраняет сам запрос и результат в этом кэше. И все бы ничего, но при использовании его вместе с InnoDB при любом изменении совпадающих данных кэш будет перестраиваться, что влечет за собой потерю производительности. И чем больше объем кэша, тем больше потери. Кроме того при обновлении кэша могут возникать блокировки запросов. Таким образом, если данные часто пишутся в базу данных - его надежнее отключить.
tmp_table_size=16M
max_heap_table_size=16M
Оба параметра устанавливают размер памяти, которая используется для внутренних временных таблиц MySQL. Утилита рекомендует использовать объем больше 16 мегабайт, просто установите это ваше значение для обоих переменных, если у вас достаточно памяти, то можно выделить 32 или даже 64. Но важно чтобы оба значения совпадали, иначе будет использоваться минимальное.
thread_cache_size=16
Этот параметр отвечает за количество потоков, которые будут закэшированны. После того, как работа с подключением будет завершена, база данных не разорвет его, а закэширует, если количество кэшированных потоков не превышает ограничение. Утилита рекомендует больше четырех, например, 16.
skip-name-resolve=1
Указывает, что не нужно пытаться определить доменное имя для подключений извне. Ускоряет работу, так как не тратится время на DNS запросы.
innodb_buffer_pool_size=800M
Этот параметр определяет размер буфера InnoDB в оперативной памяти, от этого размера очень сильно зависит скорость выполнения запросов. Значение зависит от размера ваших таблиц и количества данных в них. Если памяти недостаточно, запросы будут обрабатываться дольше. У меня используется стандартный объем 128, а нужно больше 652.
innodb_log_file_size=200M
Размер файла лога innodb должен составлять 25% от размера буфера. В случае 800 мегабайт это будет 200М. Но тут есть одна проблема. Чтобы изменить размер лога нужно выполнить несколько действий. Поскольку мы изменили все нужные параметры перейдем к перезагрузке сервера. Для нашего лога нужно остановить сервис:
systemctl stop mariadb
Затем переместите файлы лога в /tmp:
mv /var/lib/mysql/ib_logfile[01] /tmp
И запустите сервис:
systemctl start mariadb
Когда размер лога меняется сервис видит поврежденный лог, выдает ошибку и не запускается. Поэтому сначала нужно удалить старый. После этого смотрите есть ли сообщения об ошибках:
systemctl status mariadb
Тестирование результата
Готово оптимизация базы данных mysql завершена, теперь тестируем тот же запрос через клиент mysql:
mysql
> USE база_данных; > SELECT option_name, option_value FROM wpfc_options WHERE autoload = 'yes';
Первый раз он выполняется долго, может даже дольше чем обычно, но все последующие разы буквально мгновенно. Результат с более 3 секунд до 0,15. А если брать статистику из slow-log, то от более 12. Если в выводе утилиты для вас были предложены и другие оптимизации, то их тоже стоит применить.
Выводы
Как видите, оптимизация mysql это достаточно просто благодаря такому скрипту, но, в то же время, такая операция может очень сильно помочь, особенно высоконагруженным проектам. Еще лучше ускорить работу может только оптимизация запросов mysql. Не забывайте время от времени проверять параметры, чтобы быть уверенным что все в порядке. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение лекция про производительность MySQL от Percona:
Apache - это один из самых популярных веб-серверов, которые используются для размещения сайтов. Наверное, он даже популярнее, чем Nginx, поскольку его намного проще настроить и есть поддержка изменения конфигурации для каждой отдельной папки с помощью файлов htaccess, причем сразу же, на лету. Но когда вы поменяли глобальные настройки Apache или изменили параметры PHP, Apache необходимо перезагрузить.
В этой небольшой статье мы рассмотрим какими способами выполняется перезапуск apache ubuntu и как это делать более правильно.
Если вы начинающий администратор или только перенесли свой проект на VPS и еще не со всем разобрались, то у вас может возникнуть вопрос как перезапустить Nginx. Это очень популярный веб-сервер, такой же популярный, как и Apache и достаточно часто используется для различных проектов.
Перезапуск веб-сервера может понадобиться после того, как вы изменили его настройки, добавили новый домен и так далее. В этой небольшой статье мы рассмотрим как выполняется перезагрузка Nginx на сервере.
Новичков в мире Linux часто запутывает многообразие дистрибутивов Linux. Часто им сложно понять что это такое и они теряются в их огромном количестве. Но на самом деле здесь все можно сгруппировать и представить в виде целостной картины чтобы было легче все понять и ориентироваться.
Мы уже говорили о том, что такое дистрибутив в отдельной статье. Фактически - это ядро Linux и набор различного программного обеспечения, то же самое будем подразумевать под операционной системой Linux. Некоторые операционные системы Linux используют ядро Linux неизменным, другие изменяют его для получения большей безопасности или реализации необходимых функций. Преимущества той или иной операционной системы на Linux зависят от набора программного обеспечения, которое в ней используется. В этой статье мы рассмотрим основные виды операционных систем Linux, которые сейчас существуют.
Большинство домашних сетей получают доступ к интернету через маршрутизаторы или модемы. Нам не так часто нужно менять настройки маршрутизатора, но временами возникает такая необходимость. Обычно эти настройки можно открыть, набрав локальный ip адрес маршрутизатора в строке браузера. Также иногда может понадобится узнать ip адрес роутера для других действий или тестирования работы сети.
К сожалению, нет одного стандартного адреса, который бы использовали все маршрутизаторы, очень часто используется 192.168.1.1, но это не является правилом и можно встретить любые адреса из диапазона локальных сетей. На самом деле есть множество способов как узнать ip роутера wifi, так и в обычной сети.
КАК УЗНАТЬ IP РОУТЕРА В LINUX?
Первое место, где стоит посмотреть независимо от вашей операционной системы — это документация для вашего роутера. Там точно есть инструкция по настройке и в ней указан адрес, на котором можно открыть веб-интерфейс.
ЛОКАЛЬНЫЙ АДРЕС РОУТЕРА
Далее, вы можете использовать утилиты просмотра информации о сети. Компьютер активно взаимодействует с роутером для передачи данных в сеть и мы можем посмотреть адрес шлюза, который и будет адресом роутера. Команда ip:
ip route show
Здесь в первой же строке будет отображен адрес шлюза, через который передается весь трафик по умолчанию, в моем случае тот же самый 192.168.1.1. Если вы не хотите использовать команду ip, можно посмотреть таблицу маршрутизации пакетов командой route:
route -n
Тут тоже первая запись будет означать адрес маршрутизатора. Еще один путь узнать ip маршрутизатора — посмотреть таблицу записей ARP:
arp -a
Здесь все еще проще, если компьютер взаимодействует только с роутером, то будет выведена одна запись — адрес роутера. Подобную информацию может выдать и утилита netstat:
netstat -r -n
ВНЕШНИЙ АДРЕС РОУТЕРА
Если вы счастливый обладатель белого IP адреса или даже серого, который на спрятан за NAT и вас интересует как узнать внешний ip роутера, то для этого тоже есть простая команда:
curl http://ipecho.net/plain
Еще можно открыть эту же страницу в браузере:
Или ifconfig.me:
curl ifconfig.me
КАК УЗНАТЬ IP АДРЕС РОУТЕРА В WINDOWS?
Самый простой способ узнать ip адрес роутера в Windows — использовать утилиту командной строки ipconfig. Кликните правой кнопкой по значку пуск, затем выберите «Командная строка»
В открывшемся окне наберите:
ipconfig
Адрес роутера будет отображен напротив «Основной адрес шлюза». Еще один способ узнать IP адрес роутера — это использовать стандартную утилиту настроек. Кликните по значку сетевые подключения, выберите «Открыть центр управления сетями и общим доступом»:
Кликните по сети, к которой вы подключены:
Затем нажмите кнопку сведения:
Здесь и будет отображен адрес шлюза среди прочей другой информации. Если вам нужен внешний адрес, вы можете открыть в браузере те же сайты, что и для Linux.
ВЫВОДЫ
В этой статье мы рассмотрели как узнать ip роутера в сети. Как видите, это совсем не сложно, и существует множество методов, из которых вы можете выбрать тот, который будет более удобным для вас. Если у вас остались вопросы, спрашивайте в комментариях!
Многие программы мы используем постоянно и запускаем их каждый раз при старте системы, а некоторые, такие, как мессенджеры или различные утилиты должны постоянно работать в фоне чтобы правильно выполнять свою задачу. Для этого в операционных системах существует автозагрузка. Программы запускаются автоматически, после того, как запустилась ОС или графическая оболочка.
В этой статье мы поговорим о том, как работает автозагрузка в Ubuntu, какие существуют способы автозагрузки в этой системе и как добавить туда программы.
АВТОЗАГРУЗКА В UBUNTU
Первым делом нужно сказать, что в Ubuntu существует несколько уровней автозагрузки. Я не буду говорить здесь про systemd и автозагрузку сервисов, так как уже рассматривал это в одной из первых статей. Программу или скрипт можно добавить в автозагрузку такими путями:
Утилита «Автоматически запускаемые приложения»;
Папка «Автозапуск»;
Файл rc.local;
Файл Xinitrc;
Мы рассмотрим первые два способа, поскольку два последние более рассчитаны на скрипты, а не программы. Сначала автозагрузка в Ubuntu с помощью стандартной утилиты.
Откройте меню системы и наберите «Авто» и откройте программу, которая будет первой в списке, Автоматически запускаемые приложения:
Здесь будут перечислены все приложения, которые сейчас запускаются автоматически. Чтобы добавить в автозагрузку ubuntu еще одно приложение, нажмите кнопку «Добавить»:
Здесь нужно ввести имя нового пункта, а также команду запуска приложения. Вы можете выбрать приложение в файловой системе, если не помните путь, нажав кнопку «Обзор»:
В команде можно указывать параметры, если это нужно. Еще можно заполнить поле «Описание», но это уже необязательно. Если вам нужна определенная программа из главного меню, но вы не знаете где ее найти и как пишется ее команда, можно посмотреть ее в том же меню. Но для этого нам нужно сначала установить утилиту «Главное меню» из центра приложений:
Дальше запустите утилиту и найдите в ней нужное приложение. Затем нажмите «Свойства»:
Здесь вам нужно обратить внимание на строку «Команда», скопируйте ее и можете использовать для автозагрузки.
Следующий способ — это папка автозагрузки. Она находится по адресу ~/.config/autostart. По сути, это тот же самый способ, только он может выполняться без графического интерфейса. Когда вы настраиваете автозагрузку через приложение, то в этой папке создаются файлы настроек с именем desktop. Вот, например:
Напоминаю, что для того, чтобы посмотреть скрытые файлы нужно нажать сочетание клавиш Ctrl+H. Теперь попытаемся создать новый конфигурационный файл для еще одной программы. Вот таким будет его синтаксис:
Для примера, сделаем файл для запуска плеера VLC, он будет выглядеть вот так:
vi ~/.config/autostart/vlc.desktop
[Desktop Entry]
Type=Application
Name=VLC
Exec=vlc
Icon=/usr/share/icons/hicolor/16x16/apps/vlc.png
Comment=VLC Media Player
X-GNOME-Autostart-enabled=true
Готово, и самое интересное, что если вы откроете приложение автозагрузки. То там тоже появится этот пункт. Это такой способ настройки без графического интерфейса.
ВЫВОДЫ
В этой небольшой статье мы рассмотрели как настраивается автозагрузка программ ubuntu различными способами — через графический интерфейс и терминал. Вы можете использовать эти знания, чтобы сделать работу в вашей системе более удобной. Даже несмотря на то, что Ubuntu перешла на Gnome, автозагрузка в ubuntu 16.04 и сейчас выглядят практически одинаково. Если у вас остались, вопросы, спрашивайте в комментариях!
PostgreSQL или Postgres — это объектно-реляционная система управления базами данных с открытым исходным кодом, которая активно разрабатывается уже более чем 15 лет. Сервер баз данных может использоваться для работы высоко нагруженных систем и решения сложных промышленных задач. PostgreSQL может использоваться в Linux, Unix, BSD и Windows.
Репликация баз данных методом Master-Salve — это процесс копирования (синхронизации) данных из базы данных на одном сервере (Master), в базу данных на другом сервере (Salve). В этой статье мы рассмотрим как настраивается репликация PostgreSQL в Ubuntu.
ПРЕИМУЩЕСТВА РЕПЛИКАЦИИ
Основное преимущество — распределение базы данных между несколькими машинами. Если с основным сервером что-то происходит и он перестает работать, то данные все еще доступны на резервном сервере и могут быть без труда получены или восстановлены. Работа проекта продолжится без каких-либо трудностей.
В PostgreSQL доступно несколько способов репликации базы данных в зависимости от цели репликации. Можно настраивать репликацию только для резервного копирования или для организации отказоустойчивого сервера баз данных. Мы будем использовать репликацию типа Master-Salve. Она более подходит для резервного копирования. Для реализации будет использоваться модуль standby.
УСТАНОВКА И НАСТРОЙКА POSTGRESQL
Мы уже подробно рассматривали как установить Postgresql в Ubuntu в одной из предыдущих статей. Но в этой статье повторим эти команды более кратко. Установить и выполнить первоначальную настройку сервера нужно на обоих машинах. Если вы используете последние версии Ubuntu — 17.04 или 17.10, то версия PostgreSQL 9.6 уже есть в официальных репозиториях. Для более старых систем можно использовать PPA:
По умолчанию PostgreSQL запускается на порту 5432. Вы можете убедиться, что этот порт имеет состояние LISTEN выполнив команду netstat:
netstat -plntu
После того как Postgresql запущен, нам нужно настроить пароль для пользователя Postgres. Но для этого вам нужно авторизоваться под этим пользователем в системе:
sudo su - postgres
Затем, войдите в консоль управления:
psql
Осталось выполнить такую команду, чтобы задать пароль:
\password postgres
Осталось разрешить общение компьютеров между собой по сети на порту 5432 в брандмауэре:
Напоминаю, что эти действия нужно проделать на обоих машинах.
НАСТОЙКА РЕПЛИКАЦИИ POSTGRESQL
Сначала настроем мастер-сервер. Это основной сервер, который будет выполнять основные действия записи и рассылать данные на сервера Salve. Приложения могут не только читать, но и записывать данные взаимодействуя с этим сервером. Для его настройки нам нужно изменить содержимое файла postgresql.conf в папке /etc/postgresql/9.6/main/:
Сначала расскоментируйте строчку listen_address и пропишите в ней ip адрес вашего сервера. Порт должен быть 5433 иначе не заработает:
listen_address = '192.168.56.101' port=5433
Расскоментируйте строчку wal_level и установите значение standby, она отвечает за способ репликации:
wal_level = hot_standby
Мы будем использовать локальную синхронизацию:
synchronous_commit = local
Включите режим архивирования и укажите команду для создания архива:
archive_mode = on archive_command = 'cp %p /var/lib/postgresql/9.6/archive/%f'
Теперь настроем куда именно будет выполняться синхронизация. В нашей инструкции мы будем использовать только два сервера — Master и Salve. Поэтому в строке max_wal_senders поставьте значение 2:
max_wal_senders = 2 wal_keep_segments = 10
Установите имя нашего сервера синхронизации:
synchronous_standby_names = 'pgslave01'
Теперь конфигурационный файл можно закрыть. Поскольку мы включили режим архивирования, нужно создать папку для архивов и отдать ее пользователю postgres:
Дальше нам нужно отредактировать файл pg_hba.conf, он отвечает за аутентификацию пользователей. Здесь нужно прописать каждый сервер, базу данных, адрес и метод аутентификации. Синтаксис файла такой:
Дальше нам нужно создать нового пользователя, у которого будут права на репликацию. Назовите его replica:
su - postgres createuser --replication -P replica
После всех этих действий настройка репликации postgresql на сервере Master завершена и он готов к работе. Дальше настроем сервер Salve. Тут все проще. Мы собираемся заменить директорию data этого сервера, на эту же директорию из сервера master и поддерживать их синхронизацию. Сначала остановите службу:
systemctl stop postgresql-9.6
Затем сделайте резервную копию текущей директории, если там есть важные данные и вы боитесь их потерять. Удалите текущую папку с данными:
sudo rm /var/lib/postgresql/9.6/main
Затем авторизуйтесь от имени пользователя postgres и скопируйте все данные из сервера Master:
Эти настройки нужны для восстановления базы данных в случае возникновения проблем. Осталось запустить службу postgresql на другой машине:
systemctl start postgresql-9.6
Дальше осталось только протестировать как работает потоковая репликация postgresql.
ТЕСТИРОВАНИЕ РЕПЛИКАЦИИ
Чтобы посмотреть как работает репликация вы можете проверить состояния потока репликации, а также просто проверить передаются ли данные от Master на Salve. Сначала посмотрим параметры соединения:
su - postgres
psql -c "select application_name, state, sync_priority, sync_state from pg_stat_replication;" psql -x -c "select * from pg_stat_replication;"
Затем авторизуйтесь на сервере Master и войдите в консоль управления:
sudo su postgres psql
Создайте новую таблицу replica_test и вставьте в нее некоторые данные:
CREATE TABLE replica_test (test varchar(100)); INSERT INTO replica_test VALUES ('kovalets.net'); INSERT INTO replica_test VALUES ('This is from Master');
Затем перейдите на сервер Salve и проверьте действительно есть ли там эта табилца:
su - postgres
select * from replica_test;
Дальше вы можете попытаться выполнить запись на сервере Salve:
INSERT INTO replica_test VALUES ('this is SLAVE');
Но получите ошибку, так как из этого сервера можно только читать данные.
ВЫВОДЫ
В этой статье мы рассмотрели как работает репликация PostgreSQL типа Master — Salve. Как видите, все это немного сложнее, чем репликация MySQL, но тоже можно быстро разобраться и настроить. Если у вас остались вопросы, спрашивайте в комментариях!
Ошибка 400 Request Header Or Cookie Too Large в веб-сервере Nginx встречается достаточно редко. Данная ошибка означает, что отправленный запрос к веб-серверу слишком большой и был отклонен. Это может происходить по разным причинам.
Например, такое бывает, когда идет переход к веб-сайту из поисковой системы, и какой-то заголовок оказался слишком длинным. В этом случае Nginx «не ожидал» такого большого объёма в заголовке и сбросил соединение. В этой статье будет рассмотрено описание данной ошибки и как ее можно исправить. Читать далее Ошибка request header or cookie too large Nginx→
Grub - это универсальный загрузчик, который используется для загрузки операционной системы Linux и других ОС, в случае, если на компьютере установлен Linux. Но когда вы выполняете какие-либо действия с разделами на диске, например, восстанавливаете их с помощью Clonezilla, изменяете размер или что-то другое, что Grub может быть поврежден.
Часто такие повреждения приводят к ошибке grub rescue unknown filesystem. Тогда перед вами не появляется меню, а только сообщение про ошибку и консоль восстановления для ввода команд. В этой небольшой статье мы рассмотрим как исправить эту ошибку.
Ошибка grub rescue unknown filesystem
Ошибка grub rescue unknown filesystem может возникать по разным причинам вот самые распространенные причины:
Вы восстанавливали диск из Clonezilla и были изменены метрики раздела /boot;
Раздел /boot был отформатирован и больше не существует;
Дело в том, что Grub устанавливается в два места. Первое - место в таблице разделов MBR. Там очень мало места, около 512 байт, а следовательно, весь загрузчик туда поместиться не может. Поэтому Grub имеет модульную структуру и все основные модули, конфигурационные файлы и ресурсы располагаются на обычном разделе, который монтируется после загрузки в /boot. Причем программа в MBR помнит где находится раздел /boot, но если с этим разделом что-то произойдет и программа не сможет загрузить привычные модули, то выдаст ошибку unknown filesystem. Если раздела больше нет, то вам останется только брать LiveCD диск и переустанавливать загрузчик, если же раздел просто немного изменен, то еще можно все исправить.
Как исправить Grub unknown error
У вас есть простейший терминал с самой простой командной оболочкой. Чтобы знать какие команды можно там вводить наберите:
help
Дальше нам нужно посмотреть список доступных разделов, для этого используется команда ls, как в bash:
ls
Без модулей grub поддерживает только ту файловую систему, которая была на /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей. Например:
ls (hd0,1)/
Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:
set root=(hd0,1) set prefix=(hd0,1)/boot/grub
Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:
insmod normal normal
Если раздел /boot не был поврежден, то загрузчик нормально определит все файлы, а потом запустит привычное для вас меню. Конечно, после того, как система загрузится, вам будет необходимо восстановить загрузчик Grub чтобы не вводить эти команды при каждой загрузке системы.
Выводы
В этой статье мы рассмотрели почему возникает ошибка error unknown filesystem grub rescue и что делать grub rescue, когда вы видите это сообщение. Да, во многих случаях у вас уже не получится загрузить систему без LiveCD диска. Но иногда все можно спасти. Надеюсь, эта информация была полезной для вас.