Алексей Федорчук
Последнее время на форумах и в социальных сетях в очередной раз активизировалось обсуждение вопроса об оптимальной разметке диска при установке на машине двух или более систем — различных дистрибутивов Linux, а возможно, и BSD. Я неоднократно по этому поводу писал в постах и комментариях, а потому решил изложить свои соображения в виде отдельной заметки.
Собственно, речь идёт не столько о разметке (хотя и о ней тоже), сколько об обеспечении доступа к одним и тем же данным из разных систем. Обычно предлагаемое решение — просто с разделом под каталог /home
, монтируемом в файловую иерархию всех установленных ОСей и дистрибутивов. Однако оно не всегда оптимально, а в ряде случаев вообще неприемлемо: версии программ в разных системах могут быть различны, их конфигурационные файлы — путаться между собой… в общем, кто опробовал этот способ, знает о всех его недостатках. Не очень помогает в этой ситуации и создание в каждой системе аккаунтов с разными UID, так как затрудняет цель, ради которой всё и было затеяно — совместный доступ к одним и тем же данным. Затруднение, разумеется, обходимое путём всякого рода групповых политик (вариантов можно придумать много), но требующее лишних телодвижений.
В связи с этим описываю свой вариант решения, очень нехитрый, но оказавшийся для меня удобным и потому применяемый много лет. Под корень каждой системы я отвожу, разумеется, отдельный раздел. Причём по возможности устанавливаю их на разных физических носителях, со своим загрузчиком в их BR — для страховки, чтобы в аварийном случае хоть какую-то можно было загрузить простым переключением порядка boot-устройств в BIOS.
Далее, в каждой системе создаётся самостоятельный раздел под каталог /home/username
. Имя пользователя и, главное, его UID во всех системах одинаковы: за последним надо внимательно следить, потому что в разных дистрибутивах автоматически назначаемый идентификатор первого создаваемого аккаунта может быть разным. В домашних каталогах каждой системы нет ничего, кроме относящихся к ним dot-файлов, так что претензий к их размеру не много.
И, наконец, в каталоге /home
каждой системы создаётся каталог /home/data
— точка для монтирования устройства размещения данных. В качестве такового могут выступать (и в разное время и на разных машинах у меня выступали):
- просто дисковый раздел или диск целиком (точнее, конечно, раздел, занимающий целый диск);
- группа томов LVM;
- программный (обычно) или (в моей практике — очень редко) fake RAID;
- пул ZFS.
Никто не запрещает и монтировать в /home/data
и том BTRFS, но как раз это я на практике и не опробовал.
В принципе в качестве устройства хранения может выступать внешний винчестер или, скажем, NAS, но это я тоже никогда делал: первый у меня для бэкапов, а второй я полагаю излишеством в домашних условиях.
В любом случае устройство хранения может содержать в себе, соответственно, подкаталоги, логические тома LVM, обычные разделы на RAID, наборы данных (datasets aka файловые системы) ZFS или субтома BTRFS. У меня исторически сложилась своя система именования таких «разделов» хранилища данных (current
— для текущих проектов, old
— для проектов старых, audio
— для песенок, и так далее), на которой задерживаться не буду, так как это очень индивидуально.
Атрибуты принадлежности каталога /home/data
и всех его «разделов» — username:groupname
, где к username
относится всё сказанное ранее, а для groupname
желательно следить не столько за совпадением имён (в разных системах имя группы «на автомате» может быть либо users
, либо совпадать с именем пользователя), сколько за одинаковыми значениями GID. Хотя это и не обязательно (обычно атрибута принадлежности пользователю достаточно для полного доступа)— но иначе как-то не аккуратно.
В результате получается абсолютная независимость пользовательских настроек в разных системах, с одной стороны, и полный доступ к рабочим данным из них — с другой. Дополнительный её плюс — переносимость между машинами (например, десктопами и ноутбуками). Правда, синхронизацию данных приходится делать вручную, но это я полагаю более надёжным, нежели новомодные «облака».
Не предлагаю свою схему в качестве панацеи на все случаи жизни. Но, возможно, мой опыт пригодится ком-нибудь при выработке схемы собственной.
4 комментария на «“Разметка для машин с мультизагрузкой”»
Спасибо за вашу работу. Интересная тема.
А сколько места вы отводите на root, корневой раздел?
А то мнения, которые я читал на этот счёт, очень различаются. В каких-то старых статьях могут написать вообще про несколько гигабайт.
Лично я поставил Убунту 12.04 (пробы ради, чтобы вообще посмотреть, а что это такое — Линукс) на старый небольшой жёсткий диск и выделил на это дело 10 ГиБ. Какое-то, довольно долгое, время этого объёма хватало.
Потом я поставил что-то объёмное, не пойму пока что. Кажется по неопытности что-то из KDE программ и оно потянуло за собой соответствующее программное обеспечение для этой среды.
А вот для Линукс Минт, на новом ж.д., я отвёл уже 50 ГиБ. Это вроде бы избыточно много. Или нет?
2 Nikolaos
Начал писать ответ на Ваш комментарий и понял, что он превращается в отдельную заметку, которую и размещу в ближайшие часы.
Так что пока в двух словах:
под корень последние пару лет отвожу 20 ГБ, установленная система без данных со всем мне нужным занимает обычно от 5-6 (Salix) до 10 (LMDE) GB, Mint в промежутке.
Резоны, почему так — в будущей заметке.
Спасибо.
У меня съемник с разделом на весь диск монтируется руками или скриптом ~./mounthdd А вообще мечтаю создать самодельный NAS на основе палинки или BananaPI