Какова хорошая схема/дизайн разделов для мультизагрузочной *nix-системы?

Какова хорошая схема/дизайн разделов для мультизагрузочной *nix-системы?

Я планирую установить Debian на свой сервер. Я хотел бы разработать схему разбиения таким образом, чтобы я мог установить на него один или несколько других дистрибутивов *nix. Поэтому, прочитав множество статей, я думаю, что эта схема может быть хорошей для первоначальной идеи мультизагрузки:

/grub
/swap
/LVM VG1 (for OS1) ->
            /boot (LV1)
            /     (LV2)
            /tmp  (LV3)
            /var   ...
            /var/log
            /home
/LVM VG2 (for OS2) ->
            /boot
            /
            /tmp
            /var
            /var/log
            /home
... (other distros)
/LVM VG0 (for data) ->
            /data (LV1)

Но теперь я немного запутался: какими должны быть метки для этих разделов (уникальными или нет) и как должны выглядеть точки монтирования (/home (OS1) смонтирован как в /home, так и в /home (OS2)...)?

решение1

Создание группы томов для каждого дистрибутива сводит на нет цель LVM. Создайте одну группу томов и используйте lvcreate для создания разделов для ваших дистрибутивов. Чтобы избежать путаницы, используйте имя ОС в качестве метки для логических томов.

Например:

lvcreate -L 2G -n gentoo-root
lvcreate -L 8G -n gentoo-usr
lvcreate -L 2G -n debian-root
lvcreate -L 8G -n debian-usr

Используйте один «реальный» раздел для /boot, который является общим для всех дистрибутивов, и управляйте им вручную, и один «реальный» раздел для swap. Используйте один логический /tmp для всех дистрибутивов или используйте ramfs размером около 200 МБ для этого. /home, вероятно, также должен быть общим для всех дистрибутивов. Кроме того, я думаю, что /usr и /var могут быть отдельными разделами для каждого, но не /var/log. Если у вас есть некоторые специальные файловые структуры с множеством небольших файлов, то создание отдельных разделов для них также может быть полезным. Однако в большинстве случаев действительно не нужно так сильно беспокоиться об этом. Особенно, когда все, что вы хотите сделать, это попробовать несколько дистрибутивов. Часто гораздо удобнее создать один корневой раздел для каждого дистрибутива и на этом закончить. На самом деле, это зависит от пользователя, с какой сложностью он готов справиться.

Краткое содержание:

отдельные логические тома для каждого дистрибутива

/ ~ 2Гб
/usr ~ 4-12 ГБ
/var ~ 1-7 ГБ

общие lvs

/дом
/tmp (необязательно, может быть частью /)
/usr/doc (экономия места)
/usr/man (может быть плохой идеей для разных дистрибутивов)
/var/log (используйте syslog-ng для создания папок дистрибутива)

специального назначения (множество мелких файлов)

/usr/portage (gentoo "пакеты")

решение2

Из моего понимания LVM, при условии, что логические тома находятся в отдельных группах томов, имена не должны быть уникальными (потому что имя VG добавляется к имени LV). Я обычно маркирую свои логические тома именем папки, которую я ожидаю смонтировать, или кратким описанием того, что будет содержать LV, если там будет несколько каталогов (например, root для LV, который содержит /).

Я не уверен, что вы имели в виду под "what should be the mounting points looking as". Вы имеете в виду ваши fstab mounts? Это будет что-то вроде;

/dev/VG1/root    /       <fstype>     defaults    0      0    (and so on, fstab junk)
/dev/VG1/usr     /usr    <fstype>     defaults    0      0

... other system-specific LV's ...

/dev/VG0/data    /data    <fstype>     <options>     fstab-junk

Где VG1 изменяется между указанными выше ОС, а VG0 остается постоянным, как /data.

Я также не понимаю, зачем вам нужен целый отдельный LV /var/log?

решение3

Что касается ответа Ярослава Рахматуллина выше: если вы используете один файл подкачки для нескольких ОС, учтите, что гибернация выполняется в файле подкачки, поэтому загрузка другой ОС, отличной от той, которая находится в спящем режиме, приведет к уничтожению сеанса гибернации.

Связанный контент