Чи можливо кореневі та домашні розділи мати різні файлові системи та розташовуватися на окремих фізичних пристроях?


10

Уявіть, що я відформатував корінь із файловою системою ext3 на окремому розділі, який, можливо, існує на жорсткому диску SATA та домашній каталог на іншому розділі btrfs, який існує на SSD-диску Intel.

Я завантажив файл з Інтернету і тимчасово зберег його в /tmp(у кореневій файловій системі), після чого вирішив перенести його у свій домашній каталог (другий розділ).

Я можу відчути болісний процес, який відбувається на задньому плані, щоб зробити так просту mvкомандну роботу.

Отже, по-перше, чи можливо для кореня та дому існувати різні файлові системи? По- друге, припускаючи , що відповідь на попереднє запитання було «так», то як операційна система керує всім , що перехід від ext3до , btrfsа потім з використанням різних драйверів пристроїв для різних типів дисків (HDD і SSD)?


3
Це робиться шарами. Шар файлової системи вбудований над рівнем блокового пристрою. Ви можете використовувати будь-яку відповідну файлову систему в шарі файлової системи. Ви можете використовувати будь-який відповідний блок пристрою в цьому рівні пристрою блоку. Кожна точка монтажу може мати власну файлову систему та пристрій.
тирса

@sawdust, це дуже цікава річ, яку ви вказали, шар файлової системи та блок пристрою. Як вони співвідносяться? Будь-які читання будуть корисними.
Карім Манауїл

Не знаю, ЩО багато про файлові системи, але я припускаю, що процес не був би таким, чим відрізняється від копіювання файлів на зовнішній диск FAT32
Blaine


Чому ви все ще використовуєте ext3 у 2017 році, коли так просто оновити до ext4?
Девід Фоерстер

Відповіді:


25

Відповідь "так", ви можете мати будь-який каталог на будь-якому пристрої, на якому працює будь-яка файлова система, яку ОС може підтримувати.

Таким чином, ви можете мати / /var /home /optнавіть /home/afr0ckна різних пристроях, різні розділи, різні файлові системи.

Ви не тільки можете, але це звичайно. Наприклад, завжди рекомендується зберігати /varі /homeна різних розділах, /оскільки вони, швидше за все, ненавмисно споживають дисковий простір - якщо вони заповнюються, це не вплине на систему занадто сильно. Якщо вони знаходяться на тому ж розділі, що і root, це може призвести до зупинки системи.

І, можливо, ви хочете, щоб різні каталоги працювали на різних пристроях через швидкість. І використовувати різні файлові системи для різних цілей. Наприклад, можливо, ext4 - це те, що ви хочете для файлів ОС, оскільки вони не сильно змінюються, але вам може знадобитися btrfs для / home, щоб ви могли робити знімки для резервного копіювання. Це все рішення, які може прийняти кожна людина для свого конкретного випадку використання.

Частина простору користувача в ОС не потребує розуміння різних типів пристрою та файлової системи. Все, що він робить, просить ядро ​​перемістити файл, і ядро ​​організує все звідти. Отже mvкоманда (наприклад) - це файлова система та тип пристрою. Ядро викликає всі драйвери, необхідні для читання та запису на різні розділи.


7
Корисно зазначити, що mv(1)спочатку спробує rename(2)файл. Потім він відновлюється для копіювання та видалення. Отже, намагаючись перейменувати, - як mvз'ясувати, чи можливо це FS-агностиком. ( rename(2)завжди виходить з ладу під час переміщення між різними пристроями, користуються вони тим же драйвером файлової системи чи ні, @ afr0k.)
Пітер Кордес,

1
@PeterCordes так, я не знав, що перейменування - річ. Я завжди використовував mv для перейменування речей.

5
@stanri: mvне fork / exec rename(1)команди, вона просто намагається rename(2)системний виклик. Немає стандартної renameкоманди оболонки. У деяких системах це команда перейменування декількох файлів з підстановкою шаблону від util-linux. Я не говорив про команду оболонки, а про те, як mvпрацює всередині.
Пітер Кордес

Навіть / usr може перебувати на іншому розділі, саме тому деякі справді необхідні речі знаходяться в / bin / lib та / sbin - чи підтримуватимуть це всі інсталятори .
rackandboneman

7

Так, окремі файлові системи (точки монтажу) можуть бути різними типами файлової системи.  /proc- це завжди procfsфайлова система, і /sysзавжди є sysfs. Перехідні файлові системи (іноді включаючи /tmp) часто бувають tmpfs, і в налаштуваннях робочої групи звичайним є домашні каталоги користувача (та їх каталоги на робочих продуктах) nfsабо інші віддалені (мережеві / спільні) типи файлових систем.

Для ОС не існує спеціального управління. До певного моменту, на рівні користувача, всі файлові системи виглядають однаково, в тому сенсі, що lsлістинг буде виглядати майже однаково в будь-якому каталозі. Крім того, файлові системи не взаємодіють. Навіть між двома файловими системами (розділами) на одному фізичному диску одного типу файлової системи немає зв’язку 1 . Наприклад, переміщення файлу з однієї файлової системи (точки монтажу) до іншої завжди включає копію та видалення оригіналу. Не має значення, чи є вони розділами на різних дисках. Не має значення, чи є один з них HDD, а один - SSD. Не має значення, хто є, ext3а хто єbtrfs. Не має значення, чи внутрішній (всередині корпусу комп'ютера), а зовнішній (на кілька дюймів зовні, підключений кабелем) - або віддалений (доступ до нього здійснюється по мережі).

Якщо говорити про мережу, це трохи аналогічно ssh. Він зчитується з клавіатури і надсилає в мережу введених вами символів. Одночасно він читає з мережі та відображає результати на екрані.

Або врахуйте це: уявіть, що ви телефонуєте, і ви опосередковуєте розмову між людиною на іншому телефоні та іншою людиною в кімнаті. Це не велика справа.
________
1, крім символічних посилань - але вони можуть перетинати межі файлової системи.


1
Я багато в чому погоджуюся з вашою відповіддю, але це не дуже типово для / tmp, щоб бути tmpfs (хоча, можливо, воно встановлено таким чином у деяких дистрибутивах) - його зазвичай виходить з кореневого розділу та очищається під час завантаження. Ubuntu tand Redhat type distros use / dev / shm як tmpfs,
davidgo

Я розгубився. Я оновив свою відповідь.
G-Man каже: "Відновіть Моніку"

1
@davidgo: Які дистрибутиви Linux не за замовчуванням в /tmptmpfs? Я також вважав, що це досить стандартна практика, оскільки ви завжди можете помістити речі /var/tmp(хоча це не очищається під час завантаження). Я не є експертом у налаштуваннях перехресних дистрибутивів, просто Debian / Ubuntu та Arch. З тими плюсами RedHat, який охоплює велику частину встановлених систем Linux (але не майже така велика частка загальної кількості дистрибутивів).
Пітер Кордес

(ігноруючи вбудовані системи) Я регулярно використовую лише Centos та Ubuntu - обидва вони використовують диск для / tmp. - Я майже впевнений, що це означає, що Debian, Redhat і Mint будуть дотримуватися тієї ж конвенції. На моєму пристрої Android немає / tmp
davidgo

2
@PeterCordes Підвищення tmpfsна Linux є останнім часом за останні 5-7 років. наприклад, Fedora обговорював зміни у своїй вікі ~ 2012, і я вважаю, що вона була внесена в Debian Wheezy.
Боб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.