Журнал ядра сообщает об ошибках оборудования fedora


0

1

Добрый день. была установлена федора 26 (вместе с виндой) все работало примерно сутки. каждый раз при загрузке системы выдавалась ошибка такого формата (The kernel log indicates that hardware errors were detected.
This is most likely not a software problem. и что то вроде — BOOT_IMAGE=/vmlinuz-4.16.3-301.fc28.x86_64). было написано, что все исправлено и все ок. и так каждый раз при загрузке. Через сутки система начала периодически виснуть намертво. Установил 28ю. система зависла намертво сразу после установки а после перезагрузки эта же самая ошибка начала вылетать каждую секунду. На убунту и на минте таких проблем не было. в чем может быть проблема ? винда тоже работает стабильно.
Система ноут Acer i3 4 гига опаративы две видео карты (встроеная интел и нвидиа)

Системное администрирование¶

Как однократно передать параметр ядра?¶

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

В меню загрузчика Grub 2 выберем нужную загрузочную опцию и нажмем клавишу E на клавиатуре для перехода в режим редактирвоания.

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

Для начала загрузки нажмем сочетание Ctrl + X на клавиатуре.

Как мне задать параметр ядра для постоянного использования?¶

Для современных конфигураций с BLS воспользуемся утилитой grubby:

sudo grubby --update-kernel=ALL --args="foo=bar"

Здесь вместо foo=bar укажем необходимый параметр ядра.

Изменения вступят в силу при следующей загрузке системы.

Как убрать ненужный более параметр ядра?¶

Для современных конфигураций с BLS воспользуемся утилитой grubby:

sudo grubby --update-kernel=ALL --remove-args="foo=bar"

Здесь вместо foo=bar укажем необходимый параметр ядра.

Изменения вступят в силу при следующей загрузке системы.

Как мне задать параметр ядра на устаревшей конфигурации?¶

На устаревших конфигурациях, не использующих BLS, откроем файл с шаблонами загрузчика /etc/default/grub в любом текстовом редакторе:

sudoedit /etc/default/grub

Найдём в нём переменную GRUB_CMDLINE_LINUX, внесём соответствующие правки и сохраним изменения.

Пересоберём конфиг Grub 2 посредством grub2-mkconfig.

Изменения вступят в силу при следующей загрузке системы.

Как определить какие параметры ядра заданы в настоящее время?¶

Для получения информации о текущих параметрах ядра достаточно выполнить:

Как определить какие модули ядра в настоящее время загружены?¶

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

При помощи lspci выведем список используемых модулей конкретными устройствами:

Как узнать какие опциональные параметры поддерживает конкретный модуль ядра?¶

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

Здесь foo-bar – имя модуля, информацию о котором требуется вывести.

Как определить список загружаемых ОС в меню UEFI Boot из Fedora?¶

Выведем текущий список загрузки UEFI Boot при помощи утилиты efibootmgr:

Возможно ли изменить порядок загрузки в UEFI Boot из Fedora?¶

Выведем текущий список загрузки UEFI Boot.

Изменим порядок по своему усмотрению:

sudo efibootmgr -o 0000,0002,0003,0001

Здесь 0000 и прочие – результат предыдущего вывода утилиты. Ведущие нули указывать не обязательно.

Изменения вступают в силу немедленно.

Как добавить новый пункт меню UEFI Boot из Fedora?¶

В качестве примера добавим строку запуска Fedora (если она по какой-либо причине стала отсутствовать):

sudo efibootmgr -c -L "Fedora" -l "\EFI\fedora\shimx64.efi"

Изменения вступают в силу немедленно.

Как удалить ненужный пункт меню UEFI Boot из Fedora?¶

Выведем текущий список загрузки UEFI Boot.

Удалим пункт 0002:

sudo efibootmgr -b 0002 -B

Ведущие нули указывать не обязательно. Изменения вступают в силу немедленно.

Как мне посмотреть текущий журнал работы системы?¶

Чтобы посмотреть журнал работы системы с момента загрузки, нужно выполнить:

Чтобы посмотреть только журнал работы ядра (аналог dmesg):

Как мне посмотреть журналы с прошлых загрузок?¶

Вывести список всех загрузок:

Вывести содержимое журнала загрузки с идентификатором X:

Как мне выгрузить журнал в файл?¶

Необходимо перенаправить поток стандартного вывода в файл:

journalctl -b > ~/abc.txt

Также можно воспользоваться утилитой fpaste для автоматической загрузки файла на сервис fpaste.org:

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

Как сделать chroot в установленную систему с LiveUSB?¶

Загружаемся с Fedora LiveUSB и запускаем эмулятор терминала или переходим в виртуальную консоль (особой разницы не имеет).

Для начала создадим каталог для точки монтирования:

Смонтируем корневой раздел установленной ОС:

sudo mount -t ext4 /dev/sda3 /media/fedora

Здесь /dev/sda3 – раздел, на котором установлена ОС, а ext4 – его файловая система. Внесём соответствующие правки если это не так.

Переходим в каталог с корневой ФС и монтируем ряд необходимых для работы окружения виртуальных ФС:

cd /media/fedora
sudo mount -t proc /proc proc
sudo mount --rbind /sys sys
sudo mount --make-rslave sys
sudo mount --rbind /dev dev
sudo mount --make-rslave dev
sudo mount -t tmpfs tmpfs tmp

При необходимости смонтируем /boot и /boot/efi разделы:

sudo mount -t ext4 /dev/sda2 boot
sudo mount -t vfat /dev/sda1 boot/efi

Теперь осуществим вход в chroot:

sudo chroot /media/fedora

Если для выполнения действий требуется доступ к Интернету, настроим корректное преобразование DNS.

По окончании работы завершим работу chroot-окружения:

Отмонтируем раздел:

sudo umount /media/fedora

Как настроить ИБП (UPS) в Fedora?¶

См. здесь.

Системные журналы занимают слишком много места. Как их ограничить?¶

См. здесь.

Как немедленно очистить все системные журналы?¶

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

Очистим все записи с диска, старше 1 секунды:

sudo journalctl --vacuum-time=1s

Что такое systemd и как с ним работать?¶

См. здесь.

Как очистить кэши и буферы всех файловых систем?¶

Чтобы очистить кэши и буферы нужно выполнить:

sudo bash -c "sync && echo 3 > /proc/sys/vm/drop_caches && sync"

Как перевести системные часы в UTC или localtime и наоборот?¶

Localtime – это хранение в UEFI BIOS компьютера времени с учётом установленного в системе часового пояса. При определённых условиях это может вызывать проблемы с синхронизацией времени, а также работой нескольких операционных систем на одном компьютере.

UTC – это хранение в UEFI BIOS компьютера всемирного координированного времени по Гринвичу без учёта часовых поясов. Часовыми поясами управляет операционная система, что позволяет каждому пользователю в системе, а также приложениям использовать индивидуальные настройки.

Переключение аппаратных часов компьютера в UTC из localtime:

sudo timedatectl set-local-rtc no

Переключение аппаратных часов компьютера в localtime из UTC:

sudo timedatectl set-local-rtc yes

У меня в дуалбуте с Fedora установлена Windows и часы постоянно сбиваются. В чём дело?¶

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

У меня в системе используется GDM, но я хочу заменить его на SDDM. Это возможно?¶

Установка SDDM:

Отключение GDM и активация SDDM:

sudo systemctl -f enable sddm

Изменения вступят в силу при следующей загрузке системы.

Как мне выбрать версию Java по умолчанию?¶

Для выбора дефолтной версии Java следует использовать систему альтернатив:

sudo update-alternatives --config java

Как изменить имя хоста?¶

Изменение имени хоста возможно посредством hostnamectl:

hostnamectl set-hostname NEW

Здесь вместо NEW следует указать новое значение. Изменения вступят в силу немедленно.

Как мне проверить ФС в составе LVM с LiveUSB?¶

Если файловая система была повреждена, необходимо запустить fsck и разрешить ему исправить её. При использовании настроек по умолчанию (LVM, ФС ext4) это делается так:

sudo fsck -t ext4 /dev/mapper/fedora-root
sudo fsck -t ext4 /dev/mapper/fedora-home

Если вместо ext4 применяется другая файловая система, необходимо указать её после параметра -t.

Как мне проверить ФС при использовании классических разделов с LiveUSB?¶

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

sudo fsck -t ext4 /dev/sda2
sudo fsck -t ext4 /dev/sda3

Если вместо ext4 применяется другая файловая система, необходимо указать её после параметра -t. Также вместо /dev/sda2 следует прописать соответствующее блочное устройство с повреждённой ФС.

Полный список доступных устройств хранения данных можно получить:

Как мне проверить ФС на зашифрованном LUKS разделе с LiveUSB?¶

Если используются зашифрованные LUKS разделы, то сначала откроем соответствующее устройство:

sudo cryptsetup luksOpen /dev/sda2 luks-root

Здесь вместо /dev/sda2 следует прописать соответствующее блочное устройство зашифрованного накопителя.

Теперь запустим проверку файловой системы:

sudo fsck -t ext4 /dev/mapper/luks-root

Если вместо ext4 применяется другая файловая система, необходимо указать её после параметра -t.

По окончании обязательно отключим LUKS том:

sudo cryptsetup luksClose /dev/mapper/luks-root

Как восстановить данные с повреждённого раздела с BTRFS?¶

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

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

Здесь /dev/sda2 – блочное устройство раздела, данные с которого мы будем пытаться восстановить, а /media/btrfs – временная точка для его монтирования.

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

Более подробную информацию можно найти в openSUSE Support Database (на английском языке).

Безопасные способы восстановления¶

Попытаемся смонтировать повреждённый раздел:

sudo mkdir /media/btrfs
sudo mount /dev/sda2 /media/btrfs

Если монтирование прошло успешно, выполним операцию scrub (проверка контрольных сумм для всех данных с попыткой восстановления) на точке монтирования:

sudo btrfs scrub start /media/btrfs
sudo btrfs scrub status /media/btrfs

Если монтирование осуществить не удалось, сделаем то же самое на блочном устройстве:

sudo btrfs scrub start /dev/sda2
sudo btrfs scrub status /dev/sda2

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

sudo mount -o usebackuproot /dev/sda2 /media/btrfs

Небезопасные способы восстановления¶

Сначала выполним проверку раздела:

sudo btrfs check /dev/sda2

Сделаем копию сохранившихся данных с раздела на другой накопитель (например на USB-flash, смонтированный как /media/external):

sudo btrfs restore /dev/sda2 /media/external

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

sudo mount /dev/sda2 /media/btrfs

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

sudo btrfs rescue super-recover /dev/sda2

Выполним очистку журнала транзакций:

sudo btrfs rescue zero-log /dev/sda2

Запустим восстановление блоков данных (процесс займёт очень много времени и прерывать его нельзя):

sudo btrfs rescue chunk-recover /dev/sda2

Деструктивные способы восстановления¶

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

sudo btrfs restore /dev/sda2 /media/external

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

sudo btrfs check --repair /dev/sda2

Попытаемся повторно смонтировать раздел:

sudo mount /dev/sda2 /media/btrfs

Возможна ли полная дедупликация оперативной памяти?¶

Да, дедупликация памяти поддерживается в ядре Linux начиная с версии 2.6.32 модулем KSM и по умолчанию применяется лишь в системах виртуализации, например в KVM.

Возможна ли полная дедупликация данных на дисках?¶

Полная автоматическая дедупликация данных на дисках поддерживается лишь файловой системой BTRFS.

Можно ли включить сжатие оперативной памяти?¶

Да, в ядро Linux, начиная с версии 3.14, по умолчанию входит модуль zram, который позволяет увеличить производительность системы посредством использования вместо дисковой подкачки виртуального устройства в оперативной памяти с активным сжатием.

Начиная с Fedora 33, по умолчанию включено сжатие памяти с пулом 50% от объёма RAM. Допускается изменять его размер в широких пределах.

Активируем zram в Fedora:

sudo dnf install zram-generator zram-generator-defaults

Перезагрузим систему для вступления изменений в силу:

Как временно изменить параметр ядра при помощи sysctl?¶

Временно установить любой параметр ядра возможно через sysctl:

Здесь foo.bar имя параметра, а X – его значение. Изменения вступят в силу немедленно и сохранятся до перезагрузки системы.

Как задать и сохранить параметр ядра при помощи sysctl?¶

Чтобы сохранить параметр ядра, создадим специальный файл 99-foobar.conf в каталоге /etc/sysctl.d:

Каждый параметр должен быть указан с новой строки. Здесь foo.bar имя параметра, а X – его значение.

Для вступления изменений в силу требуется перезагрузка:

В каком порядке загружаются sysctl файлы настроек?¶

При загрузке ядро проверяет следующие каталоги в поисках .conf файлов:

  1. /usr/lib/sysctl.d – предустановленные конфиги системы и определённых пакетов;

  2. /run/sysctl.d – различные конфиги, сгенерированные в рантайме;

  3. /etc/sysctl.d – пользовательские конфиги.

Порядок выполнения – в алфавитном порядке, поэтому для его изменения многие конфиги содержат цифры и буквы. Например конфиг 00-foobar.conf выполнится раньше, чем zz-foobar.conf.

Как переключить запуск системы в текстовый режим и обратно?¶

Чтобы активировать запуск Fedora в текстовом режиме, нужно переключиться на цель multi-user.target:

sudo systemctl set-default multi-user.target

Чтобы активировать запуск в графическом режиме, необходимо убедиться в том, что установлен какой-либо менеджер графического входа в систему (GDM, SDDM, LightDM и т.д.), а затем переключиться на цель graphical.target:

sudo systemctl set-default graphical.target

Определить используемый в настоящее время режим можно так:

Изменения вступят в силу лишь после перезапуска системы:

Создадим файл подкачки на 4 ГБ:

sudo dd if=/dev/zero of=/media/pagefile count=4096 bs=1M

Установим правильный chmod:

sudo chmod 600 /media/pagefile

Подготовим swapfs к работе:

sudo mkswap /media/pagefile

Активируем файл подкачки:

sudo swapon /media/pagefile

Для того, чтобы подкачка подключалась автоматически при загрузке системы, откроем файл /etc/fstab и добавим в него следующую строку:

/media/pagefile    none    swap    sw    0    0

Действия вступят в силу немедленно.

Как узнать, какой процесс осуществляет запись на диск?¶

Для мониторинга дисковой активности существуют улититы iotop и fatrace. Установим их:

sudo dnf install iotop fatrace

Запустим iotop в режиме накопления показаний:

Запустим fatrace в режиме накопления с выводом лишь информации о событиях записи на диск:

Запустим fatrace в режиме накопления, с выводом информации о событиях записи на диск в файл, в течение 10 минут (600 секунд):

sudo fatrace -f W -o ~/disk-usage.log -s 600

Как сменить метку раздела?¶

Смена метки раздела с файловой системой ext2, ext3 и ext4:

sudo e2label /dev/sda1 "NewLabel"

Смена метки раздела с файловой системой XFS:

sudo xfs_admin -L "NewLabel" /dev/sda1

Здесь /dev/sda1 – раздел, на котором требуется изменить метку.

Как получить UUID всех смонтированных разделов?¶

Для получения всех UUID можно использовать утилиту blkid:

Вывод UUID для указанного раздела:

Здесь /dev/sda1 – раздел, для которого требуется вывести UUID.

Как изменить UUID раздела?¶

Смена UUID раздела с файловой системой ext2, ext3 и ext4:

sudo tune2fs /dev/sda1 -U $(uuidgen)

Смена UUID раздела с файловой системой XFS:

sudo xfs_admin -U generate /dev/sda1

Здесь /dev/sda1 – раздел, на котором требуется изменить UUID.

Как получить PID запущенного процесса?¶

Для получения идентификатора запущенного процесса (PID), следует применять утилиту pidof:

Здесь вместо foo-bar следует указать имя образа процесса, информацию о котором требуется получить.

Как правильно завершить работу процесса?¶

Для того, чтобы завершить работу процесса, необходимо отправить ему сигнал SIGTERM. После получения данного сигнала процесс должен немедленно начать завершение своей работы:

  • остановить активные потоки;

  • сообщить порождённым им процессам (потомкам) о том, что он завершает свою работу;

  • закрыть все открытые процессом дескрипторы;

  • освободить все занятые процессом ресурсы;

  • вернуть управление операционной системе.

Чтобы отправить сигнал SIGTERM процессу с определённым PID, воспользуемся утилитой kill:

Здесь XXXX – PID нужного процесса.

Вместо явного указания PID процесса существует возможность завершить работу процесса с указанным именем посредством killall:

Здесь вместо foo-bar следует указать имя образа процесса, который требуется завершить, однако её следует применять с особой осторожностью ибо если существует несколько процессов с одинаковым названием, все они будут завершены.

Как принудительно завершить работу процесса?¶

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

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

Чтобы отправить сигнал SIGKILL процессу с определённым PID, воспользуемся утилитой kill:

Здесь XXXX – PID нужного процесса.

Вместо явного указания PID процесса существует возможность завершить работу процесса с указанным именем посредством killall:

Здесь вместо foo-bar следует указать имя образа процесса. Если существует несколько процессов с одинаковым названием, все они будут завершены.

Что такое процесс-зомби?¶

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

Такие процессы не занимают ресурсов в системе (ибо успешно завершили свою работу), за исключением строки в таблице процессов, хранящей его PID.

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

Что такое процесс-сирота?¶

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

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

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

Как правильно установить Docker в Fedora?¶

Официально Docker в Fedora более не поддерживается. На просторах Интернета можно найти сторонние инструкции по установке Docker, однако мы настоятельно не рекомендуем следовать им, поскольку для их работы требуются изменения в системе, способные нарушить её безопасность и/или работу других приложений (например отключение cgroupv2).

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

Синтаксис команд аналогичен Docker.

Как определить включена ли определённая опция ядра во время компиляции?¶

Полный список опций, заданных на этапе компиляции ядра, всегда можно найти в config-файлах, внутри каталога /boot.

В качестве примера проверим статус опции CONFIG_EFI_STUB текущего ядра:

grep CONFIG_EFI_STUB /boot/config-$(uname -r)

В выводе y означает, что опция была включена, а not set, соответственно, выключена.

Процесс ksoftirqd съедает все ресурсы системы. Что делать?¶

Ядро операционной системы взаимодействует с устройствами посредством прерываний. Когда возникает новое прерывание, оно немедленно приостанавливает работу текущего выполняемого процесса, переключается в режим ядра и начинает его обработку.

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

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

Как определить какое устройство генерирует огромное количество прерываний?¶

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

Числа в таблице означают точное количество прерываний, инициированных соответствующим устройством или подсистемой, с момента загрузки.

Как произвести ручную балансировку прерываний?¶

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

sudo bash -c "echo X > /proc/irq/Y/smp_affinity"

Здесь X – маска процессора (CPU affinity), который будет обрабатывать данное прерывание, а Y – номер прерывания (указан в левом столбце таблицы прерываний).

Чтобы вычислить маску следует возвести число 2 в степень, равную порядкому номеру процессора, и результат перевести в шестнадцатиричную систему счисления.

При работе приложения возникает ошибка Too many open files. Что делать?¶

Ошибка Too many open files возникает при превышении количества открытых дескрипторов файлов процессом. Для её исправления, нужно увеличить это ограничение.

Как узнать текущий лимит открытых файловых дескрипторов?¶

Существует два типа ограничений: мягкий (soft) и жёсткий (hard). Жёсткий задаётся администратором системы, а мягкий может регулироваться как пользователем, так и запущенным приложением, но не может превышать максимально заданное значение жёсткого лимита, а также глобальное для всего ядра.

Получим значение мягкого ограничителя:

Получим значение жёсткого ограничителя:

Значения по умолчанию 1024 (soft) и 4096 (hard).

Как узнать глобальный лимит открытых файловых дескрипторов?¶

Наряду с мягким и жёстким лимитами открытых файловых дескрипторов существует и глобальный, который ядро Linux способно адресовать и корректно обработать.

Выведем это значение при помощи соответствующей функции ядра:

cat /proc/sys/fs/file-max

Как увеличить лимит открытых файловых дескрипторов?¶

Мягкие и жёсткие лимиты на количество дескрипторов открытых файлов задаются в файле /etc/security/limits.conf суперпользователем, но при этом не могут превышать глобальный.

Увеличим ограничение для пользователя foo-bar до 8192/2048:

foo-bar       soft    nofile          2048
foo-bar       hard    nofile          8192

Увеличим ограничение для любых пользователей до 8192/2048:

*       soft    nofile          2048
*       hard    nofile          8192

Изменения вступят в силу при следующем входе в систему.

Как запустить процесс так, чтобы он мог использовать лишь определённые ядра процессора?¶

По умолчанию процесс выполняется на любых доступных для Linux процессорах (или их ядрах).

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

Запустим приложение foo-bar на каждом чётном ядре (нумерация всегда начинается с нуля):

taskset -a -c 0,2,4,6 foo-bar

Изменим ассоциацию ядер для уже запущенного процесса foo-bar (в качестве параметра указывается PID необходимого процесса):

taskset -a -c 1,3,5,7 -p $(pidof foo-bar)

Как изменить приоритет процесса?¶

Допустимые значения приоритета находятся в диапазоне от -20 (наиболее высокий приоритет) до 19 (наиболее низкий). Отрицательные значения может устанавливать лишь суперпользователь.

Запустим приложение foo-bar с приоритетом 10:

Изменим приоритет запущенного процесса foo-bar (в качестве параметра указывается PID необходимого процесса) до 8:

renice -n 8 -p $(pidof foo-bar)

Чем отличается Effective UID процесса от Real UID?¶

В мире UNIX считается нормальным, когда один процесс запускается от одного пользователя, но при этом получает права совсем другого (чаще всего это суперпользователь root).

В качестве простого примера рассмтрим ситуацию, когда пользователь user1 запускает бинарник с установленным suid-битом /usr/bin/foo-bar. Таким образом, у процесса foo-bar в качестве Real user ID будет установлен user1, а Effective user IDroot. Это сделано для того, чтобы приложение могло самостоятельно отказаться от повышенных прав, либо переключаться между ними при помощи соответствующего системного вызова.

Как скопировать данные с одного раздела на другой?¶

Для копирования файлов с одного раздела на другой лучше всего использовать утилиту rsync с опциями на сохранение прав доступа.

Загрузимся с Fedora LiveUSB, затем смонтируем старый и новый разделы:

sudo mkdir /media/old-root
sudo mount -t ext4 /dev/sda1 /media/old-root
sudo mkdir /media/new-root
sudo mount -t ext4 /dev/sdb1 /media/new-root

Запустим процесс копирования:

sudo rsync -axHAWXS --numeric-ids --info=progress2 /media/old-root/ /media/new-root/

По окончании работы обязательно размонтируем оба раздела:

sudo umount /media/old-root
sudo umount /media/new-root

Как запретить модификацию файла даже владельцу и суперпользователю?¶

Чтобы запретить модификацию файла (изменение, удаление) любым пользователем (включая владельца и суперпользователя), установим ему расширенный атрибут +i:

sudo chattr +i foo-bar.txt

Чтобы отменить произведённые изменения, выполним:

sudo chattr -i foo-bar.txt

Управлять расширенными атрибутами может лишь суперпользователь.

Как узнать какие расширенные атрибуты применены для конкретного файла?¶

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

Поддерживается также вывод в виде человеко-читаемого списка, который можно включить опциональным параметром -l:

Как разрешить лишь дописывать данные в файл?¶

Чтобы разрешить лишь добавление данных в файл любым пользователем (включая владельца и суперпользователя), установим ему расширенный атрибут +a:

sudo chattr +a foo-bar.txt

Чтобы отменить произведённые изменения, выполним:

sudo chattr -a foo-bar.txt

Как создать алиасы для быстрого подключения к SSH серверам?¶

OpenSSH позволяет создавать неограниченное количество алиасов для быстрых подключений.

Чтобы сделать это, откроем (создадим) файл ~/.ssh/config в любом текстовом редакторе и внесём правки:

Host foo
    HostName example1.org
    Port 22
    User user1

Host bar
    HostName example2.org
    Port 22
    User user2
    IdentityFile ~/.ssh/id_rsa2

Здесь foo и bar – имена сокращений (алиасов), которые будут использоваться для подключения. Для каждого могут быть указаны индивидуальные настройки, включая различные SSH ключи при помощи директивы IdentityFile.

Подключимся к первому серверу:

Подключимся ко второму серверу:

Что такое FUSE?¶

FUSE (file system in userspace) – это модуль ядра и набор утилит для работы с ним, предназначенные для запуска различных файловых систем в пользовательском пространстве.

Благодаря FUSE в Fedora могут использоваться файловые системы, которые по какой-либо причине не могут войти напрямую в состав ядра Linux из-за лицензионных проблем, либо патентов.

Некоторые примеры подобных реализаций:

  • MTP;

  • NTFS;

  • ZFS;

  • SSHFS;

  • WebDAV.

Из-за работы в пользовательском режиме возникает ряд проблем:

  • очень медленная работа за счёт постоянных переключений контекста;

  • в зависимости от параметров монтирования может быть не видна для работающих системных сервисов.

Как авторизоваться на удалённой системе с использованием Kerberos?¶

Установим необходимые пакеты для работы с Kerberos 5:

sudo dnf install krb5-workstation

Произведём авторизацию на удалённой системе:

kinit foo-bar@FEDORAPROJECT.ORG

Здесь foo-bar – логин на удалённой системе, а FEDORAPROJECT.ORG – имя домена (должно быть указано строго в верхнем регистре).

В случае ввода верных авторизационных данных процесс должен пройти в штатном режиме.

Как обновить Kerberos-тикет?¶

В зависимости от настроек сервера, полученный Kerberos-тикет обычно действует в течение 24 часов, затем даётся ещё от 24 до 48 часов для его обновления без необходимости прохождения повторной процедуры авторизации.

Проверим актуальность Kerberos тикетов:

При необходимости обновим необходимый:

kinit -R foo-bar@FEDORAPROJECT.ORG

Здесь foo-bar – логин на удалённой системе, а FEDORAPROJECT.ORG – имя домена (должно быть указано строго в верхнем регистре).

В каталоге появился файл с некорректным именем, который не удаётся удалить. Что делать?¶

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

Штатно такие файлы удалить не удастся, поэтому придётся уничтожить соответствующий данному файлу I-узел (I-Node).

Перейдём в каталог с удаляемым файлом:

Выведем листинг содержимого каталога с включённым отображением номеров I-узлов:

Найдём в выводе необходимый файл и сохраним значение его I-узла. Теперь мы можем удалить его:

find . -maxdepth 1 -type f -inum XXXXXXX -delete

Здесь XXXXXXX – номер I-узла некорректного файла.

Нужно ли выполнять дефрагментацию для разделов с ФС ext4?¶

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

Однако при определённых обстоятельствах (например если точный размер при создании неизвестен, либо в него постоянно производится добавление-удаление данных), некоторые файлы могут фрагментироваться.

Как выполнить дефрагментацию отдельных файлов на разделе ФС ext4?¶

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

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

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

Выполним дефрагментацию крупной базы данных /var/db/foo-bar.db:

sudo e4defrag /var/db/foo-bar.db

Выполним дефрагментацию всего корня:

Как выполнить дефрагментацию всего раздела с ФС ext4?¶

Полную дефрагментацию можно осуществить при помощи средства проверки диска на размонтированном разделе, например при запуске с Fedora LiveUSB.

Запустим процесс:

sudo fsck -t ext4 -fn /dev/sda2

Здесь /dev/sda2 – раздел, на котором следует провести процесс дефрагментации. Операция займёт достаточно много времени (в зависимости от размера диска). Прерывать её не следует, т.к. это может привести к полной потере данных.

Как определить количество доступных процессоров или ядер?¶

Основной способ. Применим утилиту nproc:

Без параметра --all будет указано лишь количество доступных процессоров лишь для данного пользователя/процесса.

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

cat /proc/cpuinfo | grep 'cpu cores' | uniq | awk '{ print $4 }'

Как перенаправить стандартный ввод-вывод в файлы?¶

Перенаправление потока стандартного вывода утилиты ls, запущенной с параметром, в файл:

Перенаправление потока стандартного вывода в файл в режиме добавления данных (не заменяет существующие):

Перенаправление потока стандартного ввода на ввод из указанного файла:

Перенаправление потока стандартного вывода и потока ошибок в файл:

/usr/bin/foo > ~/foo-bar.txt 2>&1

Комбинирование ввода из одного файла с выводом в другой с подавлением возникших ошибок:

/usr/bin/foo < ~/foo-bar.txt > ~/result.txt 2> /dev/null

Как разрешить монтирование любых дисков без ввода пароля?¶

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

Создадим новый конфиг:

sudo touch /etc/polkit-1/rules.d/10-mount-nopass.rules
sudo chmod 0644 /etc/polkit-1/rules.d/10-mount-nopass.rules

Загрузим его в текстовом редакторе:

sudoedit /etc/polkit-1/rules.d/10-mount-nopass.rules

Добавим следующее правило:

polkit.addRule(function(action, subject) {
    if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
        action.id == "org.freedesktop.udisks.filesystem-mount-system-internal") &&
        subject.local && subject.active && subject.isInGroup("wheel"))
    {
            return polkit.Result.YES;
    }
});

Сохраним изменения в файле.

Теперь пользователи с административными правами (входящие в группу wheel) смогут монтировать любые диски без ввода пароля.

Что такое coredump и почему systemd сохраняет их?¶

Coredump – это дамп закрытой памяти процесса, создаваемый в момент возникновения в нём внештатной ситуации, приводящей к аварийному завершению. Эти дампы используются всевозможными системами анализа и необходимы для создания правильных баг-репортов.

По умолчанию systemd при падениях любых процессов (как системных, так и пользовательских), сохраняет дампы их закрытой памяти в каталоге /var/lib/systemd/coredump, поэтому он может занимать десятки гигабайт.

Возможно их ограничить, либо полностью отключить.

Как ограничить размер сохраняемых дампов памяти?¶

Откроем файл конфигурации systemd-coredump:

sudoedit /etc/systemd/coredump.conf

Внесём правки, убирая символ комментария # перед каждой строкой:

[Coredump]
Storage=external
Compress=yes
ProcessSizeMax=1G
ExternalSizeMax=1G
JournalSizeMax=200M
MaxUse=5
KeepFree=

В данном примере мы задаём максимальный размер одного дампа в 1 ГБ (ProcessSizeMax и ExternalSizeMax) с ограничением хранения не более 5 (MaxUse).

Изменения вступят в силу при следующей загрузке системы.

Как полностью отключить сохранение дампов памяти?¶

Откроем файл конфигурации systemd-coredump:

sudoedit /etc/systemd/coredump.conf

Уберём символ комментария # лишь перед первой строкой и изменим её значение:

Изменения вступят в силу при следующей загрузке системы.

Как настроить автоматическое выполнение скрипта после установки нового ядра?¶

Для того, чтобы выполнять какой-либо shell-скрипт сразу после окончания установки ядра Linux, поместим его в каталог /etc/kernel/install.d с chmod 0755 и расширением .install.

Скрипты из него всегда выполняются в алфавитном порядке, т.е. 00-foo.install запустится раньше, чем zz-bar.install, поэтому данную особенность можно использовать для изменения порядка их запуска.

Каждому скрипту в качестве параметра передаётся версия установленного ядра, которую можно получить через ${1}.

При загрузке модуля ядра через modprobe я получаю ошибку. Как исправить?¶

Если при попытке загрузки модуля ядра при помощи modprobe с правами суперпользователя воникает ошибка modprobe: ERROR: could not insert „XXXXXXX“: Operation not permitted, значит включён режим UEFI Secure Boot, а данный модуль не имеет цифровой подписи.

Необходимо либо отключить Secure Boot в настройках UEFI компьютера, либо подписать его действительной цифровой подписью.

Как настроить загрузку системы при помощи systemd-boot?¶

См. здесь.

Почему моё приложение не может использовать порт ниже 1024?¶

Диапазон портов 1-1023 зарезервирован для суперпользователя, а также приложений, наделённых его правами.

Стандартная схема использования: сервис запускается с правами root, начинает прослушивать необходимый ему порт, а затем сбрасывает повышенные права. Так поступают большинство популярных серверных приложений (apache, nginx и т.д.).

Существует и альтернативный вариант – запуск при помощи особого юнита systemd.

Как запустить приложение на порту ниже 1024 при помощи systemd?¶

Добавим в systemd-юнит foo-bar.service запрос привилегии CAP_NET_BIND_SERVICE:

[Unit]
Description=Simple application
After=network.target

[Service]
RestartSec=10s
Type=simple
User=user
Group=user
WorkingDirectory=/home/user/foo-bar
ExecStart=/home/user/foo-bar/foo
Restart=always
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

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

Как удалить пользователя из группы?¶

Удалим пользователя с именем foo из группы bar:

Удалим текущего пользователя из группы bar:

sudo gpasswd -d $(whoami) bar

Как включить полное журналирование данных на диске?¶

Полное журналирование данных поддерживается файловой системой ext4 и может быть активировано при помощи специального параметра монтирования.

Откроем файл /etc/fstab в текстовом редакторе:

Добавим после параметра монтирования по умолчанию defaults через запятую data=journal:

UUID=XXXXXXX /home ext4 defaults,data=journal 1 2

Сохраним изменения в файле и выполним перезагрузку системы.

Какие преимущества и недостатки у полного журналирования данных?¶

Преимущества:

  • более высокая надёжность в случае внезапного пропадания подачи электропитания;

  • гарантия сохранности не только структуры файловой системы, но и самих данных.

Недостатки:

  • двойная запись на диск: сначала данные помещаются в журнал и лишь после этого происходит реальное изменение данных на диске в виде атомарной операции;

  • за счёт двойной записи снижается производительность всех файловых операций записи;

  • для файлового журнала будет зарезервировано 10% от свободного места на диске;

  • более быстрое расходование ресурса записи твёрдотельных накопителей данных.

Для каких целей резервируется 5% от свободного места на диске?¶

По умолчанию на каждом разделе с файловой системой ext4 резервируется 5% для нужд суперпользователя.

Как отключить резервирование свободного места на диске?¶

Резервирование свободного места для нужд суперпользователя может быть отключено при создании файловой системы при помощи опционального параметра -m 0. Например:

sudo mkfs -t ext4 -m 0 -L Data /dev/sdX1

Для уже существующей файловой системы воспользуемся утилитой tune2fs:

sudo tune2fs -m 0 /dev/sdX1

Здесь 0 – процентное соотношение зарезервированных блоков к обычным (отсутствуют), а /dev/sdX1 – раздел диска, на котором будут произведены изменения.

Как включить поддержку zswap в Fedora?¶

Установим пакет zswap-cli для работы с модулем ядра zswap:

sudo dnf install zswap-cli

При необходимости внесём правки в файл конфигурации:

sudoedit /etc/zswap-cli/zswap-cli.conf

Активируем сервис zswap-cli:

sudo systemctl enable --now zswap-cli.service

Изменения вступят в силу немедленно.

Как произвести дефраментацию оперативной памяти?¶

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

sudo bash -c "echo 1 > /proc/sys/vm/compact_memory"

Как отключить активированное по умолчанию сжатие оперативной памяти?¶

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

sudo dnf remove zram-generator zram-generator-defaults

Перезагрузим систему для вступления изменений в силу:

Как определить какой планировщик ввода-вывода используется?¶

Выведем информацию обо всех установленных в системе дисковых накопителях:

grep . /sys/block/*/queue/scheduler

Название активного планировщика на каждом конкретном устройстве указано в квадратных скобках.

Пример:

/sys/block/sda/queue/scheduler:mq-deadline kyber [bfq] none

Данный вывод означает, что в системе для устройства /dev/sda применяется BFQ.

Как получить код завершения последней выполненной команды?¶

Выведем на экран код завершения последней выполненной команды в терминале:

Как определить текущее состояние UEFI Secure Boot?¶

Установим пакет mokutil:

Выведем информацию о текущем состоянии UEFI Secure Boot:

Как построить и вывести дерево процессов?¶

Воспользуемся утилитой ps для построения и вывода дерева процессов:

Как однократно смонтировать BTRFS subvolume?¶

Создадим каталог для точки монтирования:

sudo mkdir /media/foo-bar

Выполним монтирование подтома foo-bar:

sudo mount -t btrfs /dev/sdX2 -o subvol=foo-bar /media/foo-bar

По окончании работы произведём размонтирование и удалим ненужный более каталог:

sudo umount /media/foo-bar
sudo rmdir /media/foo-bar

Здесь /dev/sdX2 – накопитель с файловой системой BTRFS.

Как включить сжатие данных на разделе с BTRFS?¶

Внимание! Начиная с Fedora 34 для новых установок уже включено сжатие для разделов с ФС BTRFS алгоритмом zstd с уровнем сжатия 1. Для тех, кто обновляется с предыдущих релизов, сжатие можно включить самостоятельно.

Файловая система BTRFS поддерживает прозрачное сжатие данных. Допускается выбрать один из трёх доступных алгоритмов: zstd, zlib или lzo. Сжатие включается посредством указания алгоритма и уровня в параметрах монтирования раздела.

Включим сжатие для корневого раздела. Для этого внесём правки в файл конфигурации /etc/fstab:

В колонке параметров монтирования добавим опцию compress=zstd:1:

UUID=XXXXX-XXXXX /   btrfs   compress=zstd:1,subvol=fedora   0 0

Здесь XXXXX-XXXXXUUID раздела.

Сохраним изменения и произведём перезагрузку системы:

С этого момента все записываемые данные будут сжиматься алгоритмом zstd.

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

Как определить эффективность сжатия на разделе с BTRFS?¶

Оценим эффективность сжатия данных на разделе с файловой системой BTRFS при помощи утилиты compsize:

Как применить изменения в правилах udev без перезагрузки?¶

Применим изменения в правилах udev при помощи утилиты udevadm:

sudo udevadm control --reload

Как однократно подключиться к SSH-серверу через proxy?¶

Для подключения к SSH-серверу через proxy, воспользуемся утилитой nc, параметры которой передадим при помощи опции ProxyCommand:

ssh -o ProxyCommand='nc -X 5 --proxy-type socks5 --proxy 127.0.0.1:8080 %h %p' user@example.org

Как настроить подключение к любым SSH-серверам через proxy?¶

Добавим опцию ProxyCommand в файл конфигурации ~/.ssh/config для постоянного использования с любыми хостами:

Host *
    ProxyCommand nc -X 5 --proxy-type socks5 --proxy 127.0.0.1:8080 %h %p

Hello, I am using Fedora 37 (used Fedora 36 last year), and this driver, because default rtw88_8821ce is very unstable. I am building this driver from source, and signing it with self-signed key. Every time I start, reboot or log in into my account, I am getting kernel-core error:

There was a problem with the kernel being loaded with unwanted modules (flags:GWOE)

Modules of questionable quality: 8821ce.

Here is the error from back-trace:

if (ps_ready == _FALSE) {
RTW_ERR(FUNC_ADPT_FMT« PS_MODE_ACTIVE check failedn«, FUNC_ADPT_ARG(adapter));
rtw_warn_on(1);
}

I am a web developer, and I don’t know Linux (and C) very well, but I think, that it is not critical warning, and it’s log level can be lowered. Or is this a mistake on my end? Thanks!

1

Posted byu/[deleted]2 years ago

Sorry, this post was deleted by the person who originally posted it.

It doesn’t appear in any feeds, and anyone with a direct link to it will see a message like this one.

level 1

· 2 yr. ago

Try this resource: https://bugzilla.redhat.com/

More posts from the Fedora community

Continue browsing in r/Fedora

Bug 1478169
Unexpected system error Name — kernel-core

Summary:

Unexpected system error Name — kernel-core

Keywords:
Status: CLOSED
EOL

Alias:

None

Product:

Fedora

Classification:

Fedora

Component:

kernel

Sub Component:

Version:

26

Hardware:

x86_64

OS:

Linux

Priority:

unspecified
Severity: high

Target Milestone:


Assignee:

Kernel Maintainer List

QA Contact:

Fedora Extras Quality Assurance

Docs Contact:


URL:


Whiteboard:

Depends On:


Blocks:


TreeView+

depends on /

blocked

Reported: 2017-08-03 19:09 UTC by sjxx123
Modified: 2019-11-07 22:49 UTC
(History)

CC List:

9
users

(show)

Fixed In Version:

Doc Type:

If docs needed, set a value

Doc Text:

Clone Of:

Environment:

Last Closed:

2018-05-29 12:27:02 UTC

Type:

Bug

Dependent Products:


Attachments (Terms of Use)


Hello, I am using Fedora 37 (used Fedora 36 last year), and this driver, because default rtw88_8821ce is very unstable. I am building this driver from source, and signing it with self-signed key. Every time I start, reboot or log in into my account, I am getting kernel-core error:

There was a problem with the kernel being loaded with unwanted modules (flags:GWOE)

Modules of questionable quality: 8821ce.

Here is the error from back-trace:

if (ps_ready == _FALSE) {
RTW_ERR(FUNC_ADPT_FMT« PS_MODE_ACTIVE check failedn«, FUNC_ADPT_ARG(adapter));
rtw_warn_on(1);
}

I am a web developer, and I don’t know Linux (and C) very well, but I think, that it is not critical warning, and it’s log level can be lowered. Or is this a mistake on my end? Thanks!

Ошибка ядра при загрузке системы (Kernel panic — not syncing: VFS: Unable to mount root fs on unknown-bl)

Модератор: Bizdelnick

fasfromua

Сообщения: 34
ОС: Linux Fedora Core

Ошибка ядра при загрузке системы

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

Uncompressing Linux… Ok, booting the kernel.
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
Kernel panic — not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

Что это ещё за NFS server ?
Что за VFS ?
Почему Kernel panic, если перед этим было Uncompressing Linux… Ok ?
И что означает unknown-block(2,0) ?

Вложения

[Расширение bmp было запрещено, вложение больше недоступно.]

fasfromua

Сообщения: 34
ОС: Linux Fedora Core

Re: Ошибка ядра при загрузке системы

Сообщение

fasfromua » 07.06.2009 00:03

Juliette писал(а): ↑

06.06.2009 19:53

А чего делали-то с системой? Ядро собирали?

Нужно переехать с карты памяти, на которой в данный момент установлена система со всем софтом, на жёсткий диск. Для этого я:
1. всё, что находится на карте памяти, затарил в tar архив;
2. на жёсткий диск установил систему с установочного диска (вместе с загрузчиком в MBR);
3. удалил всё с жёсткого диска и разархивировал туда содержимое tar архива.

fasfromua

Сообщения: 34
ОС: Linux Fedora Core

Re: Ошибка ядра при загрузке системы

Сообщение

fasfromua » 07.06.2009 11:15

o6s писал(а): ↑

07.06.2009 01:36

смотри в fstab.. у вас там неправильно указано местоположение / и т.д. Скорее всего у вам жесткие переименовались с hdX в sdX… или что-нить в этом духе.

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

Roma-san писал(а):Искал в инетах — везде посылают man`ить Grub2, но, подозреваю дело не в нём.

Ну при чём здесь GRUB, если система ваша грузится и в том и в другом случае?
Вот такие умники везде по «тырнетам» и сидят… преимущественно :lol: («повбывав бы падлюк!» :lol: )

Roma-san писал(а):Установил Fedora 23, выполнил yum update, поползли качаться пакеты. Все обновилось, установилось без сбоев. В сообщениях заметил, что тянутся обновления для ядра (если это оно, конечно. Думаю что да. Kernel-*** и все дела). Перезагружаюсь и обнаруживаю следующее — в загрузчике Grub две строки для загрузки дистрибутива.

Не установил (как у вас написано), а обновил?
Так я понимаю? Или нет?

1. Все эти «обновления» в Fedora (которые они расхваливаю), от версии дистрибутиа к другой — полное говно! И это правило №1 нужно запомнить.
Я из-за такого «обновления» Fedora был вынужден спасать мёртвую файловую систему с результатами плотной работы за 2 года!

2. В Fedora 23 произошло следующее:

2.1. Окончательно сменился менеджер пакетов (инсталлятор) с yum на dnf. Это началось ещё с Fedora 22 — Бета-выпуск Fedora 22, перешедший на пакетный менеджер DNF (почитайте — это важно для вашего случая!)

Замена YUM на пакетный менеджер DNF, обладающий заметно более высокой скоростью работы, низким потреблением памяти и более качественным управлением зависимостями. DNF является ответвлением от Yum 3.4, созданным для развития некоторых новых идей, таких как использование библиотеки hawkey в качестве бэкенда для разрешения зависимостей. C точки зрения опций командной строки и файлов кофигурации, DNF почти полностью совместим с YUM, основные изменения заложены в его внутреннюю архитектуру. Пакет dnf-yum осуществляет автоматический редирект на dnf для обеспечения полной совместимости с yum. При этом yum оставлен в дистрибутиве, но переименован в yum-deprecated. Для разрешения зависимостей в DNF задействован SAT solver, реализованный в библиотеке libsolv (hawkey выступает в роли надстройки над libsolv), созданной в рамках проекта openSUSE. Для расширения функциональности DNF предоставляет фиксированный API для плагинов и интеграции с другими приложениями, такими как инсталлятор Anaconda.
21.04.2015 23:15

2.2. Окончательно произошёл отказ от Python 2, и дефаултным становится Python 3.
На Python написана уйма скриптов в системе, в частности, основная масса скриптов GUI, X-сервера, DE …
Python 2 и Python 3 синтаксически несовместимы: некоторые скрипты на Python 2 (от вашей старой системы) могут и работать, но большая часть будет аварийно завершаться на середине…
Переход с Python 2 на Python 3 и задерживался (на долгие годы!!!) в Fedora именно из-за yum, который написан на Python 2 — ему не было замены.

Roma-san писал(а):
Загружаюсь с первой строки (так как, если я правильно по`man`ил, после обновления ядра Grub2 ставит на ПМЖ новую строку для загрузки в самый верх). Значит загрузка. Загрузился логотип, появилось окно логина, выбрал своего юзера, ввожу пароль. Далее серая заставка, какая и положена быть при загрузке гнома… и всё. И ничего. Винт не крутится, лампочки не моргают, курсора не видно. Ладно, думаю.

Вы можете рискнуть сделать полную переустановку GNOME … с неизвестным результатом …
Только не спешите это делать!

Roma-san писал(а):
Сделал перезагрузку (хардрезет). Выбрал при загрузке вторую строку, система загрузилась. Появился любимый гном и наверху высветилось всплывающее сообщение. Все что я успел прочитать — это «Ой, возможно при загрузке произошел сбой [чо-то там] /boot/vmlinuz[чо-то там]».

Что-то такое и я видел при попытке ставить Fedora 23.
Только у меня хватило ума делать это в вртуально машине в VirtualBox :lol:
Там у них какие-то фоксы с GNOME 3 (улучшенным, обновлённым … и говённым), который просто не подымается на видеокартах без серьёзных 3D акселераторов.

Roma-san писал(а):
Помогите, пожалуйста, разобраться в чем причина. Что можно сделать, чтобы с обновленным ядром нормально загрузиться. Ну вообще, что-нибудь. Чувство того, что что-то где-то не работает не даёт моей душе покоя :) Если надо будет выложить какой лог, то я за милую душу, если подскажете как :-D

Я бы не возился так тщательно с вашим вопросом, если бы сам не был заинтересован в установке Fedora 23.
Про Fedora 23 известно:
— она абсолютно сырая….
— с ней у всех (в мире) проблемы и одни матюки слышатся…
— русское сообщество Russian Fedora Relise (RFR) — сдохло и развалилось … они толком релиз 23 так и не совладали сделать, там был наилучший форум по Linux, так и тот они поделить не сумели … накрылся :-o

Первейшее что вам пока надлежит делать — это а). не спешить и б). спасти свои данные (если такие есть)….
Ситуация у вас совсем не такая простая, и малой кровью здесь с восстановлением не отделаешься…

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

Введение

Journald хранит системные журналы в бинарном виде в каталоге /var/log/journal. Со временем они могут разрастись до по-истине огромных размеров. Особенно это заметно у пользователей, использующих SSD накопители и небольшой раздел под корневую ФС.

Определение размера журналов

Чтобы определить сколько места на диске занимают журналы systemd, откроем терминал и выполним в нём команду:

journalctl --disk-usage

В результате узнаем текущий размер журналов и решим нужно ли нам их чистить по своему усмотрению.

Ручная очистка журналов

Чтобы запустить ручную очистку журналов systemd, выполним в терминале с правами суперпользователя:

sudo journalctl --vacuum-size=128M

Здесь 128 МБ (параметр 128M) — это максимальный размер сохраняемых логов. Всё, что сюда не поместится, будет удалено.

Есть и другой метод очистки — удаление записей старше определённого времени:

sudo journalctl --vacuum-time=31days

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

Внимание! При ручной очистке не удаляются текущие активные логи системы, находящиеся в памяти, — только архивированные.

Полная очистка всех журналов

Чтобы удалить вообще всё, сначала выполним их принудительную ротацию:

sudo journalctl --rotate

Теперь удалим все записи:

sudo journalctl --vacuum-time=1s

Настраиваем автоматическую очистку

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

Открываем файл /еtc/systemd/journald.conf в любом текстовом редакторе, запущенном с правами суперпользователя:

sudo vim /etc/systemd/journald.conf

Теперь убираем символ комментария (#) около указанных ниже строк и вносим свои правки:

  • SystemMaxUse — максимальный объём журналов, которые будут храниться на диске;
  • SystemKeepFree — минимальный объём свободного места, которое должно оставаться на корневом разделе. При исчерпании systemd удалит все логи;
  • SystemMaxFileSize — максимальный объём одного файла журнала, хранящегося на диске;
  • RuntimeMaxUse — максимальный объём логов, хранящихся в памяти, внутри каталога /run;
  • RuntimeKeepFree — минимальный объём свободного места, которое должно оставаться на виртуальной ФС каталога /run;
  • RuntimeMaxFileSize — максимальный объём одного файла журнала, хранящегося в памяти.

Сохраняем изменения в файле и перезагружаемся. Теперь systemd будет самостоятельно следить за своим журналом и очищать его по мере заполнения.

Понравилась статья? Поделить с друзьями:
  • Журнал учета ошибок
  • Журнал событий ошибка 6008
  • Журнал ошибок nginx
  • Журнал ошибок kyocera
  • Журнал ошибок iphone