Поиск по сайту:

Как переместить домашний каталог на новый раздел или диск в Linux


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

Другой важный каталог с таким же поведением — /var. Он содержит файлы журналов, размер которых будет постепенно увеличиваться по мере продолжения работы системы, например файлы журналов, веб-файлы, файлы очереди печати и т. д.

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

Рекомендуется к прочтению: Объяснение структуры каталогов Linux и путей к важным файлам

В этом руководстве мы покажем, как переместить домашний каталог в выделенный раздел, возможно, на новом диске хранения в Linux.

Установка и разбиение нового жесткого диска в Linux

Прежде чем продолжить, мы кратко объясним, как добавить новый жесткий диск к существующему серверу Linux.

Примечание. Если у вас уже есть раздел, готовый к операции, перейдите к разделу, в котором объясняются шаги по перемещению каталога /home в собственный раздел ниже.

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

Хотя существует множество типов меток, Linux принимает только два: MSDOS MBR (размер 516 байт) или GPT (Таблица разделов GUID) >MBR.

Предположим также, что для нового нового жесткого диска (/dev/sdb размером 270 ГБ, используемого в этом руководстве, вам, вероятно, понадобится большая емкость на сервере для большая база пользователей.

Сначала вам нужно установить тип метки диска с помощью fdisk или parted; в этом примере мы использовали имя метки GPT.

parted /dev/sdb mklabel gpt

Примечание: fdisk на данный момент поддерживает только MSDOS MBR, а parted поддерживает обе метки.

Теперь создайте первый раздел (/dev/sdb1) размером 106 ГБ. Мы зарезервировали 1024 МБ места для MBR.

parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

Объяснение команды выше:

  • a – опция для указания выравнивания разделов.
  • mkpart – подкоманда для создания раздела.
  • основной – устанавливает тип раздела как основной на жестком диске (остальные значения являются логическими или расширенными).
  • 1074MB – начало раздела.
  • 107 ГБ – конец раздела.

Теперь проверьте свободное место на диске следующим образом.

parted /dev/sdb print free

Мы создадим еще один раздел (/dev/sdb2) размером 154 ГБ.

parted -a cylinder /dev/sdb mkpart primary 115GB 268GB

Далее давайте установим тип файловой системы для каждого раздела.

mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2

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

parted -l

Перемещение домашнего каталога в выделенный раздел

Теперь мы добавили новый диск и создали необходимый раздел; пришло время переместить папку home в один из разделов. Чтобы использовать файловую систему, ее необходимо смонтировать в корневой файловой системе в точке монтирования: целевом каталоге, например /home.

Сначала перечислите использование файловой системы в системе с помощью команды df.

df -l

Мы начнем с создания нового каталога /srv/home, куда мы можем на данный момент смонтировать /dev/sdb1.

mkdir -p /srv/home
mount /dev/sdb1 /srv/home 

Затем переместите содержимое /home в /srv/home (чтобы они практически хранились в /dev/sdb1) с помощью команды rsync или команда КП.

rsync -av /home/* /srv/home/
OR
cp -aR /home/* /srv/home/

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

diff -r /home /srv/home

После этого удалите все старое содержимое в /home следующим образом.

rm -rf /home/*

Затем размонтируйте /srv/home.

umount /srv/home

Наконец, нам нужно на время смонтировать файловую систему /dev/sdb1 в /home.

mount /dev/sdb1 /home
ls -l /home

Вышеупомянутые изменения будут действительны только для текущей загрузки. Добавьте строку ниже в /etc/fstab, чтобы сделать изменения постоянными.

Используйте следующую команду, чтобы получить раздел UUID.

blkid /dev/sdb1

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Как только вы узнаете UUID раздела, откройте файл /etc/fstab и добавьте следующую строку.

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6   /home   ext4   defaults   0   2

Объяснение поля в строке выше:

  • UUID – указывает блочное устройство; альтернативно вы можете использовать файл устройства /dev/sdb1.
  • /home – это точка монтирования.
  • etx4 – описывает тип файловой системы на устройстве/разделе.
  • defaults – параметры монтирования (здесь это значение означает rw, suid, dev, exec, auto, nouser и async).
  • 0 — используется инструментом дампа, 0 означает, что не создавать дамп, если файловая система отсутствует.
  • 2 — используется инструментом fsck для определения порядка проверки файловой системы. Это значение означает проверку этого устройства после корневой файловой системы.

Сохраните файл и перезагрузите систему.

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

df -hl

Вот и все! Чтобы узнать больше о файловой системе Linux, прочтите эти руководства, посвященные управлению файловой системой в Linux.

  1. Как удалить учетные записи пользователей с домашним каталогом в Linux
  2. Что такое Ext2, Ext3 и Ext4 и как создавать и конвертировать файловые системы Linux
  3. 7 способов определить тип файловой системы в Linux (Ext2, Ext3 или Ext4)
  4. Как смонтировать удаленную файловую систему или каталог Linux с помощью SSHFS через SSH

В этом руководстве мы объяснили, как переместить каталог /home в выделенный раздел в Linux. Вы можете поделиться своими мыслями по поводу этой статьи через форму комментариев ниже.