Що /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 знаходиться у файловій системі лише для читання.
Ще багато нюансів наведено на сторінці керівництва.