Как переместить домашний каталог на новый раздел или диск в 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.
- Как удалить учетные записи пользователей с домашним каталогом в Linux
- Что такое Ext2, Ext3 и Ext4 и как создавать и конвертировать файловые системы Linux
- 7 способов определить тип файловой системы в Linux (Ext2, Ext3 или Ext4)
- Как смонтировать удаленную файловую систему или каталог Linux с помощью SSHFS через SSH
В этом руководстве мы объяснили, как переместить каталог /home в выделенный раздел в Linux. Вы можете поделиться своими мыслями по поводу этой статьи через форму комментариев ниже.