Ошибка, устанавливающая Fedora 19

Если файл был удален, но все еще открыт, который означает, что файл все еще существует в файловой системе (это имеет inode), но имеет количество жесткой ссылки 0. С тех пор нет никакой ссылки на файл, Вы не можете открыть его по имени. Нет никакого средства для открытия файла inode также.

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

Linux выставляет открытые файлы через специальные символьные ссылки под /proc. Эти ссылки называют /proc/12345/fd/42 где 12345 PID процесса, и 42 количество дескриптора файла в том процессе. Программа, работающая как тот же пользователь как тот процесс, может получить доступ к файлу (считать/писать/выполнить полномочия являются тем же, которое Вы имели как тогда, когда файл был удален).

Имя, под которым был открыт файл, все еще видимо в цели символьной ссылки: если файл был /var/log/apache/foo.log, затем цель ссылки /var/log/apache/foo.log (deleted). (Если файл был переименован после того, как он был открыт, цель символьной ссылки может отразить переименование.)

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

recover_open_deleted_file () {
  old_name=$(readlink "$1")
  case "$old_name" in
    *' (deleted)')
      old_name=${old_name%' (deleted)'}
      if [ -e "$old_name" ]; then
        new_name=$(TMPDIR=${old_name%/*} mktemp)
        echo "$oldname has been replaced, recovering content to $new_name"
      else
        new_name="$old_name"
      fi
      cat <"$1" >"$new_name";;
    *) echo "File is not deleted, doing nothing";;
  esac
}
recover_open_deleted_file "/proc/$pid/fd/$fd"

Если Вы только знаете идентификатор процесса, но не дескриптор, можно восстановить все файлы с

for x in /proc/$pid/fd/*; do
  recover_open_deleted_file "$x"
done

Если Вы не знаете идентификатор процесса также, можно искать среди всех процессов:

for x in /proc/[1-9]*/fd/*; do
  case $(readlink "$x") in
    /var/log/apache/*) recover_open_deleted_file "$x";;
  esac
done

Можно также получить этот список путем парсинга вывода lsof, но это не более просто, ни более надежно, ни более портативно (это является определенным для Linux во всяком случае).

2
27.04.2016, 21:36
1 ответ

Не берите в голову этот ответ. Это не применимо к фактической ситуации, в которой OP находит себя.

Могла бы быть эта ошибка от Fedora 15/16 обновление, возвращающееся в Fedora 18/19 обновление:

https://fedoraproject.org/wiki/Common_F16_bugs#Starting_GNOME_Shell_fails_after_upgrade_from_Fedora_15_with_color_profile_insta lled

Та ошибка предполагает, что это - проблема с гномом-демоном настроек, отказывающим на запуске из-за несогласованных цветовых профилей (который, по-видимому, изменился между выпусками, но не был обновлен правильно через updater). Изменение на другую консоль, как terdon предложенный:

Crtl+Alt+F1 (or F2 or F3)

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

su -c 'chcon -R -t icc_data_home_t ~/.local/share/icc'.

зафиксировать цветовой профиль.

Другой поток: http://forums.fedoraforum.org/showthread.php?t=272232 предполагает, что это - проблема с прибывшими неполными обновлениями во время обновления. Переключение на другую консоль как выше и вход позволит, Вы для взгляда видите, если это так.

Вы могли также переключиться на KDE по крайней мере временно, поскольку ошибка и форум распараллеливают обе точки к GNOME как источник проблемы.

От консоли устанавливают KDE и kdm:

sudo yum groupinstall "KDE Plasma Workspaces"
sudo yum install kdm

затем переключитесь на kdm (значение по умолчанию является gdm, который будет работать с KDE также, но, вероятно, необходимо пропустить что-либо гном, связанный на данный момент (https://fedoraproject.org/wiki/KDE):

sudo yum install system-switch-displaymanager
sudo system-switch-displaymanager kdm

Затем перезагрузка.

2
27.01.2020, 22:14
  • 1
    OP получает эту ошибку во время установки, как он сможет установить пакеты, если сама система еще не будет установлена? Что обновление имеет t, делают с чем-нибудь? –  terdon♦ 12.10.2013, 18:19
  • 2
    Вы правы. В чтении вопроса I, хотя это было немного нечетко на точно, когда/где ошибка происходила, но это не. –  SuperMagic 12.10.2013, 18:27

Теги

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