LINUX.ORG.RU

Общее хранилище и стандарты

 ,


0

3

Привет, ЛОР.

Давай займемся стандартизацией десктопа, потому что больше некому. А речь пойдет вот о каком аспекте. Есть домашняя система с количеством юзеров более одного. В ёй торчит [допустим один] накопитель со свалкой. Задача: свалка должна быть доступна всем юзерам в равной мере; помимо этого, свалка должна шариться кусками c RO, а кусками с RW по сети, допустим, по CIFS.

Вопрос: в каком именно каталоге следует создавать точку монтирования общего накопителя? Обратимся же к стандартам.

В первую очередь у нас есть, разумеется, Filesystem Hierarchy Standard. Там все по-взрослому: LSB Workgroup, The Linux Foundation, копирайты-копирайты, третий десяток лет в разработке, ух. Поищем же, куда нам дозволяется присунуть свой HDD.

  • /media: «This directory contains subdirectories which are used as mount points for removable media». Не то.

  • /mnt: «This directory is provided so that the system administrator may temporarily mount a filesystem as needed». Не то.

  • Где-нибудь в /usr: «/usr is shareable, read-only data». Не то.

  • /var: «contains variable data files», по-русски это вроде и есть «свалка». Ну-ка, ну-ка.

    • /var/run: «These functions have been moved to /run». Хмм, ладно, посмотрим –
  • /run: «This directory contains system information data describing the system since it was booted». Эээмм. «Files under this directory must be cleared (removed or truncated as appropriate) at the beginning of the boot process». Мнээээммм…

Ладно, у нас же еще есть XDG Base Directory Specification. Буква «D» обозначает «Desktop», то есть мы зашли по адресу и сейчас нам помогут. Там всего пара экранов текста, в авторах четыре человека, среди которых мы можем видеть легендарного архитектора Поттеринга.

Отбросив всё насчет «user-specific», видим:

«There is a set of preference ordered base directories relative to which data files should be searched. This set of directories is defined by the environment variable $XDG_DATA_DIRS». О, дата файлс, клево, а куда совать-то?

«Such file should be installed to $datadir/subdir/filename with $datadir defaulting to /usr/share». А /usr у нас по FHS что? Правильно, read-only.

Да куда ж его присунуть-то?? Я джвадцать лет жду!

P.S. Граждане, я понимаю про «де-факто». Интересно было бы знать, куда кошерно смонтировать шареную помойку на ваш личный взгляд. Возможно, эта тема когда-нибудь даже превратится в опрос.

(Да просто смонтировать в /srv/svalka и раздавать самбой/NFS локальным юзерам, но лучше купить NAS, я всё понимаю бггг).

★★★★★

Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от firkax

Монтировать /mnt целиком это какая-то глупость, по-моему.

Стандартная практика, даже гайды всякие по установкам и чрутам используют /mnt в качестве точки монтирования. Ну и привычки, выработанные десятилетиями. Уже руки сами пишут /mnt, когда надо что-то очень временное смонтировать, а если он будет непустой, придётся заморачиваться.

Нет, разница между mnt и media совсем другая, а именно mnt это ручные монтирования с произвольным именованием, а media это директория для всяких гуи (и аналогичных) автоматизаций.

Это твоё личное видение, и оно отличается от видения FHS.

Моё тоже отличается, но в чуть меньшей степени. Да и гуи тут в принципе ни при чём, просто они считают, что помимо стандартных каталогов есть только removable media, а это не так. Почему в стандарте нет именно каталога для монтирования файлопомойки, общей для всех юзеров — фиг их знает — это так-то давно напрашивается, да и тема эта и на ЛОРе далеко не первый раз поднимается, и а англоязычных площадках постоянно всплывает. Сделали бы какой-нибудь /strg уже (от storage), ну или /share… Хотя есть уже /usr/share, и он для другого — путаница будет. В общем, из того, что есть, /media по духу ближе всего к нужному, потому что все эти флешки и внешние HDD, как правило, тоже монтируются для всех юзеров, а не для одного.

Альтернативы: /srv (но как-то странно выглядит, оно не для services же), /var (тоже как-то странно туда срать нестандартным), /mnt (бывает некоторые юзают, но это ломает привычки), ну и прям в корне можно как вариант. Но прям в корне оно адекватно выглядит, когда там один-два дополнительных диска монтируется, а если их количество сравнимо с количеством системных каталогов в корне, или даже больше, уже начинает выглядеть как срач…

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от firkax

Нет, разница между mnt и media совсем другая, а именно mnt это ручные монтирования с произвольным именованием, а media это директория для всяких гуи (и аналогичных) автоматизаций.

да? почему именно автоматизаций? ты перепутал наверное

дискета - канонический removable medium. по fhs (…for removable…), ее нужно понтировать в /media/.

но по твоей видимо нет

asdpm
()
Ответ на: комментарий от CrX

Стандартная практика, даже гайды всякие по установкам и чрутам используют /mnt в качестве точки монтирования. Ну и привычки, выработанные десятилетиями. Уже руки сами пишут /mnt, когда надо что-то очень временное смонтировать, а если он будет непустой, придётся заморачиваться.

«Гайды по установкам» это когда ОС ставишь через командную строку? Так это сингл-юзер режим работы, там допустимо. А так на живой системе никогда так не делал. mkdir перед mount сделать несложно.

Это твоё личное видение, и оно отличается от видения FHS.

В каком месте отличается? С цитатами в старте темы вполне совпадает, если их перевести на русский и осмыслить.

Почему в стандарте нет именно каталога для монтирования файлопомойки, общей для всех юзеров

Потому что есть /home с данными юзеров, а детали юзерской активности стандарт благоразумно не регламентирует. Термин «файлопомойка» сам по себе дурацкий и однобокий.

если их количество сравнимо с количеством системных каталогов в корне, или даже больше, уже начинает выглядеть как срач…

Десктопы с 10 слотами сата-слотами не особо распространены, так что тут можно не переживать.

firkax ★★★★★
()
Ответ на: комментарий от CrX

файлопомойки, общей для всех юзеров

Потому что в общем случае права на файлы не общие для всех. «Файлопомойка» - это приложение/сервис, который игнорирует эти права.

anonymous
()
Ответ на: комментарий от asdpm

ты перепутал наверное

Да нет, перепутал тут кто-то другой.

Потому что ты не пишешь для дискеты mount /dev/fd0 /media/my_diskette_name. Ты пропишешь ей запись в fstab с каким-то путём, пусть и в media, и будешь либо нажимать кнопку в гуи, либо писать в консоль mount /dev/fd0 (без остальных аргументов). Автоматизация и есть.

А /mnt это когда штатного метода монтирования для этого раздела нет, либо ты не хочешь его использовать.

firkax ★★★★★
()
Ответ на: комментарий от firkax

«Гайды по установкам» это когда ОС ставишь через командную строку? Так это сингл-юзер режим работы, там допустимо.

Не обязательно. Есть те же гайды по установке нового дистра из другого, без загрузки с флешки, там тоже используется. Да в принципе везде.


А так на живой системе никогда так не делал.

Всегда делали, и это даже упоминается в FHS:

Although the use of subdirectories in /mnt as a mount point has recently been common, it conflicts with a much older tradition of using /mnt directly as a temporary mount point.


В каком месте отличается? С цитатами в старте темы вполне совпадает, если их перевести на русский и осмыслить.

Нет, не совпадает. См. выше, ну и для /mnt:

This directory is provided so that the system administrator may temporarily mount a filesystem as needed.

filesyste, единственное число.

Ну и ни про какие гуи там вообще ни слово, о них FHS (в отличие от XDG) вообще не думает. /media придумали для монтирования всяких дискет, оптических дисков и прочего такого. А уж руками это делается, автоматически, или вообще через гуй — дело десятое.

Через гуй вообще иногда куда-то там в /run монтируется, есть и такой изврат.


Потому что есть /home с данными юзеров, а детали юзерской активности стандарт благоразумно не регламентирует. Термин «файлопомойка» сам по себе дурацкий и однобокий.

Ну понятно, что это не термин, а сленг. Имеются в виду файлы, доступные (как минимум для чтения) всем пользователям.

Кстати да, ещё одним из вариантов, которые я не упоминул, является создание /home/public или типа того. В принципе тоже рабочий вариант.


Десктопы с 10 слотами сата-слотами не особо распространены, так что тут можно не переживать.

Ну, с 6 довольно распространены, а ещё на одном HDD может быть несколько разделов. Но так да, если это 2-3 диска под «файлопомойку», то можно не переживать и лепить маунтпоинты для них прямо в корень. Ничего прям уж такого крамольного в этом нет.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от ALiEN175

Оно КАК БЫ ТОЛЬКО для сервисов, типа «юзаемое демонами», как я понимаю. См. «location of the data files for a particular service» и «Data that is only of interest to a specific user should go in that users’ home directory».

thesis ★★★★★
() автор топика
Ответ на: комментарий от firkax

не устраивала всякие накладки когда юзер захочет в своём home что-то переместить

Нууу приведенная спецификация XDG вся на этих соплях висит и норм ей. Но логика имеется, согласен.

thesis ★★★★★
() автор топика
Ответ на: комментарий от asdpm

да ну?

Ну да. «3.12. /mnt : Mount point for a temporarily mounted filesystem». Видишь? FilesysteM. Не filesystemS. «Смонтировался - поработал - отмонтировался», а не «создал каталог - смонтировался - поработал - отмонтировался - удалил каталог».

thesis ★★★★★
() автор топика
Ответ на: комментарий от CrX

Кстати да, ещё одним из вариантов, которые я не упоминул, является создание /home/public или типа того. В принципе тоже рабочий вариант.

На самом деле этот тред - замаскированная ловушка для переписи вендузятников!

thesis ★★★★★
() автор топика
Ответ на: комментарий от CrX

Всегда делали, и это даже упоминается в FHS:

Да я понял, но я то писал «не делал» в единственном числе - про себя. А так, ну это устаревшая практика от которой, судя по твоей же цитате

Although the use of subdirectories in /mnt as a mount point has recently been common

до людей дошло что надо отказываться.

Ну и ни про какие гуи там вообще ни слово, о них FHS (в отличие от XDG) вообще не думает. /media придумали для монтирования всяких дискет, оптических дисков и прочего такого. А уж руками это делается, автоматически, или вообще через гуй — дело десятое.

Прописывание в fstab (с опцией отложенного монтирования по запросу) это тоже своего рода автоматизация (я выше уточнял).

firkax ★★★★★
()
Ответ на: комментарий от firkax

Потому что ты не пишешь для дискеты mount /dev/fd0 /media/my_diskette_name. Ты пропишешь ей запись в fstab

не виляй жопой, запись fstab есть и для того что монтируется в mnt и для того что в /

разница между mnt и media совсем другая, а именно mnt это ручные монтирования с произвольным именованием, а media это директория для всяких гуи (и аналогичных) автоматизаций

нет. согласно эти стандартов, /media/ - это для тех medium (носитель), которые removable (съемные). и возможность автоматического монтирования здесь ни при чем. то есть /media как для дискет которые автоматически не могут, и для usb флеш которые могут монитироваться автоматически.

asdpm
()
Ответ на: комментарий от thesis

(1) Примонтировать любую FS и (2) «the content of this directory is a local issue», делай что хочешь, монтируй внутри что хочешь, куда хочешь, чтобы установить gentoo.

Если пропустить первый шаг, то никто не заметит.

anonymous
()
Ответ на: комментарий от thesis

Удалять не нужно, вдруг опять пригодится. У меня на ноуте в mnt 12 штук директорий например есть, с датами создания от 2020 до 2024 и время от времени переиспользуемых.

Но да, походу FHS предполагал что это для одного раздела. Ну, легаси, не надо учитывать.

firkax ★★★★★
()
Ответ на: комментарий от asdpm

не виляй жопой, запись fstab есть и для того что монтируется в mnt и для того что в /

Вот писать в fstab монтирования в /mnt как раз не нужно. А про / зачем ты написал я не знаю, тут всё норм.

то есть /media как для дискет которые автоматически не могут

Что значит не могут? В fstab указана конфигурация, тебе надо только отправить запрос. Да, тут можно по-разному эти слова понимать, но в данном случае так. А /mnt это когда ты полностью вручную выбираешь что и куда временно примонтировать.

firkax ★★★★★
()
Ответ на: комментарий от thesis

нет,монтируется в поддиректорию /mnt/. про монтирование в сам /mnt/ это странный высер и какое-то очень предвзятое прочтение fhs.

After installing a new disk, you should mount new filesystems by hand to be sure that everything is working correctly. For example, the command

$ sudo mount /dev/sda1 /mnt/temp

mounts the filesystem in the partition represented by the device file /dev/sd1a (device names will vary among systems) on a subdirectory [выделение мое] of /mnt, which is a traditional path used for temporary mounts.

два замечания:

  1. говорит temporary в конце фрагмента, но одновременно говорит «installing a new disk» (то есть установил, вероятно, в компьютер, на что намекает и скази-имя sda).

  2. «path used for temporary mounts» - в его понимании, temporary mounts внутри /mnt/ как и показано в примере.

из этой же книги:

sudo mount /dev/DEMO/web1 /mnt/web1

из этой же книги:

/media LS Mount points for filesystems on removable media

/mnt LSA Temporary mount points, mounts for removable media

L = Linux, S = Solaris, H = HP-UX, A = AIX

UNIX and Linux System Administration Handbook 4th ed. 2011

asdpm
()
Ответ на: комментарий от CrX

This directory is provided so that the system administrator may temporarily mount a filesystem as needed

may. Даже не «should». Ну и следующую фразу цитируй тоже:

The content of this directory is a local issue and should not affect the manner in which any program is run.

То есть в общем-то на усмотрение локального администратора. Если он сам не против монтировать в /mnt/temp вместо /mnt, стандарт ему не запрещает.

anonymous
()
Ответ на: комментарий от firkax

Да я понял, но я то писал «не делал» в единственном числе - про себя.

А, ок тогда. Не так понял контекст.

А так, ну это устаревшая практика от которой, судя по твоей же цитате до людей дошло что надо отказываться.

Ну вот в FSH не считают, что надо. А уж у себя каждый сам волен решать. Меня эта устаревшая практика устраивает, привык.

Так-то много всяких устаревших практик. Тот же /usr (на каталоги в котором в корне ещё и симлинки теперь) в современных линуксах нафиг не нужен — надо бы по хорошему вынуть из него всё в корень, чтоб /bin, /lib, /share было, без всяких лишних симлинков. Ну и один симлинк оставить — собственно /usr симлинком на / — для совместимости. Но традиции, легази и вот это вот всё.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от asdpm

То есть, ты ставишь на то, что рассматриваемый случай требует монтирования в /mnt? Или это только спор о подкаталогах?

thesis ★★★★★
() автор топика
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от asdpm

нет,монтируется в поддиректорию /mnt/. про монтирование в сам /mnt/ это странный высер и какое-то очень предвзятое прочтение fhs.

Ты, конечно, можешь делать как хочешь, и это не то чтобы не было распространено. Но здесь нет ничего предвзятого, так считают в FHS. Это может нравиться, может не нравиться, можно считать, что FHS дебилы писали — дело твоё. Но никакого предвзятого прочтения здесь быть не может.

CrX ★★★★★
()
Ответ на: комментарий от asdpm

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

thesis ★★★★★
() автор топика
Ответ на: комментарий от CrX

Ну ты предлагаешь (как и я, но я-то понятно) «создание /home/public»(c), а Public это ж вот где:

[thesis@thzpc]$ ls -1 /mnt/Users
Default
'Default User'
desktop.ini
Public
thesis
Администратор
'Все пользователи'

Здесь, кстати, мы видим смонтированный напрямую в /mnt раздел с десяточкой. Вот так я по мере сил и понимания соблюдаю FHS!

thesis ★★★★★
() автор топика
Ответ на: комментарий от CrX

/mnt используется для временного монтирования обычно именно сам по себе, а не подкаталоги в нём

чушь.

можешь делать как хочешь

Ну и привычки, выработанные десятилетиями

Я тебе показал выдержки из серьезной книги по UNIX, где монтируется в /mnt/поддиректори.

и это не то чтобы не было распространено

распространено монтировать в поддиректорию mnt, монтировать в сам mnt - не распространено.

я туда всякие iso монтирую, чтоб что-то сделать и отмонтировать сразу

из документации red hat:

Ensure that the directory /mnt/iso exists and nothing is currently mounted there. Mount the downloaded image.

mount -t iso9660 -o loop path/to/image.iso /mnt/iso

поддиректория, как видишь.

так считают в FHS

врать не надо.

в FHS не говорится, что монтировать нужно в сам mnt, а не в поддиректорию. там нет таких слов. в одной из сносок FHS упоминается /mnt/cdrom

Стандартная практика, даже гайды всякие по установкам и чрутам используют /mnt в качестве точки монтирования

гайды так делают, чтобы сократить текст, чтобы не добавлять в инструкцию пункт про mkdir /mnt/subdir, в документации red hat такие примеры тоже есть, это делают для краткости изложения и чтобы захламлять объяснение малосущественными деталями, предполагается что, что читатель не совсем дурачок.

видимо твои «привычки, выработанные десятилетиями» есть результаты бездумного чтения гайдов, вместо нормальной вендорской документации, нормальных книг или самостоятельного применения здравого смысла.

asdpm
()
Ответ на: комментарий от thesis

а Public это ж вот где

А, вон оно что… Не знал. Просто видел и такое решение. В линуксах, естественно. Возможно, оно родом из винды, а может и наоборот туда откуда-то ещё приехало.

CrX ★★★★★
()

Из документации по Archlinux:

File systems can also be mounted with systemd-mount instead of mount. If the mount point is not specified, the file system will be mounted at /run/media/system/device_identifier/. This allows to easily mount a file system without having to decide where to mount it. See systemd-mount(1) for usage and more details.

https://wiki.archlinux.org/title/File_systems#Mount_a_file_system

ALiEN175
()
Ответ на: комментарий от asdpm

чушь.

Очень аргументировано…

Я тебе показал выдержки из серьезной книги по UNIX, где монтируется в /mnt/поддиректори.

И что дальше?

распространено монтировать в поддиректорию mnt, монтировать в сам mnt - не распространено.

Неверно. Нынче распространено и то и другое. Монтирование самого /mnt — это более классическая практика, в FHS следуют ей. Но да, нередко создают и подкаталоги, кто ж запрещает-то. И да, в том числе это может быть и в серьёзных книжках по Unix. Одно другого не отменяет и уж тем более никакой предвзятости в этом нет.

врать не надо.

в FHS не говорится, что монтировать нужно в сам mnt, а не в поддиректорию. там нет таких слов.

Прочитай внимательно, что там написано. Ещё раз. А потом может ещё раз, может с пятого раза дойдёт.

гайды так делают, чтобы сократить текст, чтобы не добавлять в инструкцию пункт про mkdir /mnt/subdir, в документации red hat такие примеры тоже есть, это делают для краткости изложения и чтобы захламлять объяснение малосущественными деталями, предполагается что, что читатель не совсем дурачок.

Нет, не поэтому, а потому что это действительно стандартная практика. Но ты можешь жить в мире, где существует только два мнения — твоё и неправильное.

видимо твои «привычки, выработанные десятилетиями» есть результаты бездумного чтения гайдов, вместо нормальной вендорской документации, нормальных книг или самостоятельного применения здравого смысла.

Как тебя корёжит-то. Просто подумай на досуге, почему так происходит всего лишь из-за того, что не весь мир делает так, как привык ты. Всё это есть в нормальных книгах, и так делают многие с применением в том числе здравого смысла. Но я понимаю, что после прочтения одной «серьёзной книжке по Unix» у некоторых возникает ощущение, будто это священное писание, а всё, что ему противоречит, записывается в разряд еретических ученй. Удачи с этим.

И нет, доказывать тебе, что один вариант лучше другого я, естественно, не буду и не собирался. Потому что он ни один не лучше — дело предпочтений и привычек, не более. Если тебе где-то в моих словах показалось, что я считаю, что никто не должен создавать подкаталоги в /mnt, иначе бог накажет — то тоже перечитай ещё раз. Кому как удобнее, так тот и делает.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Да кстати, в юниксах принято share/shared для общего между юзерами и pub для публикации за пределы компа, а вот public не было обычно. С другой стороны, public_html был (это опять про публикацию за пределы).

firkax ★★★★★
()
Ответ на: комментарий от CrX

Я тут посмотрел википедию и узнал, что FHS это оказывается местечковая линуксовая штука, а вовсе не глобальный стандарт, рассчитанный на юниксы, как я думал раньше. Тогда всё проще: монтирование в /mnt саму по себе это пережиток начала 90-х, когда линукс был хобби-ядром Линуса, и ставили его в основном чтобы поэкспериментировать. Ну а потом не осилили исправить, в линуксах ведь всегда каша получается.

Так что да, в серьёзных местах скорее всего почти никто /mnt как точку монтирования и не использовал.

firkax ★★★★★
()
Ответ на: комментарий от ALiEN175

Я уже выше писал про установку системы: это сингл-юзер режим ради одной единственной задачи (установить систему) и там очевидно, параллельных других задач не подразумевается. В остальных случаях так делать неразумно. В примерах могли для краткости сократить.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Выше я ссылку кидал про монтирование. И там тоже внезапно /mnt.

В примерах могли для краткости сократить.

Возможно. Но с другой стороны, я даже нигде упоминания не нашел про создание подкаталогов в /mnt.

ALiEN175
()
Последнее исправление: ALiEN175 (всего исправлений: 1)
Ответ на: комментарий от asdpm

тебе нужно монтируя в /mnt c /dev/abc скопировать файлы на 1.2.3.4:/xyz.

Нет, мне не нужно. Ни с вилянием жопой, ни без.

Но в чём здесь проблема? Монтировать, затем scp.

Но ещё раз: мне плевать, что и куда ты монтируешь, и ещё более плевать, как по твоему «правильно». Я лично ничего против подкаталогов в /mnt не имею. Особенно у других. Просто не надо врать, что такой практики не существует, или что в FHS написано что-то другое, а тем более обвинять в предвзятости.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от ALiEN175

В вики арча при установке системы раздел монтируется в /mnt без всяких подкаталогов.

В разных примерах с монтированием тоже везде используется только /mnt

я даже нигде упоминания не нашел про создание подкаталогов в /mnt.

«везде»?

«даже нигде упоминания»?

может быть дурачок просто?

man mount.8 (linux):

mount -t auto -o’X-mount.auto-fstypes="noext2,ext3"'  /dev/sdc1 /mnt/test

UNIX and Linux System Administration Handbook 4th ed. 2011:

$ sudo mkdir /mnt/web1
$ sudo mount /dev/DEMO/web1 /mnt/web1

Red Hat Enterprise Linux 9. Creating, modifying, and administering file systems:

mount --types nfs4 host:/remote-export /mnt/nfs

ArchWiki:

# mkdir /mnt/ftp
# curlftpfs ftp.example.com /mnt/ftp/ -o user=username:password
asdpm
()

Да куда ж его присунуть-то??

Присунь в /mnt.

Присовывать в корень не советую. У меня как-то была файлопомойка примонтирована в каталог /data посредством автомаунта. Если вдруг с диском (или сервером) какие-то неприятности, то на клиенте всё висит и тупит, работать было невозможно. Невозможно было ни запустить ещё одно окно с псевдотерминалом, ни открыть новый таб в существующем окошке. При монтировании в /mnt/data всё висит и тупит если пытаешься зайти в каталог /mnt, а если не лезть в /mnt — то можно работать (разбираться с проблемой).

Кстати, оказалось полезно монтировать помойку в то же самое место и на сервере, и на клиенте. Не надо помнить на каком компе ты сейчас находишься, помойка всегда в /mnt/data, а торренты всегда в /mnt/transmission.

debugger ★★★★★
()