Разметка для машин с мультизагрузкой

Алексей Федорчук

Последнее время на форумах и в социальных сетях в очередной раз активизировалось обсуждение вопроса об оптимальной разметке диска при установке на машине двух или более систем — различных дистрибутивов 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 комментария

  1. Спасибо за вашу работу. Интересная тема.

    А сколько места вы отводите на root, корневой раздел?
    А то мнения, которые я читал на этот счёт, очень различаются. В каких-то старых статьях могут написать вообще про несколько гигабайт.

    Лично я поставил Убунту 12.04 (пробы ради, чтобы вообще посмотреть, а что это такое — Линукс) на старый небольшой жёсткий диск и выделил на это дело 10 ГиБ. Какое-то, довольно долгое, время этого объёма хватало.

    Потом я поставил что-то объёмное, не пойму пока что. Кажется по неопытности что-то из KDE программ и оно потянуло за собой соответствующее программное обеспечение для этой среды.

    А вот для Линукс Минт, на новом ж.д., я отвёл уже 50 ГиБ. Это вроде бы избыточно много. Или нет?

  2. 2 Nikolaos
    Начал писать ответ на Ваш комментарий и понял, что он превращается в отдельную заметку, которую и размещу в ближайшие часы.
    Так что пока в двух словах:
    под корень последние пару лет отвожу 20 ГБ, установленная система без данных со всем мне нужным занимает обычно от 5-6 (Salix) до 10 (LMDE) GB, Mint в промежутке.
    Резоны, почему так — в будущей заметке.

  3. У меня съемник с разделом на весь диск монтируется руками или скриптом ~./mounthdd А вообще мечтаю создать самодельный NAS на основе палинки или BananaPI

Добавить комментарий