Объединяем два жестких диска в общее пространство с lvm2

debianeach

Опубликован:  2019-11-29T11:31:41.713176Z
Отредактирован:  2019-11-29T11:30:07.101581Z
В этой демонстрации я рассмотрю установку LinuxMint XFCE 19.2 на компьютер с двумя жесткими дисками, при этом оба диска будут объединены в общее дисковое пространство при помощи инструментов lvm2. Полученное дисковое пространство я размечу по классической схеме и разделю на три логических тома. Все действия будут выполнены с помощью LiveCD LinuxMint. Осторожно, много картинок.

1. Краткие сведения о разметке диска для установки Linux

Установка операционной системы на базе ядра Linux любой инкарнации, любого вендора предполагает достаточно значимую и определяющую процедуру - процедуру разметки дискового пространства компьютера. Схемы разметки зависят от многих факторов, в этом обзоре я буду рассматривать классическую схему разметки для десктопов, но с характерным отличием - на компьютере два жестких диска, и они будут объединены в общее дисковое пространство с помощью специализированных инструментов, которое впоследствии и будет размечено.

Основной вопрос при разметке диска - это количество необходимых для конкретной машины разделов. Классическая схема предполагает выделение трёх разделов:

  • раздел для корневой файловой системы;
  • раздел для подкачки;
  • раздел под домашние каталоги пользователей.

Для обычного домашнего десктопа такая схема разметки будет достаточна, оптимальна, и её несложно воспроизвести прямо в программе установки любого доступного сегодня дистрибутива. Давайте разберёмся, для чего мы выделяем эти три раздела...

Раздел под корневую файловую систему выделяется с одной единственной целью - обеспечение переустановки операционной системы в случае необходимости без потери пользовательских каталогов и файлов. Дело в том, что при установке операционной системы Linux корневая файловая система обязательно форматируется, и если каталог /home окажется на одном разделе с корневой файловой системой, то при возможной переустановке ОС все файлы и каталоги в нём будут утеряны. Именно поэтому принято выделять корневую файловую систему в отдельный раздел. У этого решения есть один единственный недостаток - сложно предугадать, какой объём дискового пространства для этого раздела будет оптимальным. В данном случае опыт определяет действия пользователя.

Раздел подкачки обычно выделяется на компьютерах, которые используют спящий режим. Если спящий режим для работы вашего компьютера не нужен, то вполне можно обойтись файлом подкачки, под который лучше бы предусмотреть дисковое пространство в корневом разделе. А если вы собираетесь использовать на своём компьютере спящий режим, то наилучшим решением будет выделение подкачки в отдельный раздел объёмом равным объёму оперативной памяти компьютера.

Раздел под домашние каталоги пользователей, иногда его называют хомяком, потому что /home, - это основной и самый важный раздел, в нём будут храниться файлы пользователей, всё, над чем вы будете трудиться денно и нощно при работе за компьютером. Эти файлы и каталоги иногда бывает очень больно потерять, и именно поэтому хомяка выделяют в отдельный раздел и отделяют от корня файловой системы. Объём этого раздела обычно определяется объёмом дискового пространства, оставшегося после выделения первых двух разделов (корня и подкачки).

Когда на вашем компьютере один жесткий диск, довольно несложно его разбить на три раздела, предварительно определив, сколько вы выделите под корень. Но когда на вашем компьютере два жестких диска, организовать на них три целевых раздела немного сложней, но тоже возможно. Именно этому и будет посвящена эта демонстрация, в ней я объединю дисковое пространство двух жестких дисков компьютера и размечу это пространство по предложенной схеме.

Для этой демонстрации мне потребуются следующие вещи:

  1. Компьютер с двумя жесткими дисками с соизмеримой скоростью доступа к данным;
  2. LiveCD с операционной системой Linux, содержащий необходимые для выполнения поставленной задачи инструменты, в этой демонстрации я буду использовать LinuxMint XFCE v.19.2;
  3. Немного времени, внимания и терпения.

Обо всём по порядку под спойлерами ниже...

2. Краткие сведения о LinuxMint

LinuxMint - наше зелёное счастье, оптимальная для новичков операционная система c ядром Linux и серьёзно доработанной пакетной базой Ubuntu. Дебианыч уже писал о LinuxMint на страницах своего блога, все статьи, посвященные этой операционной системе можно отфильтровать по одноимённой метке - linuxmint.

Так как LinuxMint оптимален для новичков Linux, а LiveCD LinuxMint XFCE - это великолепный инструмент для администрирования и подготовки компьютера к установке операционной системы, для этой демонстрации выбор пал именно на эту операционную систему. LM свободен для использования, установочный образ LiveCD можно скачать с любого из множества доступных зеркал. Я обычно использую зеркало ftp.yandex.ru.

5R9VFmfKm0.png

Чтобы записать этот образ на флэш-накопитель и проверить его по контрольной сумме, достаточно скачать два файла:

  • linuxmint-19.2-xfce-64bit.iso;
  • sha256sum.txt - текстовый файл с эталонными контрольными суммами.

Процедура записи установочного образа на флэш-накопитель под управлением операционной системы Linux детально описана по ссылке, ничего сложного нет, контрольную сумму на полученном накопителе рекомендуется проверять, такой метод избавит вас от возможных проблем в дальнейшем.

Поскольку для этой демонстрации я буду использовать виртуальную машину VirtualBox, записывать образ на флэш мне не обязательно, но проверить контрольную сумму скачанного iso-образа необходимо.

9VBVDp8wUE.png

Имея в кармане флэш с записанным образом этого LiveCD, немного теоретической подготовки и практических навыков, вы без труда сможете справиться с любым компьютером, у которого не запаролен BIOS. Чтобы загрузить компьютер с такой флэши, достаточно установить в BIOS машины соответствующий порядок просмотра, флэш с записанным образом должна стоять в самом верху списка.

Вставляем флэш в USB-разъём машины и включаем компьютер (или перезагружаем его, если он уже включен). LinuxMint поприветствует мрачным окном загрузчика.

0DpY1cFamN.png

Верхний пункт предложенного меню меня полностью устроит, нажимаю Enter и дожидаюсь полной загрузки операционной системы.

Замечание: для этой демонстрации я использую компьютер с UEFI, поэтому разметка диска будет иметь характерные для таких машин особенности, об этом позже.

Приступаем...

3. Предварительная разметка дисков в GParted

После полной загрузки LiveCD на экране компьютера отобразится рабочий стол XFCE. С помощью системного меню запускаю GParted - программу для разметки жестких дисков.

wPZ4vlixEu.png

У моего компьютера два жестких диска, список носителей в GParted можно увидеть с помощью соответствующего элемента интерфейса, и там же можно выбрать текущий размечаемый носитель.

MqvbB0jPPC.png

Перед тем как приступить к разметке дисков, желательно выключить автоматическое монтирование носителей в файловом менеджере. Запустить файловый менеджер можно любым доступным способом:

  • с помощью ярлыка Home на рабочем столе;
  • с помощью соответствующей кнопки запуска в панели задач;
  • с помощью системного меню.

Чтобы предотвратить автоматическое монтирование носителей, достаточно в меню View файлового менеджера выбрать пункт Preferences, в появившемся модальном окне перейти на вкладку Advanced и снять галочку в разделе Volume Management, на снимке экрана ниже обведено красной рамкой.

0Pxuw6owgC.png

Поскольку диски моего компьютера не имеют разметки, создаю на каждом жестком диске новую таблицу разделов, для этого в меню Device программы GParted выбираю пункт Create Partition Table..., а затем в модальном окне выбираю тип таблицы разделов.

WtU0LGSYyT.png

BrOvpEvlNr.png

Тип таблицы разделов определяется типом вашего компьютера, если компьютер имеет загрузку UEFI, то необходимо выбрать таблицу gpt. Если компьютер загружается в режиме Legacy, то нужно выбрать таблицу msdos. Мой компьютер имеет UEFI загрузку, поэтому выбираю таблицу gpt и повторяю это действие для второго диска моего компьютера.

Подробно демонстрировать весь процесс разметки с помощью GParted в рамках этой демонстрации я не буду, программа имеет достаточно понятный и не сложный в использовании GUI-интерфейс, который детально описан в отдельной статье блога, любой новичок без проблем справится. Привожу состояние диска sda своего компьютера к следующему виду:

y7h63I8YrC.png

Итак, на диске sda я создал раздел /dev/sda1 с файловой системой fat32, объёмом 100MiB и с флагами boot и esp - это системный раздел для загрузчика UEFI. Так как на моей машине будет одна единственная операционная система, 100MiB для этого раздела будет вполне достаточно, по факту, после установки операционной системы в нём будет занято порядка 10MiB и делать этот раздел больше для данной машины не имеет смысла.

Второй раздел /dev/sda2 необходим загрузчику GRUB, в этот раздел будет смонтирована файловая система /boot. Так как для создания целевых разделов я буду использовать Logical Volume Manager, а GRUB не умеет загружать файлы с таких разделов, /dev/sda2 в данном случае необходим. Под этот раздел я определил 512MiB дискового пространства и журналируемую файловую систему ext4. В точку монтирования /boot будут записаны новые ядра операционной системы при обновлении. Выбранный объём раздела обеспечит 3-4 обновления, но в любом случае, при эксплуатации операционной системы и после обновлений необходимо будет следить за расходом дискового пространства в /boot и вовремя удалять устаревшие версии ядра.

Наконец третий раздел диска - /dev/sda3 - занимает всё оставшееся на диске пространство и имеет тип файловой системы lvm2 pv, на этом разделе будет располагаться физический том lvm2 (pv - Phisical Volume). Имя этого раздела - /dev/sda3 я буду использовать при создании группы томов lvm2.

Второй жесткий диск моей машины - sdb - получает следующую схему разметки.

e2GNuumSaZ.png

Как видно на снимке экрана, всё дисковое пространство этого носителя я отдал разделу /dev/sdb1 с файловой системой lvm2 pv - имя этого раздела я тоже буду использовать при создании группы томов lvm2.

GParted - удобная программа с интуитивно-понятным интерфейсом. Но, к сожалению, её могущества и разносторонности не хватит, чтобы создать целевые разделы для установки LinuxMint по предложенной схеме, и поэтому все дальнейшие действия я буду выполнять в терминале. Терминал - могучий, почти всемогущественный инструмент, и если вы собираетесь пользоваться Linux, его стоит изучить и привыкнуть к основным приёмам работы с текстовой консолью. Об этом далее...

4. Создание логических томов lvm2

В терминале я буду выполнять очень много действий с правами root, и, чтобы не писать каждый раз sudo, есть смысл залогиниться и стать root, LiveCD LinuxMint позволяет это сделать.

sudo -i

yP8XEjGUu2.png

После того, как я стал пользователем root, я могу просмотреть список доступных на машине физических томов lvm2.

pvdisplay

zLa6OR7z71.png

Как видно на снимке экрана выше, на моей машине есть два физических тома на разделах:

  • /dev/sda3;
  • /dev/sdb1.

Я их буду использовать для создания группы томов и именно в такой последовательности. Создаю группу томов с именем vg_mint.

vgcreate vg_mint /dev/sda3 /dev/sdb1

Rj1G4Yma4h.png

Имя для группы томов можно выбрать произвольное, но лучше использовать префикс vg_, это добавит узнаваемости и поможет ориентироваться в файлах девайсов.

Когда группа томов создана, можно создать в ней логические тома. Первым в моём списке идёт том для корневой файловой системы. Определяю его размер в 27GiB, этого будет достаточно для начальной установки и изучения дистрибутива.

lvcreate -n lv_root -L 27g /dev/vg_mint

EVXsbSM47Q.png

В именах логических томов (задаётся опцией -n) тоже лучше использовать соответствующий префикс - lv_.

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

lvcreate -n lv_swap -L 3312m /dev/vg_mint

3ObNUERL9u.png

И, наконец, всё оставшееся в группе томов дисковое пространство я отдаю под раздел домашних каталогов пользователей.

lvcreate -n lv_home -l 100%FREE /dev/vg_mint

p6op4Np84c.png

Все необходимые мне логические тома созданы, на данной стадии можно проконтролировать их размер и другие параметры с помощью соответствующей команды.

lvdisplay

FSToJP1Omd.png

Выхлоп команды достаточно многословен, в моём случае он не поместился в один экран, прокрутка решает. Ещё проконтролировать состояние созданных томов можно при помощи lsblk.

HQ6l4EucEY.png

Как видно на снимке экрана логический том lv_home имеет размер порядка 49GiB - ожидаемый показатель.

На текущий момент созданные логические тома не имеют файловых систем, их нужно создать. Для томов lv_root и lv_home создаю файловые системы ext4.

mkfs.ext4 -L root /dev/vg_mint/lv_root

9Fl4f8cFc5.png

mkfs.ext4 -L home /dev/vg_mint/lv_home

2LkzOFaEaZ.png

На томе lv_swap создаю пространство подкачки.

mkswap -L swapfs /dev/vg_mint/lv_swap

ngFmLpErAZ.png

Всё... Диски компьютера размечены и подготовлены к установке операционной системы.

5. Монтирование логического тома в режиме LiveCD

Достаточно часто в админской практике возникают ситуации, когда в режиме LiveCD необходимо воспользоваться одним из подготовленных только что логических томов - lv_home, и сохранить на него какие-то файлы. Посмотрим, как это можно реализовать.

Открываю файловый менеджер, нахожу в окне файлового менеджера в левой его части раздел DEVICES. Как видно на снимке экрана ниже, оба логических тома с файловой системой ext4, которые я создал на предыдущем шаге, имеются в списке доступных носителей.

Z73snRyXnz.png

Навожу указатель мыши на раздел home и делаю одиночный клик левой кнопкой мыши.

fsEP1ooxkh.png

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

mkdir /media/mint/home/share

А затем меняю хозяина этого каталога на текущего пользователя LiveCD - mint.

chown mint.mint /media/mint/home/share

dsNNs2QOrp.png

После этого возвращаюсь в файловый менеджер и захожу в только что созданный каталог. Теперь в этом каталоге я могу совершенно спокойно создавать и хранить свои файлы и каталоги, в этот же каталог можно скачивать файлы из сети.

eiCcLpbmhD.png

Как видно на снимке экрана, я создал текстовый файл Test-Linux-Mint.txt, после установки операционной системы на жесткий диск я покажу, что этот файл никуда не денется и будет сохранён.

Поскольку я всё ещё нахожусь в режиме LiveCD и собираюсь запустить программу установки LinuxMint на жесткий диск компьютера, перед тем, как сделать это, следует отмонтировать логический том lv_home, для этого делаю правый клик мыши на разделе в секции DEVICES и выбираю в контекстном меню соответствующий пункт.

lLKCKdGJ2s.png

Приступим к установке операционной системы на диск, об этом далее...

6. Установка LinuxMint XFCE на жесткий диск

Запустить программу установки можно при помощи соответствующего ярлыка на рабочем столе.

ipMvTvpwvn.png

Программа установки LinuxMint достаточно элементарна и понятна, даже самые маленькие обычно не испытывают никаких трудностей, поэтому в этой демонстрации я опущу подробности и детали процесса, а покажу только выбор типа установки. Когда программа установки предложит вам выбрать тип установки, необходимо поставить маркер в раздел "Другой вариант", как это показано на снимке экрана ниже.

YdWFAmHJhr.png

Нажимаю кнопку "Продолжить" и попадаю в программу разметки диска. Поскольку мой диск уже размечен, мне осталось выбрать точку монтирования для раздела /dev/sda2 - /boot, этот раздел в обязательном порядке форматируется.

o2UVCkaJo1.png

Далее устанавливаю точку монтирования логического тома lv_root - /, этот раздел тоже форматируется.

fJuwmGqFqD.png

Логический том lv_home назначаю хомяком - точка монтирования /home, его форматировать не нужно, файлы и каталоги этого раздела нужно сохранить.

HIVfbnyoF4.png

Больше в программе разметки диска не меняю ничего, нажимаю кнопку "Установить сейчас", в модальном окне соглашаюсь с изменениями, нажимаю кнопку "Продолжить".

42yUKWCUTM.png

Программа установки продолжит сбор данных, а затем приступит к копированию файлов на диск компьютера. Этот процесс всегда мучительно продолжительный, занимает много времени, и чтобы не заснуть, Дебианыч обычно уходит в магазин или на тренировку, а вернувшись обнаруживает на мониторе сообщение об успешном завершении установки LinuxMint.

HBpsgdVl5H.png

Можно перезагрузить компьютер...

7. Что мы имеем в итоге

После перезагрузки компьютера я получаю новенькую с иголочки копию LinuxMint XFCE.

y5ND5CJhnv.png

Если заглянуть в каталог /home, можно обнаружить каталог share и файл, который я создал на стадии разметки диска в режиме LiveCD, файл сохранился.

y3Bb8bv30e.png

Точка монтирования /home имеет в своём распоряжении 49GiB дискового пространства и состоит из двух секторов на разных физических томах, эту информацию отображает lsblk в терминале.

KDhdxEfWVD.png

Воспользоваться файлами в каталоге /home/share сразу не получится, потому что у этого каталога неизвестный операционной системе хозяин с UID 999.

1SmYlPj62H.png

Чтобы воспользоваться файлами в каталоге share, изменю ему владельца на текущего пользователя системы - newbie.

sudo chown -R newbie.newbie /home/share

5BHpjvQoiC.png

В данном случае опция -R обозначает рекурсию, то есть владелец меняется для всех вложенных файлов и каталогов.

8. Выводы

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

Пока всё... Статью делаю скрытой, её нельзя будет увидеть в общем списке топиков, но можно увидеть в ленте, для этого необходима авторизация. А добавить Дебианыча в ленту просто необходимо.

Комментарии: