Монтирование того же устройства в / в режиме только для чтения в подкаталоге (/ mnt / rootfs) в качестве R / W

Итак, вот моя инструкция:

Шаг 1: Найдите словари aspell в вашей системе. Я нашел их в / usr / lib / aspell / . Вы увидите файлы .multi и .rws . Все следующие команды должны выполняться в этом каталоге.

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

aspell --lang=en --master=en.multi  dump master > /home/user/meinwoerterbuch.txt
aspell -d de dump master | aspell -l de expand | perl -e 'while(<>){ print join("\n", split), "\n";}' >> /home/user/meinwoerterbuch.txt 

Здесь пришлось расширить немецкий словарь, и, поскольку мне нужно было по одному слову в строке, я использовал perl, чтобы брать несколько слов в строку и печатать каждое из них в дополнительной строке. Просто посмотрите на вывод aspell (я рекомендую head ), чтобы узнать, нужно ли вам расширять словарь.

Шаг 3: Выберите название языка для вашего словаря. Я выбрал венгерский, потому что уверен, что никогда не буду использовать венгерский словарь для проверки орфографии, и тогда его будет легко найти. Я думаю, это должно быть что-то с действующим языковым кодом ISO. Для венгерского это hu .

Шаг 4. Создайте файлы hu.dat и hu_phonet.dat . Наиболее урезанные версии, которые кажутся работоспособными:

hu.dat :

name hu 
charset iso8859-1
soundslike hu 

hu_phonet.dat :

version 0.1-2002.12.15-3

Шаг 5: Создайте свой объединенный словарь с помощью

sudo aspell --lang=hu --encoding=utf-8 create master ./hu.rws < /home/user/meinwoerterbuch.txt

Мне пришлось поставить encoding = utf-8, потому что текстовый файл закодирован в utf-8. Без него выкидывал ошибки.

Шаг 6. Создайте соответствующий ху.multi файл следующим образом:

add hu.rws

Шаг 7: Выберите венгерский в вашей проверке орфографии и запустите проверку орфографии.

1
19.06.2017, 12:47
3 ответа

I tried remounting but always rights (RO or RW) propagate automatically between separate mountpoints.

Если вы прочитаете очень длинную документацию вman mount(или продолжите поиск «только для чтения -» ), вы поймете, что это неверно при использовании монтирования с привязкой.

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

Я очень рад сообщить, что это сработало для меня, независимо от того, была ли исходная точка монтирования создана с использованиемbind.

Я предлагаю следующую последовательность.

mount -oremount,bind,ro /
mount -oremount,rw /

mount -o bind,rw / /mnt/rootfs

# OR - this should have the same effect as the last command
mount -t ubifs -o rw /dev/ubi0_1 /mnt/rootfs

findmntпокажет общее, эффективное состояние-roилиrw-каждой точки монтирования в отдельности.

2
27.01.2020, 23:33

У меня это работало в форме, показанной ниже (после загрузки / is rw, каталог, который я смонтировал второй точкой монтирования, - это /layers/rootfs ).

mount -o remount,ro /
mount --bind / /layers/rootfs
mount -o remount,rw /layers/rootfs

Цитата человека:

      Note that the filesystem mount options will remain the same as those  on  the  original
      mount  point, and cannot be changed by passing the -o option along with --bind/--rbind.
      The mount options can be changed by a separate remount command, for example:

             mount --bind olddir newdir
             mount -o remount,ro newdir
0
27.01.2020, 23:33

Другой ответ здесь(https://unix.stackexchange.com/a/371923/20104)не сработал для меня†, но он дал мне идею, которая помогла:

mount -o remount,bind,ro /
mount -t ubifs -o ro /dev/ubi0_1 /mnt/rootfs
mount -o remount,rw /mnt/rootfs

† под не работало Я имею в виду, что "настоящая" rootfs не читалась -только

0
02.03.2021, 14:06

Теги

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