[РЕШЕНО] mount -o loop использование внешнего файлового ресурса с сохранением прав на файлы

Существует такая проблематика - есть удаленный фтп, поддерживающий ftp, sftp, davfs. Их монтирование в локальный директорий, в зависимости от того, какая файловая система развернута на удаленном фтп, может калечить установленные права на файлы. Существует вариант создания на этом удаленном фтп файла образа диска и его монтирования через mount -o loop. Такова теория.

Область применения? - когда надо обспечить полноценную работу с файлами на сервере, используя примонтированные удаленные и ущербные файловые источники типа ФТП.

Общий поход -
1. фтп хранилищие монтируем в локальный директорий. У нас будет выбор - более быстрая работа с файлами при более высокой загрузке процессора против медленной работы с меньшими потребностями процессора, расклад примерно как см. спойлер в п. 2

Выбранный способ монтирования прописываем в fstab, соотв. монтируем удаленную файловую систему в /место/где/.
2. создаем файл, который потом будет использован как диск

dd if=/dev/zero of=/место/где/будет.файл bs=5120 count=1000000

эта команда неэффективна, используется только для оценки скорости работы того или иного способа монтирования. Правильная и быстрая команда
[code]
truncate -s 80G /место/где/будет.файл
davfs 11.518 s, 445 MB/s
ftp 49.671 s, 103 MB/s
Результаты могут ввести в заблуждение. Да, прямое копирование медленнее, в 4-5 раз. Однако с операциями монтирования\размонтирования, форматирования все ровно наоборот и даже хуже. В итоге эксплуатирую как ftp

форматируем нужную файловую систему, например ext3 -
mkfs.ext3 /место/где/будет.файл

если хотим это все "как блочное устройство", то -

losetup /dev/loop0 /место/где/будет.файл
mkfs.ext3 /dev/loop0

для желающих можно сэкономить 5% резервных блоков -
tune2fs -m 0 /место/где/будет.файл

Процесс форматирования 80гб в случае davfs может быть довольно продолжительным, десятки минут против единиц секунд при ftp (не забыть сказать "y" на предупреждение, что мы пытаемся отформатировать не блочное устройство. Кстати, можно все это "собрать" и как блочное устройство)

3. прописываем в fstab автомонтирование созданного раздела (вариант "не как блочное устройство")
/место/где/будет.файл /куда/смонтировать/это/дело  ext3  defaults 0 0

4. монтируем это дело
mount /место/где/будет.файл

Вцелом все. Теперь можно насладиться разницей в результате команд chown -R user:user к файлам /куда/смонтировать/это/дело и к /место/где/
wau
Существует такая проблематика - есть удаленный фтп, поддерживающий ftp, sftp, davfs. Их монтирование в локальный директорий, в зависимости от того, какая файловая система развернута на удаленном фтп, может калечить установленные права на файлы.
Если вы для себя уже нашли приемлемое решение, то так вам и надо, и спорить здесь, в общем-то, не о чем. Я просто "подумаю вслух":
Если вы нашли в использовании удаленной ФС проблемы, то либо у вас какая-то слишком специфическая задача, либо вы это дело неправильно используете. Потому что сетевые ФС используются многие десятки лет во всем мире. И если бы действительно были какие-то непреодолимые проблемы с правами в подобных ФС, то за десятки лет их уж точно решили бы на уровне используемого протокола.
Поэтому склоняюсь к тому, что у вас просто слишком специфические условия.
ничего специфического - сведений о файловой системе на удаленном хранилище нет вообще никакой, например, там ntfs. Речь не идет о непреодолимой проблеме, речь идет о получении нужного результата (нормальная линукс-файловая система) невзирая на имеющиеся неконтролируемые ограничения внешнего сервиса.
 
Зарегистрироваться или войдите чтобы оставить сообщение.