Почему Debian предпочитает временный файл, заменяющий оригинал по изменению байтов в исходном файле?

[112049] Если Вы хотите проверить, настроена ли опция в Вашем текущем ядре, то, вероятно, Вы можете получить конфигурацию через [112408]gunzip -c /proc/config.gz > somefile[112409]. Поэтому, чтобы проверить это: Вы можете искать опции при конфигурировании ядра с помощью [112410]make menuconfig[112411] через [112412]/[112413] -- другие приложения для конфигурирования TUI должны иметь похожую функцию, и я предполагаю, что GUI - это что-то вроде меню. Прямой косой чертой является стандартная *nix-ish горячая клавиша для поиска, используемая в (например) стандартном пейджере, [112414]минус [112415].

В любом случае, быстро проверьте это для 3.13. 3 появилось пять различных опций, первая из которых [112416]NO_FULL_HZ[112417], и эта опция установлена в иерархии [112418]menuconfig[112419] (другие приложения интерфейса конфигурации используют ту же самую опцию, я полагаю) с помощью [112420]General setup->Timers subsystem->Timer tick handling[112421].

set revert-all-at-newline on

Обратите внимание, что некоторые опции имеют предварительные условия и не появятся, если они не будут выполнены. Их можно распутать, просмотрев результаты поиска, которые показывают, как в данный момент устанавливаются значения пререквизита (в квадратных скобках, например [112422][=y][112423]) и используют логическую операторскую запись:

![112632] указывает, что опция не должна быть установлена (поэтому необходимо, чтобы [112633][=n][112634])

$ man bash
$ bind 'set revert-all-at-newline on'
$ man bsh # up arrow and edit
No manual entry for bsh
$ man bash # three up arrows

&&[112636] указывал на предыдущее необходимое значение [112637] и [112638] на то, что должно быть установлено следующее значение.

||[112640] указывает на предыдущий реквизит [112641] или [112642], который должен быть установлен следующий.

И наоборот, некоторые опции требуются для других, которые были выбраны, и подсказки об этом также будут в результатах поиска.[112060].

1
03.11.2014, 22:38
3 ответа

Ваш вопрос наводит на мысль, что Debian использует временные файлы для всех записей, а это не так. Это просто значение по умолчанию для mp3gain.

В версии 1.4.3-2 сопровождающий пакета (Стефан Фритч (Stefan Fritsch)) решил, что поскольку запись в временный файл на ReiserFS происходит гораздо быстрее, то в Debian это будет использоваться по умолчанию. Он был получен из патча patch по адресу https://packages.debian.org/source/squeeze/mp3gain

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

2
27.01.2020, 23:17

Я не хотел отключать технологию Intel (R) Smart Response, поскольку она обеспечивает повышение производительности. Изменение BIOS, чтобы избавиться от raid setup, сделало бы именно это.

Основная часть моих разрешений пришла от этого ответа суперпользователя здесь:

Как установить Windows 7 (с Intel RST) и Linux для двойной загрузки на Dell XPS 15?

Мой отличался в нескольких пути, хотя - в основном я использовал загрузчик Windows 7, а не grub Linux. Вот шаги, которые я сделал.

Перед загрузкой на Ubuntu live DVD я создал несколько разделов свободного пространства с помощью средства разделов Windows.

Панель управления - > Введите раздел в поле поиска - откройте инструмент раздела окна.

Я создал 100GB и 4GB. Затем используйте инструмент Windows, чтобы сохранить новые разделы как нераспределенные. Затем я использовал инструмент Acronis disk manager partition, чтобы преобразовать его в EXT3 и Linux swap (другие свободные альтернативы существуют). Мне пришлось использовать инструмент Windows, чтобы освободить пространство, так как инструмент Aconis, казалось, потерпел крах, когда я пытался изменить размер диска C.

Затем я отключил интеллектуальный ответ Intel с панели задач Windows

right click -- options -- disable. (see screenshot below)  
You can enable it again after you have installed Linux.

disable intel smart response

Затем перезагрузил ноутбук и загрузил Linux с диска Live DVD.

При загрузке Linux я набрал в терминале

modprobe dm_mod
dmraid -ay
ls -la /dev/mapper/

Вышеуказанные команды сделали диски видимыми. После команд я нажал кнопку «установить Linux». Затем в разделе «выберите раздел» я выбрал тот EXT3 который я создал и установил его в качестве корня Linux. Затем 4GB и установите это как своп. Затем я установил Linux.

После перезапуска он не загружался прямо в Linux - это потому, что я не перезаписал загрузчик Windows. Все устанавливалось только на созданные мною разделы. Я беспокоился о том, чтобы испортить его и быть не смог попасть в Windows.

Чтобы позволить моему ноутбуку загружаться в Linux на этой новой установке, я загрузил его в Windows (на данный момент он не предоставляет никаких других опций). Затем в Windows я загрузил и установил EasyBCD . Это довольно удобный инструмент, так как он позволяет добавлять добавления в загрузчик Windows - вы просто выбираете раздел. Когда я загружаю ноутбук сейчас, это позволяет мне загрузить Linux или Windows 7 с загрузчика. После этого я снова включил интеллектуальный ответ Intel.

-121--99083-

Необходимо никогда не изменять файл на месте. Единственными безопасными путями для записи файла являются:

  1. , если вы первый создаете файл ( O _ EXCL ).
  2. путем записи в новый временный файл и последующего выполнения (атомарного) переименования (2) .
  3. путем открытия файла в режиме «только добавление» ( O _ APPEND ).

В противном случае вы будете терять данные постоянно, либо когда ваша программа терпит крах (не лгать и говорить, что ваша программа идеальна), либо когда вы теряете мощность.

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

-121--157753-

Изменение файла на месте не всегда так просто.

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

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

1
27.01.2020, 23:17

Необходимо никогда не изменять файл на месте. Единственными безопасными путями для записи файла являются:

  1. , если вы первый создаете файл ( O _ EXCL ).
  2. путем записи в новый временный файл и последующего выполнения (атомарного) переименования (2) .
  3. путем открытия файла в режиме «только добавление» ( O _ APPEND ).

В противном случае вы будете терять данные постоянно, либо когда ваша программа терпит крах (не лгать и говорить, что ваша программа идеальна), либо когда вы теряете мощность.

Существует множество крупных приложений, которые еще не усвоили эти правила; Я виню в том, что даже есть возможность открыть файл в режиме записи-усечения (так как для него вообще нет использования).

2
27.01.2020, 23:17

Теги

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