Какие операции метаданных файловой системы на самом деле журналируются в ext4 и xfs?

Windows перезапишет загрузочный сектор каждый раз, когда Вы устанавливаете его, обновляете его до новой версии или используете инструменты как bootrec /fixmbr, bootrec /fixboot, или более старое fdisk /mbr. В целом установите Windows сначала, затем Linux. Загрузочный сектор останется помещенным, пока Вы не сделаете одну из вещей выше. (И возможно существуют также другие способы записать на MBR.), Но при потере GRUB он легко восстанавливается:

  • Начальная загрузка с живого CD (CD/DVD или флеш-накопитель).
  • Станьте корнем или использованием sudo с командами ниже.
  • Перечислите доступные разделы в случае необходимости: fdisk -l
  • Windows будет почти наверняка существовать на/dev/sda1: mount /dev/sda1 /mnt
  • Переустановите GRUB в MBR: grub-install --root-directory=/mnt/ /dev/sda
  • Перезагрузка: shutdown -r now
  • Восстановите меню GRUB: update-grub

Вы могли также установить 100% Unix, Linux или BSD и просто запустить Windows в виртуальной машине, если компьютер достаточно силен для этого.

Также: BIOS Вашего компьютера может иметь опцию защитить загрузочный сектор.

9
13.04.2014, 19:48
4 ответа

Меня больше беспокоит, какое подмножество операций с атомарной файловой системой является эффективно прочным, поскольку позволяет работать с журналом без необходимости постоянно наклоняться назад и fsync(2).

Нет. Если вы хотите быть уверены в том, что изменения сохраняются после сбоя, вы должны использовать fsync, точка. Журнал только гарантирует, что в случае сбоя ни одна из перечисленных вами операций не будет [118387]наполовину [118388] выполнена.[118042].

1
27.01.2020, 20:08
[118031] Вы знаете, что [118373]ext4-журнал [118374] работает по номеру блока и не работает, верно? "Метаданные" - это что угодно, только не те фактические блоки данных для данного входа, независимо от того, какую операцию вы использовали для модификации данного блока.[118032].
0
27.01.2020, 20:08
[118027] Из соображений производительности, ext4 по умолчанию записывает через журнал только метаданные файловой системы.

Я полагаю, что XFS также записывает в журнал все транзакции с метаданными, если только вы не подкорректировали файловую систему. [118030]

1
27.01.2020, 20:08

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

Я этого не проверял. Возможно я что-то упустил.

xfstests используется многими разработчиками файловых систем Linux. Этот тест находится в каталоге "generic". Это означает, что он должен применяться ко всем файловым системам Linux. (Или, по крайней мере, все файловые системы блочных устройств. Тест работает с использованием специального виртуального блочного устройства ).

https://github.com/kdave/xfstests/blob/master/tests/generic/348

# Test creating a symlink, fsync its parent directory, power fail and mount
# again the filesystem. After these steps the symlink should exist and its
# content must match what we specified when we created it (must not be empty
# or point to something else).
0
27.01.2020, 20:08

Теги

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