Есть ли способ синхронизации только одного раздела?

17

Есть ли способ синхронизировать только один раздел вместо всех разделов?

Что-то вроде "sync / dev / sdc1".

HandyGandy
источник
1
Насколько я знаю. Хороший вопрос, хотя.
Нихил Мулли

Ответы:

10

вы можете перемонтировать с опцией синхронизации и затем перемонтировать ее обратно с помощью async:

mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint

Использование опции remount не будет связываться с процессами, использующими перемонтированную файловую систему.

Михал Шрайер
источник
2
Почему вы считаете, что 2 ремонтирования необходимы? По крайней мере, в ядре 2.6.32 do_remount_sb выполняет sync_filesystem, которая является той же функцией, которая вызывается в системном вызове syncfs, представленном в lwn.net/Articles/433384 .
Юрий Назаров
5

Существует стандартная функция для данных синхронизируются (и метаданные) одного файла: fsync. Для доступа к ней нет стандартной или обычной команды оболочки, но вы можете использовать syncметод perl в IO::Handle:

perl -MIO::File -e 'new IO::File($ARGV[0], "r+")->sync()' filename

Не существует стандартной или общей функции или команды оболочки для синхронизации только одного раздела.

В последних системах Linux существует syncfsсистемный вызов (введен в ядре 2.6.39 и представлен начиная с glibc 2.14 ). Я не думаю, что этот системный вызов выставлен в coreutils или util-linux.

Жиль "ТАК - прекрати быть злым"
источник
1
Последнее предложение о syncfsявляется наиболее важной частью.
пул
3

Монтирование раздела с syncопцией может быть решением.

llua
источник
2

Если вы имеете в виду syncутилиту, которая сбрасывает данные из памяти на диск, то ответ - нет. Это связано с тем, что syncобычно используется во время процедуры выключения или перезагрузки, когда желательно безопасно записывать данные на диск, а реальной целью операции является память, а не диски, и извлечение этих буферизованных данных из ОЗУ. в безопасное место Диски находятся там, где заканчиваются данные.

Тим Кеннеди
источник
0

Если btrfs:

btrfs filesystem sync /path/under/mountpoint
Том Хейл
источник