Почему распабин облегчает мощности при выполнении `sudo Cat / dev / char / 10: 130`?

Руководство, которое вы упомянули, немного запутанное и содержит много ненужной дополнительной информации на одной странице, из-за чего вся тема кажется очень сложной, хотя на самом деле в большинстве случаев достаточно 2 простых команд. Более того, очевидно, что вам нужно перейти по двум ссылкам ("methods" в предупреждении, которое говорит вам не использовать dnf, затем "dedicated page"), чтобы попасть на страницу, которая объясняет, как использовать плагин system-upgrade - который является официальным способом подготовки обновления.

В частности, эта страница вики, на которую дана ссылка в вопросе, объясняет, как использовать yum/dnf непосредственно для обновления, что не рекомендуется, это не официальный способ. "Не рекомендуется" часто означает "Это может что-то сломать". По крайней мере, в верхней части страницы есть желтое предупреждение, в основном говорящее пользователям не делать того, что описано на этой странице, если они не знают, что делают. У Fedora есть официальный способ обновления. Давным-давно это был PreUpgrade, начиная с Fedora 18 это был FedUp, а начиная с обновления до Fedora 23, это теперь плагин dnf "system-upgrade". Чтобы было понятно, это плагин для dnf, а не только сам dnf.

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


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

Похоже, что вы обновились до rawhide вместо 23, в этом случае вам нужно попытаться выполнить понижение версии. Итак, позвольте предложить:

# dnf system-upgrade --releasever=23 --setopt=deltarpm=false distro-sync
# dnf system-upgrade reboot

Не забудьте аргумент system-upgrade для вызова плагина!


Что не делать

Не меняйте номера версий в конфигурационных файлах и не запускайте dnf. Если вам повезет, вы просто неправильно измените файл, на который полагаются другие программы; если вам не повезет, вы можете нарушить будущие обновления/апгрейды, особенно при изменении файлов репозитория. Не удаляйте переменную $releasever из файлов /etc/yum.repos.d/*.repo, эти переменные очень важны. Если вы сделаете это и забудете изменить их снова через 6 месяцев для следующего обновления, это обновление, скорее всего, сломается или будет ужасно неудачным.

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


Как перейти с Fedora 22 на Fedora 23 (официально)

Поскольку FedUp был устаревшим и systemd теперь используется внутри системы для обновления, существует новая команда для подготовки и запуска обновления - "dnf system-upgrade ...". Но по соображениям совместимости команда fedup все еще работает.

Опять же, обновление запускается dnf plugin под названием system-upgrade, а не самим dnf. Поэтому сначала вы должны, по крайней мере, установить текущую версию этого плагина:

Подготовка:

  1. Установка/обновление плагина "system-upgrade": dnf install dnf-plugin-system-upgrade
    В некоторых случаях он может пожаловаться на проблемы с зависимостями, вам придется добавить --best/--allowerasing: dnf install --best dnf-plugin-system-upgrade
  2. Вам следует обновить систему перед подготовкой обновления. Часто это работает в любом случае, но обновление не гарантируется, если вы не обновите систему, поэтому: dnf upgrade

Затем подготовьте и запустите обновление, которое в основном состоит из двух шагов:

  1. # dnf system-upgrade download --releasever=23
    или # fedup --network 23 (перенаправляет на dnf system-upgrade)
  2. # dnf system-upgrade reboot

Последняя команда перезагрузит систему в режим обновления. В отличие от FedUp, который создавал новую загрузочную запись Grub "System Upgrade", которую нужно было выбрать при загрузке, здесь система выполнит обычное выключение, начнет загружаться нормально, но затем запустит процесс обновления до загрузки графического рабочего стола. Если все работает нормально, ваша новая Fedora 23 загрузится после этого.

dnf Python Traceback error

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

Traceback (most recent call last):
  File "/bin/dnf", line 36, in 
...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 51: ordinal not in range(128)

Обходным решением будет добавление к каждому вызову dnf LANG=C, например, для выполнения полного обновления:

# LANG=C dnf -y upgrade

dnf system-upgrade reboot loop

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

  1. Сразу после запуска, в меню загрузки Grub, нажмите e для редактирования параметров загрузки. В текстовой области прокрутите вниз до строки, начинающейся с linux, нажмите End, чтобы переместить курсор в конец строки и добавить (после пробела) rd.break. Затем нажмите F10 для загрузки в аварийный режим, вы получите оболочку.
  2. Вам нужно удалить файл, поэтому вы должны перемонтировать корневую файловую систему на чтение-запись, потому что она смонтирована только на чтение:
    # mount -o remount,rw /sysroot
  3. Удалите ссылку system-upgrade:
    # rm /sysroot/system-update
  4. Перезагрузитесь (команда reboot или Ctrl+Alt+Del), система должна загрузиться нормально. Возможно, вы захотите очистить файлы обновления, выполнив dnf system-upgrade clean.

1
18.07.2018, 07:13
1 ответ

/dev/char/10:130 — это символьное устройство со старшим номером устройства 10 и младшим номером 130. В не-встраиваемых системах Linux его чаще называют /dev/watchdog.

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

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

Если программное обеспечение, следящее за сторожевым таймером, необходимо остановить, некоторые драйверы сторожевого таймера требуют отправки определенного символа на сторожевой таймер непосредственно перед закрытием файла. Затем драйвер сторожевого таймера в ядре должен отключить сторожевой таймер. Ваш sudo cat /dev/char/10:130этого не делал.

Проблема в том, что некоторые аппаратные сторожевые таймеры невозможно остановить без перезагрузки после активации. И если ядро ​​было скомпилировано с опцией CONFIG _WATCHDOG _NOWAYOUT, драйвер будет ожидать, что после активации сторожевого таймера всегда должен присутствовать процесс сторожевого таймера -, поэтому запрос на деактивацию сторожевого таймера будет отказано.

2
27.01.2020, 23:31

Теги

Похожие вопросы