Монтування дисків та ієрархія каталогів у ОС Linux
Вітаю!
Після досить значної перерви все-таки проект ще раз "ожив". Викладую чергову статтю з цього циклу.
Всі попередні статті мали на меті познайомити вас із ОС Linux та надихнути на встановлення цієї системи, хоча б з налаштуваннями за замовчанням. Наступна стаття - перша із "серйозних", які будуть розказувати про особливості, налаштування, структуру, оптимізацію ОС та програмного забезпечення. Як і завжди, стиль викладення орієнтований на те, що користувач не прагне навчитися "клоцати на потрібні кнопки", а більш глибоко вивчити принципи побудови ОС для ефективнішої рботи з нею.
Отже, сьогодні розмова піде про монтування розділів та ієрархію каталогів у ОС Linux
Передмова
Після того, як ви завантажились у систему, і трохи з нею освоїлись, перше, що кидається в очі при перегляданні того, які папки лежать на диску, то це те, що на верхньому рівні знаходиться купа каталогів із незрозумілими назвами, замість звичних для користувача Windows, дисків "C" "D" і т.п. Це одна з тих переваг Linux і *nix систем взагалі, через яку так важко для нього писати різного роду зловмисний софт. (Взагалі кажучи, у гілки WinNT, до якої належить Windows NT3/NT4/2000/XP/Vista, як і у решти Unix-подібних систем структура каталогів за своєю суттю приблизно така ж, правда сильно спотворена, але оскільки користувачі DOS і Win9x уже були звикли до дисків A,C,D , то, така структура була просто замаскована під старий формат, який використовувався ще у M$DOS) Як відомо, корпорація Microsoft у свій час так і не змогла добитися повноцінної роботи не-адміністраторів у своїй ОС, і рекомендувала працювати користувачам в ОС під обліковими записами адміністраторів. В результаті вийшло так, що звичайний користувач має право на запис у всі гілки реєстру і у всі каталоги, в тому числі і системні. Само собою, що при такій системі безпеки ОС нагадує відкриті ворота, які стереже злий собака - антивірус. І тут нсаме собою напрошується питання: чому б ці ворота не закрити і не забрати звідти бідну тварину? Чому б не дозволити користувачу доступ тільки до певних каталогів, сервісам - до інших (тільки їх робочих каталогів), а під записом адміністратора проводити тільки необхідні операції по налаштуванню системи? У Linux, *BSD та їм подібним системам так все і зроблено. Звичайним користувачам дозволений запис тільки у свій домашній каталог та каталог із тимчасовими файлами, користувача, з-під облікового запису яких запускаються різні серверні програми (наприклад, користувач apache, з-під якого запускається web-сервер apache), мають доступ до строго визначених каталогів. Крім того, є можливість запуску програм у так-званому chroot-оточенні (щось схоже на віртуальну машину), при використанні якого програма, запущена у такому оточенні просто фізично не має доступу до файлів, з якими вона не працює. Загалом, модель безпеки там досить таки складна і, при бажанні, про неї треба читати вже трохи іншу літературу.
Трохи про філософію підключення логічних дисків.
Основний диск, на якому і знаходяться всі ті каталоги, які можна побачити на самому верхньому рівні називається кореневим розділом, і позначається як "/" Його ви і бачите. Решта дисків (давайте називати їх правильно, "розділи") підключаються досить незвичним для Windows-користувача чином. Вони монтуються (пілключаються) у каталоги, які знаходяться на кореневому розділі. Як відомо, майже будь-який шматок інформації у Лінуксі являє собою файл. Так існують файли процесів, пристоїв, як то звукової карти, вінчестера, по одному файлу на кожен його розділ, файл монітора, відеокарти, мишки, клавіатури і т.д. Усі файли пристроїв знаходяться у каталозі "/dev" , і, скажімо, вивід звуку, з точки зору музичного плеєра, зводиться до запису у файл звукової карти, ввід з клавіатури - читання файлу клавіатури і т.д. Проте, було б досить незручно, якби ви напряму спробували писати у файл розділа вінчестера, чи читати звідти. Тож ця проблема була вирішена досить цікавим способом. Розділ, для зручного доступу до нього, монтується у папку, являючи, таким чином, структуру підпапок для папки, у яку був підмонтований.
ПРИМІТКА для Windows-користувачів: уявіть, що те, що ви називаєте "диск С", "диск D" і т.п. - просто каталоги (по суті, так воно і є). Тоді каталоги Windows, Program Files, і т.д. , являтимуться просто підкаталогами для каталога "Диск C".
Загалом, монтувати розділи диска можна у буть-яку папку. Наприклад у Gentoo Linux у папку /usr часто підмонтовують окремий розділ, а у папку /usr/portage/distfiles, яка є підпапкою для /usr - теж, бо саме там знаходяться всі архіви пакетів, які будуть встановлені у системі. Ієрархія та призначення каталогів З метою безпеки та кращої упорядкованості системи, і, як наслідок, спрощення її розуміння, у Unix-подібних системах була реалізована ієрархія каталогів згідно стандарту POSIX (правда, жодна ОС із цього сімейства не має повної сумісності зі стандартом POSIX). Таким чином, можна лагко знайти потрібний файл, так як власне файли програм містяться в окремому каталозі, бібліотеки - в іншому, файли, які використовує програма (іконки, допоміжні скрипти, шрифти і т.п.) знахояться теж в окремому каталозі. І всі ці каталоги досить чітко визначені та впорядковані.
Далі наводиться список основних та найбільш цікавих каталогів, які містяться в ОС:
- /boot - каталог, у якому знаходяться ядро файли, необхідні для його завантаження та файли завантажувача
- /bin - каталог з програмами, необхідними для запуску системи (не можна монтувати окремим розділом)
- /etc - каталог із файлами конфігурації програм (не можна монтувати окремим розділом)
- /dev - каталог із файлами пристроїв (не можна монтувати окремим розділом)
- /home - каталог із домішніми каталогами користувачів, де знаходяться всі користувацькі дані та налаштування. Зазвичай, з міркувань безпеки, звичайні користувачі можуть писати тільки у домашній каталог користувача /home/user_name де user_name - ім'я користувача)
- /lib - каталог із системними бібліотеками (не можна монтувати окремим розділом)
- /media - каталог, куди, зазвичай, монтуються різні пристрої типу CDROM, Flash Card і т.п.
- /mnt - має аналогічне призначення (зазвичай, використовується тільки старими системами)
- /opt - каталог, куди встановлюються пропрієтарні програми, та деякі інші пакети (наприклад, пакети, пов'язані з Java, іноді Firefox, пропрієтарні драйвера і т.п.)
- /proc - каталог, де містяться всі файли процесів (не можна монтувати окремим розділом)
- /root - домашній каталог адміністратора (root)
- /sbin - каталог із програмами, які використовуються для операцій із системою (перевірка, форматування розділів, монтування розділів, керування парпметрами мережевої карти, завантаження модулів ядра і т.п.) (не можна монтувати окремим розділом) /tmp - каталог із тимчасовими файлами
- /usr - каталог, куди встановлюються всі програми, крім системних. Має приблизно таку ж ієрархію підкаталогів, як і "/", тобто там є каталоги /usr/bin /usr/lib і т.п. Проте, на відміну від BSD-систем, у Linux немає каталога /usr/etc, де, по логіці повинні були б зберігатися файли налаштувань для програм. Всі конфігураційні файли тут містяться в /etc
- /var - каталог, який містить часто змінювані файли (змінні, кеш програм, поштові ящики для поштових серверів, log-файли і т.п.)
- /var/log - каталог із log-файлами. На відміну від деяких інших ОС логування у Linux ведеться дуже детальне. Наприклад, подивившись файл /var/log/messages можна побачити багато корисного з того, що відбувається у вашій системі, а у /var/log/dmesg (або просто команда dmesg з консолі) можна подивитися на системні повідомлення ядра ;)
Кілька приємностей
Якщо у каталог /home підмонтувати окремий розділ вінчестера, то при перевстановленні системи всі користувацькі дані та всі(!) налаштування користувачів будуть збережені. Тоді, просто, при встановленні системи не форматуйте цей розділ, а просто призначте точку монтування /home. Далі додаєте такого ж користувача, який був у попередній системі і, вуаля, завантажуєтесь із попередніми налаштуваннями, які у вас були до того (навіть, зі старими шпалерами на робочому столі).
ПРИМІТКА. Може бути, що ID старого і нового користувача не будуть співпадати, і система не захоче пускати вас. Тоді зайдіть у систему з-під адміністратора (root) і змініть власника папки /home/user_name, і всіх її підпапок. З консолі це робиться так: chown -R ваш_новий_користувач /home/user_name
Якщо у вас у якійсь папці міститиметься багато маленьких файлів (наприклад, досить велика бібліотека), можна буде підмонтувати у цю папку окремий розділ, відформатований у файловій системі reiserfs. Вона адаптована для того, щоб працювати з великою кількістю маленьких файлів.
Якщо у вас буде кілька Linux дистрибутивів на одному комп'ютері, має сенс зробити /boot окремим розділом, де будуть знаходитись всі ядра систем. Тоді конфігурування завантажувача буде значно спрощене.
Іноді для прискорення роботи системи, у деякі папки підмонтовуються віртуальні розділи, які при завантаженні створюються в оперативній пам'яті комп'ютера. Часто каталоги /usr , /var , /tmp та /opt монтуються окремими розділами. Якщо вільне місце на кореневому розділі (де знаходиться "/") закінчиться, то система не завантажиться. Якщо у цьому буде винна велика кількість програм, які ви встановили - то буде досить неприємно (тому, /usr /opt - окремими розділами), та і якщо багато пошти чи, скажімо, місця під сайтами чи об'єму баз даних ваших клієнтів, у яких міститься пошта, сайти чи бази даних на вашому сервері (/var - часто монтується окремим розділом на поштових серверах та хостинг-серверах) - теж. Монтування вказаних каталогів окремими розділами елегантно вирішує цю проблему.
Епілог
Думаю, у багатьох з тих, хто прочитає цю статтю все-таки виникне бажання перевстановити систему з новою розбивкою диска на розділи. З цього приводу можна переглянути таке:
- http://www.gentoo.ru/node/12879
- http://forum.oszone.net/showthread.php?t=78227
- http://mandriva-ru.blogspot.com/2007/05/blog-post_18.html
- http://mandriva-ru.blogspot.com/2008/03/ii.html
- http://libc6.blogspot.com/2007/04/disk-patitioning-for-installation.html
Хоча, підкреслюю, не варто тупо копіпастити (передирати) те, що написано на даних сторінках, бо розбивка - диктується не тільки потребами та роллю комп'ютера, а ще й власним смаком користувача.
PS Якщо з'явилося непереборне бажання щось відмонтувати чи примонтувати, скористайтеся командою "mount" з консолі ;) . Також RTFM: man mount (теж виконується у конолі)
PPS До речі, каталог - теж файл, який містить список файлів і каталогів, які у ньому містяться. Список цих файлів і каталогів отримується привиконанні файла каталога. Для цього на нього повинні бути виставлені втрибути дозволу на виконання для користувача, який буде відкривати каталог. (про атрибути файлів - у наступній статті)
Зовнішні посилання:
- http://www.opennet.ru/man.shtml?topic=mount&category=8 [рос]
- http://www.ss64.com/bash/mount.html [англ]
- http://www.swerdna.net.au/linhowtontfs_man.html [монтування NTFS англ]
з повагою CosmonauT
Стаття написана із використанням GNU/Emacs-23.0.9998.1
- блоґ CosmonauT
- 568 переглядів












Дякую, друже, за
Дякую, друже, за статтю!
Дійсно, коли людина наважується зазирнути у "невідоме" - у світ Лінукса одразу натикається на те, що структура файлової системи зовсім інакша, ніж у віндовсі. І файли свої в Лінуксі неможливо пхати у будь-яке місце файлової структури. З-під адміністратора в Лінуксі сидіти якось не прийнято... Це щось радикально нове. (пригадую свій шок "Тут немає диску C:!!!" :-D )
І хоч спочатку було незвично, далі стаєш розуміти, що це одна з тих причин, чому в Лінуксі не доводиться чути отого всім відомого антивірусного верещання ;-) .
Брате мій, тобі пощастило родитися в час позитивних змін... © Гайдамаки
Ще було б непогано, якби
Ще було б непогано, якби хтось вігукнувся на статтю із тих, кому подібна штука дійсно треба, на рахунок зрозумілості у написанні. Бо я по-троху все далі й далі відходжу від способу мислення починаючого користувача )))
(аж страшно, стало б, якби на себе подивився пару років тому. недавно Emacs i ION пересів
)
Хотілось би знати як відкрити
Хотілось би знати як відкрити мені розділ вінчестера. Система показує що він є але як йго відкрити незнаю і як його візуально бачити я розбив вінт на 3 розділи перший / другий mnt/windows і третій /Home так от в системі я бачу в мій компютер файлову систему це розділ / потім на робочому столі домашній каталог це тип /home а от той що має 190 гб тип mnt/windows я небачу і незнаю як його відкрити хоча команда показує що він змонтований
У консолі введи команду ls
У консолі введи команду
побачиш список файлів на цьому розділі. Якщо не з консолі, а у графічному режимі, то, якщо у тебе Gnome, зайди на файлову систему (nautilus) знайди теку mnt, а в ній windows. У KDE у dolphin’і - так само.
Брате мій, тобі пощастило родитися в час позитивних змін... © Гайдамаки
Дякую за те що відписав
Дякую за те що відписав здається розібрався я знайшов теку з тим диском у mnt але воно закрите лише для доступу адміна, як ненапрягаючись можна зробити щоб він був доступним для всх пользователей
зайди у термінал:
зайди у термінал: gnome-terminal (Alt+F2 - запуск програм), у ньому команда
відкриється на редагування з правами адміна файл /etc/fstab. У ньому знаходимо рядок, в якому є напис "/mnt/windows" він буде мати приблизно такий вигляд:
/dev/sda2 /mnt/windows ntfs user,auto,exec,utf8[та/або інші параметри підключення файлової системи] 0 0Нас цікавить отой фрагмент, який я виділив. У нього допиши ",uid=1000,gid=1000,umask=0000" вийде щось таке:
потім вертайся у програму термінала, яку на початку ми відкрили і пишемо
Перевіряємо. Має працювати.
Брате мій, тобі пощастило родитися в час позитивних змін... © Гайдамаки
Дякую за те, що допомагаєш
Дякую за те, що допомагаєш мені і вибач що ще турбую. Твою відповідь я прочитав аж сьогодні а вчора я зайшов як рут на комп і зайшов в цю папгку що визначає даний диск у мнт і в правах включив для всіх пользователей але мене інтересує якщо можеш відповісти як мені зробити, щоб даний розділ диску був не ext3 а ntfs І відформатувати його. Просто в мене нема ніякого віндовса на компі бо я при встановленні Лінукса видалив всі розділи і створив наново і 320 вінчестер я розбив на 50, 50 і 197 гб. Оце перший ext3 (/), другий ext3 (mnt/windovs) 197 гб і третий теж на 50 гб ext3 (/home).Тепер я хочу ставити через віртуал бокс віндовс і цей розділ на 197 гб хотів би віддати для віндовса чи мені обовязково його переформатовувати на ntfs чи необовязково і як мені можна зробити його щоб він відображався на панелі так як окремий диск наприклад як файлова система чи то може я просто до віндовза за сильно привик. І взагалі як наприклад у вітуал бокс показати що я створюю розділ для віндовса іменно на цьому диску чи може я просто не розумію суті створення віртуального розілу. Як що можеш допоможи мені в цьому. В мене Мандріва Фрі 2009 інтернету в дома нема в даний момент я пишу з роботи. Наперед дякую
Для віртуалбокса не
Для віртуалбокса не обов’язково створювати розділ (але можна і створювати :-) ). Файлова система - не повинна бути NTFS. Бо писатиме і працюватиме з файловою системою лінукс. Віртуалбокс - це (як я собі уявляю) перекладач з "відовської мови" на "лінуксову".
Тобто форматувати - не треба. Сміливо створюй віртуальну ОС.
Брате мій, тобі пощастило родитися в час позитивних змін... © Гайдамаки
Трохи прокоментую оцю ось
Трохи прокоментую оцю ось стрічку
/dev/sda2 /mnt/windows ntfs user,auto,exec,utf8,uid=1000,gid=1000,umask=0000[та/або інші параметри] 0 0
Параметри uid та gid (User ID, Group ID) визначають користувача та групу, від яких буде монтуватися диск, umask - досить цікавий параметр, який є "дзеркальним" до прав доступу. Тобто, якщо права у вас у цифровому форматі 777, то umask буде 000
Отже, при встановленні umask=0000, виставляти UID і GID - не обов'язково.
При встановленні ОС на віртуалбокс можна встановлювати її не на реальний, а на віртуальний жорсткий диск. тоді він буде просто файлом на реальному вінчестері. Зовсім не обов'язково форматувати окремий розділ під NTFS при такому підході.
PS Що означає четвертий нуть - я не пам'ятаю.
PPS Взагалі, лінукс на NTFS писав, наскільки я знаю, не дуже добре. Так що я не практикував запис на накі розділи. А значить, наприклад, umask можна виставити рівним 0222. Тоді права для доступу до підмонтованого розділу будуть 555, тобто read,execute для власника read,execute для групи read,execute для решти.
Зараз на NTFS уже пише без
Зараз на NTFS уже пише без бубна. Глюків я поки не спостерігав, хоча варто сказати, що я мало працюю з NTFS, але коли працюю, то запис відбувається ніби нормально. (копіювання на NTFS)
Брате мій, тобі пощастило родитися в час позитивних змін... © Гайдамаки
Додати новий коментар