Вопросы, связанные с администрированием системы

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

Для передачи параметра необходимо в меню загрузчика Grub 2 выбрать нужную строку и нажать клавишу E на клавиатуре для перехода к её редактированию, затем в конце через пробел дописать нужный параметр (или параметры), после чего нажать Enter, чтобы начать процесс загрузки.

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

Необходимо открыть с шаблонами загрузчика /etc/default/grub в любом текстовом редакторе, найти в нём переменную GRUB_CMDLINE_LINUX и внести соответствующие правки. После этого нужно пересобрать конфиг Grub 2 посредством grub2-mkconfig.

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

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

journalctl -b

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

journalctl -k

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

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

journalctl --list-boots

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

journalctl -b -X

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

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

journalctl -b > ~/abc.txt

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

journalctl -b | fpaste

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

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

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

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

sudo mkdir /media/fedora

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

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

Здесь /dev/sda1 - раздел, на котором установлена ОС, а 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

Теперь выполняем вход в chroot:

sudo chroot /media/fedora

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

logout

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

sudo umount /media/fedora

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

См. здесь.

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

См. здесь.

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

См. здесь.

Как пробросить локальный порт на удалённый хост?

См. здесь.

Как поднять OpenVPN сервер в Fedora?

См. здесь. В данной статье вместо ovn следует использовать openvpn во всех путях и именах юнитов.

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

См. здесь.

Как поднять свой сервер Matrix в Fedora?

См. здесь.

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

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

sync && echo 3 > /proc/sys/vm/drop_caches && sync

Как настроить системные часы в UTC или локального времени и наоборот?

Переключение аппаратных часов компьютера в 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

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

Чтобы навсегда отключить какой-то драйвер в Linux, необходимо создать файл в каталоге /etc/modprobe.d с любым именем, например disable-nv.conf, и примерно таким содержанием:

install nouveau /bin/false

Здесь вместо nouveau нужно указать реально используемые устройством драйверы.

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

lspci -nnk

Теперь необходимо пересобрать inird образ:

sudo dracut --force

Чтобы отменить действие, достаточно удалить созданный файл и снова пересобрать initrd.

Как запустить простейший веб-сервер в Fedora?

Для запуска простейшего веб-сервера можно использовать Python и модуль, входящий в состав базового пакета:

python3 -m http.server 8080

Веб-сервер будет запущен на порту 8080. В качестве webroot будет использоваться текущий рабочий каталог.

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

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

hostnamectl set-hostname NEW

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

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

В Fedora для настройки сети используется Network Manager. Для работы с ним доступны как графические менеджеры (встроены в каждую DE), так и консольный nm-cli.

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

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

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

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

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

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

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

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

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

sudo fdisk -l

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

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

cryptsetup luksOpen /dev/sda2 luks-root

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

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

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

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

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

cryptsetup luksClose /dev/mapper/luks-root

Как поднять DLNA сервер в локальной сети?

См. здесь.

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

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

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

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

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

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

Включение zram в Fedora:

sudo systemctl enable --now zram-swap

Отключение zram в Fedora:

sudo systemctl stop zram-swap
sudo systemctl disable zram-swap

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

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

Для точных замеров производительности сети нам потребуется как минимум два компьютера (либо компьютер и мобильное устройство), а также утилита iperf, присутствующая в репозиториях Fedora. Установим её:

sudo dnf install iperf2

На первом устройстве запустим сервер iperf:

iperf -s

По умолчанию iperf прослушивает порт 5001/tcp на всех доступных сетевых соединениях.

Теперь временно разрешим входящие соединения на данный порт посредством Firewalld (правило будет действовать до перезагрузки):

sudo firewall-cmd --add-port=5001/tcp

На втором устройстве запустим клиент и подключимся к серверу:

iperf -c 192.168.1.2

В качестве клиента может выступать и мобильное устройство на базе ОС Android с установленным Network Tools. В этом случае в главном меню программы следует выбрать пункт Iperf2, а в окне подключения ввести:

-c 192.168.1.2

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

192.168.1.2 - это внутренний IP-адрес устройства в ЛВС, на котором запущен сервер. Номер порта указывать не требуется.

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

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

sudo sysctl -w foo.bar=X

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

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

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

foo.bar1=X1
foo.bar2=X2

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

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

sudo systemctl reboot

В каком порядке загружаются 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

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

systemctl get-default

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

sudo systemctl reboot

Как настроить подкачку в файл в Fedora?

Создадим файл подкачки на 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

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

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

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

rsync -chavzP --stats /path/to/local user@example.org:/path/to/remote

Здесь user@example.org - данные для подключения к серверу, т.е. имя пользователя на удалённом сервере и хост.

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

Получение содержимого каталога с удалённого сервера посредством rsync:

rsync -chavzP --stats user@example.org:/path/to/remote /path/to/local

Здесь user@example.org - данные для подключения к серверу, т.е. имя пользователя на удалённом сервере и хост.

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

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

sudo dnf install iotop fatrace

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

sudo iotop -a

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

sudo fatrace -f W

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

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

Как обновить прошивку UEFI BIOS и других устройств непосредственно из Fedora?

Для оперативного обновления микропрограмм (прошивок) существует утилита fwupd:

sudo dnf install fwupd

Внимание! Для работы fwupd система должна быть установлена строго в UEFI режиме.

Обновление базы данных программы:

fwupdmgr refresh

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

fwupdmgr get-devices

Проверка наличия обновлений с выводом подробной информации о каждом из них:

fwupdmgr get-updates

Установка обнаруженных обновлений микропрограмм:

fwupdmgr update

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

sudo systemctl reboot

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

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

sudo e2label /dev/sda1 "NewLabel"

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

sudo xfs_admin -L "NewLabel" /dev/sda1

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

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

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

sudo blkid

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

sudo blkid /dev/sda1

Здесь /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.

Как правильно указать DNS серверы в Fedora?

Для того, чтобы указать другие DNS серверы, необходимо использовать Network Manager (графический или консольный): свойства соединения -> страница IPv4 -> другие DNS серверы.

Можно ли править файл /etc/resolv.conf в Fedora?

Нет, т.к. этот файл целиком управляется Network Manager и перезаписывается при каждом изменении статуса подключения (активация-деактивация соединений, перезапуск сервиса и т.д.).

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