Intereting Posts
Учитывая массив целых чисел, возвращайте индексы двух чисел так, чтобы они добавляли к определенной цели Почему «cal» использует код странного 08 / ^ H / \ b для выделения и как это работает? Отключение группового планирования в реальном времени в ядре Является ли «temp» зарезервированным системным именем? Установите отображение bash , чтобы не отображать текст vim после выхода Добавление завершения прохождения к рыбной оболочке Удаленное использование аутентификации ключа SSH (3 команда sed для обмена символами Как получить события мыши из ядра, когда X активен? журнал ошибок gnome-shell Как добавить журналы в crontab с отметкой времени Чтобы указать шрифты по умолчанию для китайского языка на linux mint мы повторно запустим `createrepo` после копирования новых файлов в репозитории Печать предыдущей строки после сопоставления шаблонов с помощью sed? необходимо заменить содержимое файла

Устройство смонтировано как только для чтения, но я все равно могу написать ему (CentOS 6.8)

У меня установлен CentOS 6.8 на флеш-накопителе и из-за его ограниченного жизненного цикла (100 000 записей (среднее время до сбоя для каждого сектора)), я хочу установить его как только для чтения.

Предполагается, что ядро ​​запускается как ro. По крайней мере, результат cat /proc/cmdline начинается с «ro …».

Я установил /etc/fstab для монтирования только для чтения:

 UUID=4addd4a7-97f6-4399-89e4-6d3728bd2979 / ext4 defaults,noatime,ro 1 1 UUID=21a81149-6534-4313-8696-e203896d5881 /boot ext4 defaults,noatime,ro 1 2 UUID=D64B-DD9C /boot/efi vfat noatime,ro,umask=0077,shortname=winnt 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 tmpfs /var/log tmpfs defaults 0 0 

Когда я запускаю mount , я вижу, что спецификации в /etc/fstab соблюдались. Несмотря на это, я все еще могу изменять файлы и записывать новые файлы. Дальнейшее доказательство того, что монтируемый lsof доступен для записи, выполняется lsof (согласно этому сообщению ). Результаты показывают несколько файлов, открытых для записи, в основном на / home. (Чтобы достичь этого, мне пришлось установить /var/log как tmpfs .)

Это ошибка в CentOS 6.8? Есть ли обходной путь?

Я помню, где-то читал, вероятно, на страницах руководства, что есть какая-то ошибка, которая означает, что устройство читает только, вам нужно также перемонтировать устройство.

 mount -o remount,ro ... 

попробуйте добавить перезапуск после других записей в fstab, ps mount может быть предоставлен файловой системой «none» в fstab.

ОБНОВИТЬ:

Я нашел соответствующую запись человека;

  mount(8) since v2.27 allows to change the mount options by passing the relevant options along with --bind. For example: mount --bind,ro foo foo This feature is not supported by the Linux kernel; it is implemented in userspace by an additional mount(2) remounting syscall. This solution is not atomic. The alternative (classic) way to create a read-only bind mount is to use the remount operation, for example: mount --bind olddir newdir mount -o remount,ro,bind olddir newdir Note that a read-only bind will create a read-only mountpoint (VFS entry), but the original filesystem superblock will still be writable, meaning that the olddir will be writable, but the newdir will be read-only. It's impossible to change mount options recursively (for example with -o rbind,ro). 

основанный на этом, вы можете попробовать использовать опции fstab;

 default,rbind,ro 

в противном случае добавьте запись для повторной установки.

ОБНОВЛЕНИЕ 2 (человек 8 mount / man 8 mount blockdev);

  -r, --read-only Mount the filesystem read-only. A synonym is -o ro. Note that, depending on the filesystem type, state and kernel behavior, the system may still write to the device. For example, ext3 and ext4 will replay the journal if the filesystem is dirty. To prevent this kind of write access, you may want to mount an ext3 or ext4 filesystem with the ro,noload mount options or set the block device itself to read-only mode, see the blockdev(8) command. 

Это означает, что у вас есть возможность;

 ro,noload 

или использовать;

 blockdev --setro /dev/...