Що /etc/mtab
в Linux?
Для чого це потрібно і переваги його наявності?
man 5 mtab
.
Що /etc/mtab
в Linux?
Для чого це потрібно і переваги його наявності?
man 5 mtab
.
Відповіді:
% файл / тощо / mtab / etc / mtab: символічне посилання на ../proc/self/mounts % file / proc / mounts / proc / mounts: символічне посилання на self / mounts %
/etc/mtab
є механізмом сумісності. Десятиліття тому в Unix не було системного виклику для зчитування наявної інформації про встановлення. Натомість від програм, які монтували файлові системи, очікувались спільно та добровільно підтримувати таблицю /etc/mtab
того, що було встановлено куди.
З зрозумілих причин це не був ідеальним механізмом.
Linux отримав поняття "procfs", і однією з речей, яку він отримав, була підтримувана ядром версія цієї таблиці у вигляді mounts
псевдорегулярного файлу. "Системний виклик" для зчитування інформації про змонтування з ядра став послідовністю відкритого читання-закриття проти цього файлу з подальшим розбором результату від людини, читаної до машиночитаної форми (те, що має певні вилови, як ви видно із звітів про помилки, що минули понад півтора тижня тому).
/etc/mtab
Таким чином, в народі стало символічним посиланням на це /proc/mounts
, дозволяючи програмам, які з таким провідником провіднили це ім'я, постійно читати таблицю монтування з цього файлу, що програмам, які монтували та відключали файлові системи, більше не потрібно явно робити що-небудь, щоб бути в курсі оновлень. (Деякі з них все-таки будуть, хоча /etc/mtab
виявляться звичайним файлом, що можна записати. І є кілька найважливіших випадків, коли нормалізована інформація, у mounts
якій бракує всіх матеріалів, що не мають ядра, не зовсім необхідна; хоча вони не переважають загальні проблеми з /etc/mtab
.)
Кожен процес може в даний час має свій індивідуальний вид , що встановлений, і є , як наслідок тепер окремі mounts
файли для кожного процесу в PROCFS, власна таблиця кожного процесу є доступним для нього через self
символічне посилання , як self/mounts
і /proc/mounts
є також тепер сумісністю механізм. (Цікаво, що ні поточний процес, mounts
ні формат mounts
не задокументовані в поточному doco Linux, хоча аналогічний mountinfo
псевдорегулярний файл є.)
SunOS / Solaris має подібний механізм. /etc/mnttab
Файл насправді є одним файлом файлової системи, і на додаток до читання таблиці, з допомогою дескриптора відкритого файлу в цей файл, з read()
системним викликом, можна спостерігати за змінами монтажу точки з poll()
і отримати різні додаткові фрагменти інформації з ioctl()
.
У HP-UX /etc/mnttab
так само є ім'я файлу, але, як і у версії 11, це був звичайний файл, вміст якого спільно підтримувався програмними програмами системи.
AIX не експортує текстову таблицю, читану людиною, яку програми повинні розбирати, і не існує еквівалентного файлу. Аналогічно, BSD мають повноцінні системні виклики getfsstat()
на FreeBSD та OpenBSD для програм, щоб отримати таблицю монтажу з ядра в машиночитаному вигляді, не перекладаючи його на прочитувану людиною проміжну форму.
/proc/self/mountinfo
з \ r у шляху монтажу . №35137. Помилки GNU coreutils./proc/mounts
. Документація / файлові системи / proc.txt . Linux 5.1.fstab-decode
. Помилка # 567071. Помилки Debian.getfsstat()
. Посібник із системних дзвінків FreeBSD . 2016-12-27.mtab(5)
старі часи: man.cat-v.org/unix_8th/5/mtab .
/proc/mounts
, але /proc/self/mounts
й сам механізм сумісності; він відображає лише підмножину інформації, доступної в /proc/self/mountinfo
. Формат /proc/self/mounts
документально зафіксований proc(5)
як ідентичнийfstab(5)
Відповідно до man mount
:
Програми монтують та додають традиційно підтримуваний список поточно встановлених файлових систем у файлі / etc / mtab. Цей реальний файл mtab все ще підтримується, але в сучасних системах Linux краще зробити його посиланням на / proc / mounts замість цього, оскільки звичайний файл mtab, що підтримується в просторі користувачів, не може надійно працювати з просторами імен, контейнерами та іншими розширеними функціями Linux.
На монтажі без запису в /etc/mtab
:
-n, --no-mtab
Монтувати без запису в / etc / mtab. Це необхідно, наприклад, коли / etc знаходиться у файловій системі лише для читання.
Ще багато нюансів наведено на сторінці керівництва.