'/etc/fstab', раньше повторно монтировал диски?

Мне установили устройство с Ubuntu 14.04.5, которая имеет единственный жесткий диск с ext4 файловой системой.

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

Первая вещь, которую я попробовал, состояла в том, чтобы изменить /etc/fstab файл. Я пытался измениться

UUID=<UUID> / ext4 errors=remount-ro 0 1

кому:

UUID=<UUID> / ext4 errors=remount-ro,data=journal 0 1

путем добавления data=journal к полю опции.

Однако, когда я перезагружаю устройство, я закончил с высказыванием сообщения об ошибке cannot change data mode on remount. Я проверил dmesg и видел более раннее сообщение о монтировании диска с ordered режим данных.

В течение смущающе долгого времени я думал /etc/fstab используется для переопределения вариантов монтажа по умолчанию, таким образом, диски только смонтированы однажды. Но теперь это выглядит неправильным: диск смонтирован с помощью его опций монтирования по умолчанию, затем /etc/fstab взят для перемонтирования его.

Мои вопросы:

  • Это "монтирование-remout", обрабатывают дизайн системы? Я читал Fstab страница Wiki, но не видела, что упоминает, "монтируются - повторно монтируют" вещь.
  • Если /etc/fstab действительно используется для перемонтирования, в котором шаге процесса начальной загрузки диск смонтирован впервые? Это реализовано в /etc/init.d? Я действительно видел некоторые сценарии в /etc/init.d названный umountfs и umountroot, но, просматривая их содержание, они не выглядят релевантными.
9
задан 19 January 2019 в 02:19

2 ответа

От man ext4:

data={journal|ordered|writeback}
              Specifies the journaling mode for file data.  Metadata is always
              journaled.  To use modes other than ordered on the root filesys‐
              tem, pass the mode to the kernel as boot parameter,  e.g.  root‐
              flags=data=journal.

Удалить data=ordered от Вашей fstab-строки и редактирования /etc/default/grub вместо этого. В /etc/default/grub измените строку

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

кому:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash root‐flags=data=journal"

выполненный sudo update-grub и перезагрузка.

8
ответ дан 23 November 2019 в 04:57

Когда/etc/fstab используется

Если Вы работаете sudo strace -e open,openat mount -o remount,rw / Вы будете видеть, что команда действительно на самом деле открывается /etc/fstab. Это - наиболее распространенная команда, которую Вы будете видеть, часто ссылаемый в статьях о работе от оболочки восстановления.

Также заключить ответ sourcejedi в кавычки (который прибывает из mount(8) руководство):

смонтируйте, что-o повторно монтируются, rw / dir

После этого вызова смонтируйте чтения fstab, и объединяет эти опции с опциями из командной строки (-o). Если никакая точка монтирования не найдена в fstab, то перемонтирование с неуказанным источником позволяется.

Однако это не означает это /etc/fstab всегда используется. В частности, когда Вы также указываете файл устройств; ссылка на mount(8) руководство:

Функциональность перемонтирования следует за стандартным путем, как команда монтирования работает с опциями от fstab. Это означает, что команда монтирования не читает fstab (или mtab) только, когда устройство и dir полностью указаны.

смонтируйте, что-o повторно монтируются, rw/dev/foo / dir

После этого вызова все заменяются старые опции монтирования, и произвольный материал от fstab проигнорирован, кроме цикла = опция, которая внутренне сгенерирована и сохраняется командой монтирования.

Это имеет смысл с тех пор /dir могло быть произвольным - перемонтирование устройства к другой точке монтирования.

/etc/fstab также не ссылается при монтировании / файловая система в ядре времени начальной загрузки не знает ничего из /etc/fstab. Заключить ответ psusi в кавычки:

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

...

Наконец, сегодня у нас есть initramfs. Это подобно initrd, но вместо того, чтобы быть изображением сжатой файловой системы, которое загружается в электронный диск, это - сжатый архив cpio. tmpfs смонтирован как корень, и архив извлечен там. Вместо того, чтобы использовать pivot_root, который рассматривался как грязный взлом, сценарии начальной загрузки initramfs монтируют реальный корень в корне/, удаляют все файлы в корне tmpfs, затем chroot в корень / и должностное лицо/sbin/init

Файловые системы, которым не нужен fstab

Отметьте также, что ядро Linux имеет другие файловые системы, которые находятся в памяти - они обычно не доступны пользователям, некоторые из которых не имеют точки монтирования вообще, в то время как некоторые подвергаются пользователям. Ядро не должно ссылаться /etc/fstab для тех. Пример этого /proc - это - виртуальная файловая система, которая выставляет главным образом информацию о процессах и некоторый материал об аппаратных средствах и системе, которая должна действительно быть в /sys - другая виртуальная файловая система.

5
ответ дан 23 November 2019 в 04:57

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

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