после обновления ядро ​​ubuntu 12.04 не загружается

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

Вы можете проверить это с помощью команды lsof, в которой перечислены открытые файлы. Если вы запустите lsof, ваш файл фильма должен быть указан как открытый игроком, но рядом с ним будет «DEL», что означает, что он был удален, хотя он все еще открыт.

Это на самом деле все полезное и означало бы, что вы действительно сможете восстановить открытые файлы, которые вы удалили, хотя, вероятно, лучше всего оставить другой вопрос:)

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

Так, например, в терминальном окне:

ln existing_movie.avi movie_hardlink.avi

ls -i

Аргумент -i для ls показывает информацию об инодах для файлов - они должны быть одинаковыми.

Когда вы удаляете один из этих файлов, данные остаются, потому что у другого все еще сохраняется дескриптор дескриптора. После удаления второго файла inode не имеет оставшихся дескрипторов / ссылок и поэтому удаляется / помещается как неиспользуемое пространство. Это напрямую аналогично случаю, когда у вашего игрока открыт фильм, за исключением того, что второй дескриптор здесь находится в текущей программе, а не в файле второй файловой системы.

1
задан 23 September 2012 в 13:17

0 ответов

Другие вопросы по тегам:

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