Переносим точку монтирования /home на новый раздел диска в Linux

debianeach

Опубликован:  2020-01-30T08:58:13.880396Z
Отредактирован:  2020-01-30T08:54:42.281353Z
3500
В этой демонстрации разберём процесс переноса точки монтирования /home на новый раздел жесткого диска на примере десктопа с Debian buster на борту. В пошаговом режиме я выполню и покажу все необходимые для успешного завершения этой процедуры действия, размечу новый диск, отформатирую его, смонтирую, перенесу на него пользовательские каталоги и создам соответствующую запись в fstab.

1. Исходные данные

В моём распоряжении есть десктоп с Debian buster на борту.

RkqI6JLFfh.png

Как видно на снимке экрана, на жестком диске этого компьютера имеется два раздела, на одном из которых расположена файловая система swap, а на втором корневая файловая система - /. И на текущий момент дисковое пространство корневой файловой системы занято более чем на 50%. Фактически в текущем состоянии системы /home - всего лишь каталог в файловой системе /.

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

2. Установка дополнительного жесткого диска

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

jYNRphbXrY.png

Как видно на снимке экрана, система определила дополнительный жесткий диск как sdb, на диске отсутствует какая либо разметка, и в настоящий момент он, что совершенно естественно, системой не используется. Диск необходимо будет разметить, для этого следует установить программу parted, если она до сих пор не установлена. Сделать это можно такой командой:

sudo apt install parted

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

3. Вход суперпользователем

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

Вхожу как root при помощи sudo.

sudo -i

rWSc8N8WbW.png

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

passwd

WaJiohWvnW.png

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

Теперь, когда у root есть пароль, изменяю уровень исполнения операционной системы.

systemctl set-default multi-user.target

gMbcytFG1U.png

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

ypwPQci9FW.png

Нажимаю enter и оказываюсь в системе.

golgRR0Q1g.png

Замечательно! Пришло время разметить диск sdb...

4. Разметка диска

В голой консоли разметить жесткий диск можно при помощи программы parted, для этого нужно знать его идентификатор, который можно увидеть с помощью lsblk, и в данном случае это sdb. Файлы всех устройств в системе хранятся в каталоге /dev. Запускаю parted с соответствующим аргументом.

parted /dev/sdb

4aCl0gBCfh.png

Как видно на снимке экрана, parted имеет интерактивный режим и предлагает пользователю ввести необходимые команды. На диске sdb мне понадобится один единственный раздел, и чтобы создать его, выполняю последовательно следующие действия (команды). Устанавливаю единицу измерения для parted - MiB.

unit MiB

Вывожу на экран сведения о текущем диске.

print

1oWHgC2cJ1.png

Как видно на снимке экрана выше, на диске отсутствует таблица разделов. Создаю её - мне нужна таблица разделов msdos.

mklabel msdos

Создаю на диске новый раздел.

mkpart primary ext4 1 -1

Снимаю с этого раздела метку lba.

set 1 lba off

И вывожу на экран полученную разметку.

print

sennBJgnWH.png

После этого можно покинуть интерактивный режим parted.

quit

me70J44suL.png

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

VIzSl6ETdw.png

Как видно на снимке экрана выше, на диске появился раздел sdb1, перед использованием его следует отформатировать.

mkfs.ext4 -L homefs /dev/sdb1

UqgBn8JgD8.png

Отлично, мой новый жесткий диск готов к употреблению...

5. Перенос пользовательских данных на новый раздел

Чтобы перенести пользовательские файлы и каталоги на новый раздел, его необходимо смонтировать. Монтировать раздел в данном случае лучше всего в каталог /mnt, предварительно убедившись, что он пуст.

mount /dev/sdb1 /mnt

Y8TnhX2cRo.png

Теперь следует посмотреть на содержимое каталога /home.

ls -l /home

nZi1BZrqsg.png

В хомяке у меня по факту два каталога, каждый принадлежит одноимённому пользователю системы, и оба эти каталога нужно перенести на новый раздел, который в данный момент смонтирован в /mnt. Последовательно выполняю две команды.

mv -v /home/newbie/ /mnt/
mv -v /home/debianeach/ /mnt/

В зависимости от объёма хранящихся в этих каталогах данных, перенос может занять достаточно длительное время. Поскольку команда mv исполнена с опцией -v в процессе переноса данных система будет выводить в консоль отчёт о выполненных действиях, который при необходимости можно сохранить в текстовый файл.

Замечание: если бы каталог /home располагался на отдельном разделе, в нём, кроме каталогов пользователей, находился бы ещё и каталог с именем lost+found, в таком случае этот каталог не следует перемещать на новый раздел.

Когда процесс переноса файлов и каталогов завершен, следует посмотреть на содержимое каталогов /home и /mnt.

NHzO6K7NqG.png

Как видно на снимке экрана выше, каталог /home теперь не имеет вложенных каталогов, а каталоги пользователей хранятся на новом разделе, в данный момент смонтированном в точку /mnt, режим пользовательских каталогов и принадлежность к одноимённому пользователю не изменились. Всё замечательно, раздел sdb1 нужно отмонтировать.

umount /dev/sdb1

m1AJ8rQ7OY.png

6. Создаём точку монтирования /home в файле fstab

Приступим к правке файла /etc/fstab, который определяет существующие в системе точки монтирования. Первым делом необходимо посмотреть UID существующих в системе разделов диска - это можно сделать с помощью команды blkid.

blkid

CK0CxwHzxL.png

На снимке экрана выше красным фломастером я подчеркнул в выхлопе blkid интересующий меня раздел, следует обратить внимание, что он находится в последней строчке выхлопа. Поскольку работаю я в голой консоли, просто скопировать его UID в буфер обмена я не могу. Выписывать его на лист бумаги мне тоже не очень хочется, поэтому я просто скопирую последнюю строчку выхлопа blkid в конец файла /etc/fstab.

blkid | tail -1 >> /etc/fstab

TPepLJeIVQ.png

После этого открываю файл /etc/fstab в текстовом редакторе Nano.

nano /etc/fstab

TUwVt3HOsL.png

И начинаю править последнюю строчку, которая добавлена в этот файл с помощью blkid, удаляю из этой строчки всё лишнее, оставляю только UID нового раздела.

DMEXVAfjjx.png

При помощи сочетаний ctrl+k и ctrl+u переношу эту строчку в файле выше.

QXYHELWubE.png

А теперь дописываю в эту строчку точку монтирования, тип файловой системы и опции.

uIa475yeDx.png

Сохраняю файл (ctrl+o) и покидаю текстовый редактор (ctrl+x). Новая точка монтирования создана. Следует проверить, что всё работает в полном соответствии с замыслом, монтирую все указанные в /etc/fstab точки монтирования.

mount -a

wUleZbpqr9.png

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

UL85dzFQMt.png

Возвращаю операционной системе соответствующий уровень исполнения.

systemctl set-default graphical.target

kcVl49gYwn.png

И перезагружаю компьютер.

systemctl reboot

7. После перезагрузки

После перезагрузки меня встречает графический режим и менеджер входа в систему. Ввожу имя пользователя и пароль.

gnH4QFEY2U.png

Нажимаю кнопку "Войти", и, поскольку все предыдущие действия я выполнил правильно, оказываюсь в пользовательской сессии LXDE. Проверяю свои файлы и каталоги, убеждаюсь, что всё на месте, и ничего не потерялось.

21JIlQuJdY.png

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

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

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